OSPF(Open Shortest Path First)开放最短路径协议
OSPF的三张表:邻接表;链路状态数据库;(通过最短路径算法SPF生成)路由表。
OSPF的区域是通过区域ID(Router ID)进行区分
Rouer ID 的选取规则:在loopback接口上数值最高的IP地址。如果没有设置环回口会在接口上的IP地址数值最高的接口选择为RID
使用环回口作为RID是增加链路的稳定性,不会因为物理接口状态(如接口的ShutDown,配置了数值更大的IP地址)影响到RID的稳定性。
路由器角色:
DR(指定路由)BDR(备份路由器)可以理解为“班长”和“副班长”,用于处理区域内的路由器的路由。DRouthers(既不是DR又不是BDR)。
DR和BDR
选举条件:优先级(0-255)默认值为1+RID 越大约优
注意点:在真实工作环境中先开启OSPF进程的路由器会成为DR,BDR。因为稳定大于一切的原则,不会对DR,BDR进行抢占
选举过程:所有的路由器都会通过组播的方式发送HELLO包进行比较优先级和RID
组播地址:224.0.0.5 (DR和BDR使用) 224.0.0.6(DRouthers使用)
OSPF的度量值:COST=10^8/BW(参考带宽默认为1)
大型网络公司需要更改
[hw]ospf
[hw-ospf-1]bandwidth 10000 //10G
OSPF数据包
承载在IP数据包内。使用的协议号为89
五种数据包的类型:
Hello包:用于发现和维持邻居关系,选举DR和BDR
数据库描述包DBD:用于向邻居发送摘要信息,同步链路状态数据库
链路状态请求包LSR:在路由器上收到DBD后发送,用于请求更详细的信息
链路状态更新包LSU:收到LSR后发送链路状态通告(LSA),一个LSU数据包可能包含多个LSA
链路状态确认包Lsack:确认收到LSU的确认包
七种状态
DOWN状态:没有开启OSPF进程的状态
Init状态:开启进程发送Hello包
2-way状态:建立邻居的关系。选举出DR和BDR(DRouthers只会停留在这个状态)
Exstart状态: 发送链路状态数据库的描述DBD
Exchange状态:发送LSR和LSU数据包交换完整的路由条目
Losding状态:收到LSAck,进行SPF计算
FULL状态:收敛完成,生成并装载路由表
网络类型
点对点网络(P2P)
广播多路访问(Broadcast以太网)
非广播多路访问(NBMA)
点对多点网络类型(Point-to-Multipoint)帧中继
OSPF的路由器角色:ABR(域间路由),ASBR(AS间的路由)
域的角色:骨干区域(area0)标准区域(area除0以外)stub区域 nass区域
LSA报文:
LSA1(Router ) 路由器所有的路由都会发送在域内泛洪(可以理解为HELLO包)描述了路由器的链路状态和开销
LSA2 (Network) 由DR发送 描述本网段的链路状态
LSA3 (Summary LSA) 由ABR发送向骨干区域通告标准区域的路由汇总,向标准区域通告骨干区域的路由汇总 描述区域内所有网段的路由,并通告给其他相关区域。完成最短路径树
LSA4(ASBR Summary LSA):描述到达ASBR的路由,通告给除ASBR所在区域的其他相关区域。由ABR产生
LSA5 (AS External LSA):通告给所有的进程内所有的路由器(除了特殊区域内的路由)描述AS域外的路由汇总
LSA7 (Nass LSA) :由ASBR产生只在Nass区域内泛洪,7类报文转发出其他区域会进行7转5的方式由LAS5进行通告出去
特殊区域:末梢区域(stub)
生成条件:
- 域内只能有一个路由器出口(ABR)
- 不能在骨干区域内,
- 不能有虚链路穿越
生成原因:随着网络拓扑的增大会产生非常多的路由条目。而路由器的性能层次不齐,路由器无法承载这么大的网络负担。进行减少网络的路由条目
区域内只通告LSA1,LSA2,LSA3
完全末梢区域:对路由条目在进一步压缩就出现了完全末梢区域
区域内会通告LSA1,LSA2,一条3类型的缺省路由
在连接PC机时OSPF进程也会对PC机发送HELLO报文,但是PC机有不能识别该报文但是有消耗了链路的带宽所以我们要对连接PC机的端口配置静默接口,从而节省网络的带宽
NASS区域
除了骨干区域可以连接到外部路由,其他区域连接到外部路由拥有更短更优的路径,所以出现了NASS区域。该区域是在stub的情况下 出现了ASBR路由器。