链路状态路由协议-OSPF

谁说我不能喝 提交于 2020-02-05 00:23:26
前言

开放式最短路径优先OSPF(Open Shortest Path First)协议是IETF定义的一种基于链路状态内部网关路由协议
RIP是一种基于距离矢量算法的路由协议,存在着收敛慢、易产生路由环路可扩展性差等问题,目前已逐渐被OSPF取代。

开放式最短路径优先(OSPF)

在这里插入图片描述

OSPF原理介绍

ospf中存在这两种关系,需要区分一下:
在ospf中有两个关键名词:
1.邻居关系:即两台路由器没有路由交互
2.邻接关系:即两台路由器有路由交互

与rip的区别是,ospf发送的数据包直接封装在网络层,即直接封装在ip报文之上,且ospf传输的是LSA(链路状态通告信息),该信息包含链路状态信息拓扑信息(这个可以理解为自己所知道的拓扑地图),因为有了拓扑信息,相比rip协议收敛更快一些。
在这里插入图片描述

OSPF报文

OSPF报文封装在IP报文中,协议号为89(rip封装在传输层udp协议之上协议号为520)。
OSPF报文类型有5种:
Hello 报文
DD(Database Description)报文
LSR(LSA Request)报文
LSU(LSA Update)报文
LSACK(Link State Acknowledgment)报文

报文中:
hello interval :代表发送hello包间隔,一般为10s
Router Priority:优先级,默认为1,选举dr/bdr时使用
Router Dead Interval:一般为hello interval*4,若40秒没收到对方发hello包,则认为对方"down"了。
dr/bdr 缺省为0

在这里插入图片描述在这里插入图片描述

邻居状态机

down:刚刚配置完ospf的路由器状态都为down。
init:向附近发送组播包(地址为224.0.0.5)时,路由器进入init状态。
2-way:邻居收到组播包,将缓存存到列表中,回复hello包 ,两人进入2-way状态,即进入双向通信状态。
extart: 当进入2-way状态后,主从关系选举开始,即选出master和slave, 目的,控制路由更新序列号(由master先发包,序列号以它序列号为起始序列号开始递增), 确保机制可靠,即router-id大的选为master。
exchange:交换彼此数据库信息
load:加载新的数据库信息
full:邻接关系建立完成的标志。
在这里插入图片描述

ospf邻接关系建立
  • 邻居发现

Hello报文用来发现和维持OSPF邻居关系。所以在初始化完成后,RTA通过组播地址(224.0.0.5)发送hello包,RTB收到后回复,双方进入2-way状态。
在这里插入图片描述

  • 数据库同步

路由器使用DD报文来进行主从路由器的选举和数据库摘要信息的交互。即建立主从关系后并不是直接发给对方自己的数据库数据,而是先发送数据库摘要(这里可以理解为,路由器的目录),然后各取所需。
DD报文包含LSA的头部信息,用来描述LSDB的摘要信息。

在这里插入图片描述

  • 建立完全邻接关系

LSR用于向对方请求所需的LSA。
LSU用于向对方发送其所需要的LSA。
LSACK用于向对方发送收到LSA的确认。
在这里插入图片描述

OSPF支持的网络类型

在这里插入图片描述在这里插入图片描述

DR&BDR

在ma环境下,dr/bdr选举是非常有必要的,若每台路由器两两之间建立邻接关系,则会导致流量使用过大,影响传输效率,故选举DR/BDR后,其他路由器DRother需要与其他DRother建立邻接关系时,只需用组播地址(224.0.0.6)发送数据包给DR/BDR,由DR/BDR通过组播地址(224.0.0.5)泛洪即可。
需要补充一点,DRdown掉恢复后,不能再抢占回来。
在这里插入图片描述

DR&BDR选举

DR是基于端口的路由器优先级的值进行选举的。若优先级一样则比较router-id,都是选值大的为DR。

在这里插入图片描述

OSPF区域

每个区域都维护一个独立的LSDB。
Area 0是骨干区域,其他区域都必须与此区域相连

在这里插入图片描述

OSPF开销

OSPF的开销计算公式为带宽参考值/带宽 。
可以通过bandwidth-reference命令来设置带宽参考值。
需要注意的是:当算出来的值小于1时候,一律为1,所以我们设置的参考值越大,精确度越高。
OSPF开销:开销只算接口开销

在这里插入图片描述

OSPF配置

在这里插入图片描述在这里插入图片描述

OSPF认证

在这里插入图片描述在这里插入图片描述

总结

  1. OSPF Hello报文中Router Dead Interval字段的作用是什么?
    判断对端路由器是否存活
  2. 在广播网络中,DR和BDR用来接收链路状态更新报文的地址是什么?
    224.0.0.6
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!