OSPF(OpenShortestPathFirst,开放式最短路径优先)1、IGP,适合中到大型的网络环境2、链路状态协议,LS3、无类协议(VLSM/CIDR)4、OSPF的四层协议传,传输层协议:L2+IP(89)+OSPF+FCS5、OSPF的度量值:Cost开销6、组播组地址224.0.0.5224.0.0.6链路状态的协议的三张表:1、邻居表:也叫邻接关系数据库(adjacencydatabase)2、LSD:链路状态数据库(拓扑表)3、Forwardingdatabase:转发表(路由表)OSPF的优点1、特别丰富的路由信息2、每个路由器都知道整个园区网的拓扑3、没有环路。OSPF的区域(区域划分是基于接口的)1、骨干区(传输区域)2、非骨干区划分区域的好处1、减小路由表条目的数量(手工汇总,域间汇总和域外汇总)2、一个区域的拓扑的改变只会影响本区域3、特定的LSA只能在一个区域内传递,减少了路由器LSDB内的LSA的数量骨干路由器(骨干区域的路由器)区域边界路由器(ABRs,areaborderrouters),把多个非骨干区域路由器和骨干区连接起来OSPF的邻居的建立(邻接关系)P2P网络环境:HDLC,PPPMA网络环境:Ethernet(BMA)Frame-relay(NBMA)OSPF的邻居和邻接在P2P环境中,直接建立邻居直到邻接关系完毕在MA环境中,需要先选出DR(DesignatedRouter)和BDRDR和BDR先建立邻接关系,DR、BDR和所有路由器建立邻接关系,DROTHER之间建立状态为two-way的邻接关系路由器之间在建立完全的邻接关系才能交互更新报文邻接关系的建立完毕后,LSDB同步,其内的LSA相同LSA使用泛洪(Flooding)机制SPF算法1、区域内每台路由器要有相同的LSDB2、每台路由器都会以自己为树根计算去往目的网段的最优路径3、以开销(Cost)为选路条件(开销的计算:基于带宽,分段计算;每段Cost=10^8/BW,此处BW的单位为bit/s;然后把每段的开销相加得出整条路径的开销。4、最好的路径加入路由表LSA的传递规则:一台路由器收到一个LSA(LSU),首先判断本地有没有该LSA。如果没有,就执行A操作:加入本地LSDB,给发给我该LSA的路由器回复LSAck,泛洪该LSA;运行SPF算法,计算往各目的网段的最优路由并且加入路由表。如果本地有该LSA,判断两者LSA序列号是否一致,如果一致,则直接忽略该LSA;如果不一致,再判断谁的序列号高,如果该LSA序列号高,则执行A操作;反之,则返还发送LSU,同步发送该LSA的路由器的LSDB。LSU的发送周期发送(周期更新,30分钟一次)触发发送(触发更新)LSA的序列号0x80000001min0x7FFFFFFFmaxOSPF的报文1、HelloHello时间10s或30sholdtime40s或120s2、DatabaseDescription(DBD)邻居建立的过程LSDB的同步,DBD的确认用DBD确认3、Link-StateRequest(LSR)请求LSDB同步过程中,请求本地没有的LSA4、Link-StateUpdate(LSU)以更新的形式发送给请求的路由器5、Link-StateAcknowledgment(LSAck)OSPF报文的确认机制显示确认:收到一个报文后,用专有的报文给你确认(ACK)隐式确认:基于序列号的确认机制,收到一个可靠传输报文后,再用相同报文给你回复LSAck确认LSU,LSU确认LSR,DBD确认DBD。路由器ID的选举1、手工配置(优先级最高)2、没有手工配置,所有状态为UPUP的环回口中选举最大的IP地址3、物理接口(UPUP)最大的IP地址路由器ID的作用:1、标识域内的一个路由器2、标识该路由器所发送的一切LSA3、MA网段中DR和BDR的选举Hello报文所包含的字段1、RID2、Helloanddeadintervals*3、Neighbors(邻居的RID)4、AreaID*5、RouterPriority路由器优先级(点到点环境中没有优先级,只在MA网段)6、DRIPAddress7、BDRIPAddress8、Authenticationpassword*9、Stubareaflag*OSPF建立邻居的必要条件:1、相同的Hello时间和Dead时间2、相同的区域ID3、相同认证类型和密钥4、如果把一个非骨干区域部署为特殊区,该特殊区域内的所有路由器要部署为相同的区域类型5、邻居的之间的MTU要一致,可以打破不一致,但需要高级配置OSPF的邻接状态1、Down(初始状态,被宣告的接口没有发送任何报文)2、Initial(通过一个接口发送一份Hello)3、Two-Way(通过一个收到一个Hello,并且Hello的Neighbor字段含有本地的路由器ID)4、Exstart(交互三个不带LSA报头的DBD选择Master/Slave)5、Exchange(由Master发起的带有LSA报头的DBD信息交互)6、Loading(交互LSRLSU以及LSAck实现LSDB的同步)7、Full(一旦LSDB同步,邻接关系到达Full)ShowipprotocolsShowipospfneighborShowipospfShowipospfinterfaceDebugipospfpacketDebugipospfadj(Adjacency修改MTU进入接口:ipmtu1492清OSPF进程特权模式:clearipospfprocessyes让OSPF建立邻居忽略MTU的问题进入接口:ipospfmtu-ignore如果没有该命令,并且两端的接口的MTU不一致,则OSPF邻接关系会卡在Exstart状态修改OSPF的Hello时间和Dead时间进入建立邻居的接口;ipospfhello-interval12ipospfdead-interval48修改Hello时间能够影响Dead时间和Wait时间,但是修改Dead时间不会影响Hello时间默认环回口被宣告进OSPF,是以32主机路由形式通告的,这样会避免路由黑洞,避免链路带宽的浪费还原环回口的24位掩码改变环回口的接口类型:ipospfnetworkpoint-to-point在MA网段建立OSPF邻接关系时DR和BDR的选举原则1、参与该MA网段的路由器接口的OSPF优先级,越高越好(0-255)2、该MA网段所连接的路由的RID,越高越好DR和BDR无法被抢占;DR挂了BDR会立即抢占成为新的DR,而新的BDR通过所有的DROTHER之间重新选举得出;DR和BDR都是路由器的接口概念,每个网段的DR和BDR都是通过相同的机制单独选举的;在以太网环境建议拥有DR和BDR,实现备份,而在FR环境中,只能是Hub节点成为DR,任何Spoke节点都不能成为DR或BDR。如果一个MA网段没有DR和BDR,没有邻接关系存在,也不会有任何LSA的传递。修改接口OSPF优先级Ipospfpriority10OSPFMA网段接口的OSPF优先级如果值为0,代表的不是优先级的最小值,而是该接口没有资格在这个网段参选DR和BDR,只能成为DROther。所以一个MA网段可以没有BDR,但一定会有DR。一台运行OSPF的路由器,只要在一个接口开启了OSPF进程,则该接口会立即监听发往224.0.0.5的组播组流量,而仅当一个节点成为DR或BDR时,该接口才会同时监听发往224.0.0.6的组播组流量。在一个MA网段内,所有路由器发送给DR和BDR的报文的目的地址都是224.0.0.6,而Dr将LSA整合后以224.0.0.5的地址发送给网段内所有其他的路由器。官方建议:1、一个ABR最多关联三个区域2、在一个区域内,路由器的数量最多有五十台3、对于一台运行OSPF的路由器,OSPF邻接状态的邻居最多有60台LSA类型研究的LSA的三点:1、传递范围2、该LSA的通告者3、LSA内所包含的内容1类LSA(RouterLSA)1、只能在一个区域内传递,不能穿越ABR2、区域的内所有路由器都会基于该区域通告一条1类LSA3、包含纯拓扑信息(1、所有直连链路2、直连链路类型、前缀、网络类型以及度量值。Link-ID:通告该LSA的路由器的RIDADVRouter:通告该LSA的路由器的RIDShowipospfdatabaseShowipospfdatabaserouter2类LSA(NetworkLSA)1、只能在一个区域内传递,不能穿越ABR2、MA的网段内的DR3、包含纯拓扑信息(1、MA网段内直连的路由器信息2、掩码)Link-ID:该MA网段DR接口的IP地址ADVRouter:该DR的RIDShowipospfdatabasenetwork3类LSA(SummaryLSA)默认3类LSA不做汇总1、除了产生该LSA的区域的所有其他区域2、ABR3、包含纯路由信息:一条3类LSA包含一条OSPF域间路由,标识为OIALink-ID:3类LSA路由的前缀ADV-Router:ABR的RID。3类LSA的OSPF路由选择域内传递的时候为了保证可达性每跨越一个ABR都会自动改写为该ABR的RIDShowipospfdatabasesummary4类LSA(SummaryASBLSA)1、传递范围:除了ASBR所在区域之外的整个路由选择域2、通告者:和ASBR在同一个区域的ABR3、包含内容:纯拓扑信息,描述了ASBR所在的位置Link-ID:ASBR的路由器IDADV-Router:通告者ABR的RID,并且该值每跨越一个ABR都会自动改变,同3类LSA。Showipospfdatabaseasbr-summary5类LSA1、传递范围:整个OSPF选择域(除特殊区域)2、通告者:ASBR3、包含内容:包含的纯路由信息(外部路由信息)LinkID:外部路由的前缀ADV-Router:ASBR的路由器ID,该LSA在OSPF内传递的时候ADV-Router不会改变查看ABR以及ASBR的信息的Show命令:Showipospfborder-routers两种外部路由的区别OE2:这种路由的度量值在域内传递的时候度量值不会改变OE1:Seed-Metric:对于OSPF而言,如果将BGP路由重分发进入,则Seed-Metric值为1,而对于其他的为20域间汇总:需要在ABR上部署,实现对3类LSA的汇总传递配置在进程中:area0range202.10.8.0255.255.252.0后可加参数cost36(修改度量值)或加not-advertise后加not-advertise(作汇总,并且不通告汇总路由)可实现路由过滤上条命令意思区域0的路由在被发送的时候会被汇总用前缀列表抓路由实现过滤Ipprefix-list10deny202.10.8.0/23ge24le24Ipprefix-list10permit0.0.0.0/0le32Area1filter-listprefix10in域外汇总:需要在ASBR上部署,实现对5类LSA的汇总传递在进程中:summary-address192.168.8.0255.255.252.0后可加参数not-advertise或tag(给汇总路由添加标记,方便对路由的抓取)OSPFLSDB的保护邻居传递的LSA的最大的条数在进程中:max-list4100ignore-time1ignore-count2reset-time2100的意思当LSA的条数为4的时候才会出问题,默认为75,也就是3条LSA修改OSPF接口的度量值ipospfcost66修改计算度量值的分子,默认为100M在进程中auto-costreference-bandwidth10000(单位为Mbit/s)现今的链路的带宽比较高而分子的100M,100M、1000M和10000M的链路计算得出的度量值都一样,