OSPF学习总结
一、OSPF协议的报文类型:
1、 Hello 报文:主要用来发现、建立和维护邻居关系。
2、 DD报文:数据库的描述报文,主要用来两台路由器的数据库同步。
3、 LSR报文:链路状态请求数据包。请求自己没有或者比自己新的链路状态信息。
4、 LSU报文:链路状态更新数据包。给发送LSR请求的路由器提供的链路状态数据库更新报文。
5、 LSAck报文:链路状态确认数据包。对提供LSU报文路由器收到对方发送的LSU报文后进行的确认报文。
报文的作用和报文内容:
Hello报文的作用:
1、 发现邻居
2、 建立邻居关系
3、 维持邻居关系
4、 选举DR和BDR
Hello报文所包含的内容:
路由器的router-id、Hello&&Dead时间间隔、区域ID、邻居、DR、BDR、优先级、验证。
说明:Hello时间间隔、区域ID、验证一致时才可以建立邻居关系。
邻居关系为FULL状态,邻接关系处于Two-way状态。
Hello时间间隔:
在P2P网络中和广播类型的网络中为10s。
在NBMA网络与P2MP网络中为30s。
说明:保持时间为Hello时间的4倍。
虚电路传送的LSA为DNA,时间抑制,永不老化。
OSPF的组播地址:224.0.0.5 泛洪扩散更新的数据包到DRothers。
DRother使用组播地址:224.0.0.6发送更新信息数据包,DR和BDR负责监听。
二、OSPF区域的划分
由于OSPF是链路状态类型的协议,通过LSA的传递、更新,最终区域内的所有的路由器都保持同样个链路状态数据库,如果一个区域中的路由器的数量太多时,低性能的路由器可能没有能力处理大量的LSA。动态路由协议的路由表是路由器使用链路状态数据库计算出来的,如果LSA的数据库太大,会影响路由器计算路由,另外一个区域中路由器的数目过多,则给管理上代理很多问题。
1、 OSPF区域划分的优势
减少LSA的泛洪
降低路由器的硬件性能上的高要求
便于管理
2、 OSPF区域的划分原则
基于行政区域的划分
基于地理位置的划分
基于高性能路由器的划分
注意:OSPF中非骨干区域必须和骨干区域相连,骨干区域必须是连续的。
三、OSPF router-ID 选举
Router-ID:在运行OSPF协议的区域内,唯一标识一台路由器,建议手工指定或者配置loopback口。
1、路由器手动配置了router-id
路由器手动配置router-id,有两种方式,一种是在系统视图下配置,一种是在OSPF的协议视图下配置,OSPF协议进程下的router-id优先级比系统视图下的要高,如果两者同时配置,那么OSPF在选择router-ID的时候首选协议视图下配置的,另外需要说明的一点是如果在系统视图下配置router-id,如果路由器同时运行OSPF和BGP,那么如果两个协议都没有指定router-id,此时两个协议的router-id都是该系统视图下配置的router-id。
3、 路由器配置了loopback 口地址
如果路由器没有手工指定router-id,但是配置了loopback口的地址,此时ospf进行router-id选举时,会首先选择loopback口上的地址中数值最大的地址作为本路由器的router-id。
4、 如果路由器没有手工指定,也没有配置loopback口的地址,此时ospf选择router-id的时候会选择物理接口配置了IP地址且有效的地址作为路由器的router-id。
四、OSPF支持的网络类型
1、广播类型的网络:典型的应用就是以太网。
2、点到点的网络:当链路层封装协议为PPP、HDLC时。
3、点到多点(P2MP):没有一种网络类型是P2MP的,常用的做法是将NBMA改为P2MP网络。
4、NBMA类型网络:包括ATM、X.25网络。
五、OSPF中路由器的角色
骨干路由器:当路由器的一个接口处于骨干区域,且和骨干区域建立起了邻接关系,此时路由器的角色为骨干路由器。
区域内部路由器:路由器的所有接口都在相同的一个区域内部时,此时该路由器就是一个区域内部路由器。
区域边界路由器:(ABR)路由器的接口属于不同的区域,且至少有一个接口位于骨干区域,此时路由器的角色为区域边界路由器。
自治系统边界路由器:(ASBR)与其他AS交换信息的路由器叫做自治系统边界路由器,
六、广播类型和NBMA类型的网络选择DR和BDR过程
在广播类型的网络中,由于OSPF工作时每台路由器都需要和其他的路由器建立邻接关系,为了减少网络中的邻接关系,OSPF提出了选举DR和BDR,选举DR和BDR的广播类型的网络中,其他的路由器只和DR和BDR建立邻接关系,非DRother路由器将LSA发送给网络中的DR和BDR,由网络中的DR负责将其他路由器的LSA更新给网络中的路由器,同时,当网络中的DR出现故障时,原网络中的BDR马上成为本网的DR,整个网络的路由不会产生较大的震荡,当网络中重新选举BDR后,整个网络又处于稳定状态了。
1、 选举DR和BDR的原因
减少网络中的邻接关系、减少LSA的泛洪数量、维持网络的稳定。
2、 DR的选举选择
广播类型的网络中启动OSPF进程时,每台路由器通过发送Hello报文,寻找邻居,建立邻居关系,选择DR时会优先选择在某一网段上路由器接口优先级最高的路由器作为本网段的DR,路由器的优先级的范围为0~255,默认情况下,OSPF路由器的接口优先级为1,255为优先级最高,当一台路由器位于某一网段的接口的优先级被人为的指定为0后,此时该台路由器在该网段将永远没有DR和BDR的选举权限,永远为DRother角色。
如果同一网段的两台路由器的两个接口优先级相同时,则比较两台路由器的router-ID,哪台路由器的rouer-ID数值大,那么该台路由器将是这个网段的DR。
说明:在实际环境中,当一台路由器优先运行OSPF协议时,即使它的优先级比其他的路由器低,router-ID也小,那么它也有可能成为DR。这是OSPF为了保证网络的稳定而规定的,也就是广播类型的网络中的DR和BDR的选举是在某一次中有效的。
当网络中DR选举出来后,比DR级别低的那台路由器就是BDR角色。
七、邻居关系的建立过程
1、当一台路由器运行OSPF并将相应的物理网段宣告后,OSPF会从宣告的接口发送Hello数据包,首次发送的Hello包中包括自己的router-id,自己的直连网段信息、区域号、Hello时间间隔和dead 时间间隔。
2、当一台路由器收到另外一台路由器发送的Hello报文后,将对方加入到自己的邻居表,广播类型的网络中通过比较router-ID已经选举出了DR。
3、当两台路由器相互将对方加入到自己的邻居表的时候,那么这两台路由器就已经建立了邻居关系。
4、如果在一定的时间间隔中路由器收不到邻居的报文,超过一定的时间后,将会将邻居从自己的邻居表删除。
八、OSPF的状态机
DOWN:表示在上一个邻居失效时间内,当前接口没有收到任何的Hello报文,这个状态是一个稳定状态。
Attempt:这个状态只会出现在NBMA类型的网络中,当一台设备试图通过Hello报文去联系自己的邻居,但是没有收到邻居的Hello报文时,就会将它的邻居状态设置为attemt。
INIT:表示一台路由器收到了其他路由器发送的Hello报文,但是从该报文的邻居列表中没有看到自己的router-ID。
2-WAY:标示一台路由器收到了其他路由器发送的Hello报文,并且从该报文的邻居列表中发现了自己的router-ID。
EXSTART:表示一台路由器和它的邻居在协商主从关系。
在此状态下,两台路由器需要进行master/slave的选举,而进行主从的协商,一般来说router-ID大的最终协商为master。
EXCHANGE:此时两台路由器进行DD报文的交换。
如果此时交换后,两台路由器的LSDB一样,那么直接进入FULL状态。
LOADING:路由器通过比较DD报文和LSDB,发现DD报文中的条目LSDB中不存在,此时会发送一个LSR的请求,请求邻居发送自己需要的LSA给自己,邻居收到后会发送LSU的报文,并且发送方要求接收方发送LSAck报文进行确认,当路由器更新完成后,给发送方发送一个LSAck的确认报文。
FULL:路由器拥有完整的LSDB。
注意:邻居不是邻接。
LSA的更新:每条LSA都有一个序列号,OSPF通过比较序列号区分是否是最新的LSA。
路由器只会更新比自己新的LSA,当网络中拓扑发生变化的时候,DRother马上以组播224.0.0.6通告给DR和BDR,由DR负责通告给其他路由器。
在P2P和P2MP网络中不存在DR和BDR这样的角色的。
九、OSPF的LSA
OSPF V 3中的LSA总共有11中,除去组播和流量工程、MPLS特性的一些特殊的LSA外,需要掌握的有五种:
Type 1 LSA:router-LSA 每台启用OSPF的路由器都会产生该类的LSA,路由器链路Router-id; 接口地址; 接口网络; 接口花费等信息。
Type 2 LSA:network-LSA,该类LSA由广播类型的网络和NBMA网络中的DR产生的,P2P网络则没有Type 2 LSA,该LSA包含了该网段所有路由器的router-ID,网段掩码信息、DR 和BDR信息。只会在本区域中传播。
Type 3 LSA:Summary LSA ,该类的LSA由ABR生成,主要包含本区域中的网段的子网信息,以路由条目的形式将本区域的路由信息传递到相邻区域。
Type 4 LSA:ASBRsummary LSA ,用来通告到达外部自治系统的ASBR路由器的router-ID。
Type 5 LSA :AS External LSA 用来向OSPF通告到达外部自治系统的路由。
Type 7 LSA:当人为定义一个NSSA区域的时候,会产生七类的LSA。用以通告如何到达自治系统外部,Type 7类LSA在传送到相邻区域的时候又被转换成5类LSA。
十、一些人为定义的特殊区域
1、stub区域:当将一个非骨干区域人为指定为stub区域后,该区域将不会注入Type 4和Type 5类的LSA,取而代之的是生成一条三类的LSA。
2、totall stub:当一个非骨干区域被认为的指定为totally stub区域后,该区域不允许注入Type 3 、Type 4和Type5类的LSA,同样生成一条Type 3的LSA。
3、NSSA区域:该种区域是stub区域的一种改进,虽然不让注入Type 5类,但是会生成一条Type 7类的LSA 。
十一、OSPF选路原则
说明:OSPF内部的优先级为10,外部优先级为150,不同厂商可能有很大的不同。
1、 区域内部路由
2、 区域间路由
3、 第一类外部路由:指的是IGP协议产生的路由,如RIP、OSPF。
4、 第二类外部路由:只的是BGP引入的路由。
说明:当OSPF引入多条路由前缀相同,但是掩码不同的路由时,需要将掩码长的LSA进行处理,将它的主机位全部置为1,以子网广播地址作为它的LS ID。
十二、OSPF的安全特性
1、 协议报文认证
OSPF的认证有md5和明文认证的方式,建议使用Md5的方式,使用Md5不但安全性高,更重要的一点是md5认证时修改密码不会断流。
2、 静默端口
Silent-interface ,需要注意的是OSPF的静默端口将不会进行报文的收发,而不像RIP协议一样使能silent-interface后,只收不发,因为OSPF要发送Hello报文建立邻接关系。
3、 过滤OSPF通过SPF计算的路由
4、 过滤Type 3 LSA
十三、虚电路技术
当非骨干区域没有和骨干区域相连接或者骨干区域由于某种原因被分割的时候可以通过使用虚电路在两台ABR上配置虚电路,配置虚电路后会形成一个点到点的虚电路的邻接关系,此时非骨干区域的LSA进行传送时会被当做普通的报文进行转发。
十四、路由聚合
1、 在ASBR上进行聚合:外部自治系统进入OSPF区域的时候进行路由的汇总。
2、 在ABR上进行汇总:将本区域的路由进行汇总,输入到相邻区域。