OSPF(Open Shortest Path First)开放式最短路径优先协议,是一种内部网关协议,即IGP。也是一种链路状态协议。
OSPF基本特点
支持无类域间路由(CIDR)
CIDR就是路由汇总,就是把多个子网会合成一个大的子网,就好比合并。而
VLSM就是细分的一个过程,就是把一个大的子网细分成很多个小的子网的过程。二者是一个相逆的过程。
支持区域划分
首先因为OSPF是适用于大型网络的动态路由协议,所以务必会有许多的路由条目。对于不同性能的路由器,好比核心路由器或者是边缘路由器,对于路由条目的承载能力以及计算能力有差别。一般核心路由器能承载很大数量的路由条目,边缘路由器就只能承载自身区域对应的路由条目了。所以划分区域为骨干区域AREA0,以及其他区域。
无路由自环
得益于快速收敛(触发更新)
路由变化收敛速度快
OSPF使用触发更新,一旦有路由变化就接着发送。触发更新本身就是解决环路的一种方法。
使用IP组播收发协议数据
这一特性极大的适应了协议本身特性,因为OSPF适用大型网络,如果采用广播将会造成极大的带宽消耗,采用组播的话,只有加入到这个组播组的路由器才会收到消息。
支持多条等值路由
即负载分担。
支持协议报文的认证
链路状态算法的路由生成过程
首先每台路由器都会产生自身的LSA(Link State Advertisement)链路状态通告,简单理解为链路状态的信息。然后每台路由器都把自身的LSA发送出去,并且收集在网络中其他路由器发送的LSA,最终组建成自身的LSDB。使用SPF算法生成最短路径树,然后再通过计算生成自身的路由表。
OSPF报文类型
Hello报文:用于建立和维持邻居关系。
建立体现在:建立OSPF邻居时都要先发送Hello包。
维持体现在:建立了OSPF邻居之后需要间断不停的发送Hello包。
DD(Database Describe)报文:用来描述自身链路状态数据库。
LSR(LSA Request)报文:互相通告了DD之后,查看哪些是自己没有的,并发送LSR报文用以请求自身缺少的链路状态信息。
LSU(Update)报文:收到LSR请求报文之后,自然要回复给对方想要的报文,就用LSU报文把响应的信息通告过去。
LSACK(Link State Acknowledgment)报文:对LSU报文进行回复确认。
DR与BDR
Designed Router and Backup Designed Router
背景:假设有一个全互联的正方形网络,如果RA收到了一个信息,那么他就会向自己的所有接口发送这个信息,随后收到信息的所有路由器就会又向自己的其他直连接口发送,这样势必会造成流量的冗余以及带宽的浪费。这个时候如果在网络中选出一个DR(可以理解为班长),有信息通过DR进行转发。当其他路由器收到信息时,只会发送给DR,然后DR收到信息时就会向其它路由器发送,而其他路由器不会再次转发这个信息。
又因为要保证网络的健壮性,所以会设置一个BDR,就是一个备份,当DR倒下之后,BDR接任,成为新的DR。
选举规则:
①优先级:0-255,越大越优。
②Router-id:优先级选择不出来,则选择router-id大的。
Router-id设置规则:
(1)手工设置
(2)loopback接口>物理接口
非抢占原则