OSPF五种报文解析
Hello:招呼信息
Route-ID:换回口地址/活动的物理接口最大值
Hello作用:
1. 发现邻居
2. 对一些数据的协商
3. 保持邻居的Keeplive状态。选举DR、BDR
Hello-interval=10s
dead-interval=40s
形成邻居的条件:区域号相同,Route-ID必须不同,认证类型(密码)相同,hello时间和死亡时间要一致
区域号:0~255
划分区域作用为了减小同步数据库开销,同步时只在相同的区域内进行同步,两个路由器之间的接口,区域需要相同。
表示方法:区域号(区域ID)为32位二进制,可以表示为一个十进制数,或者点分十进制。
- 例如:区域0等价于区域0.0.0.0;区域1等价于区域0.0.0.1。
区域0:骨干区域
非0区域:常规区域
常规区域必须和骨干区域相连,非骨干区域间通信,都需要通过骨干区域0转发。
DatabaseDescription:数据库描述,比如宣告了什么内容
Link-State Request: 链路状态请求,即根据收到数据库的描述发出请求内容
Link-State Update: 链路状态更新
Link-State Acknowledgement: 更新确认
OSPF邻居的八种状态
1. Down 关闭状态
hello包组播发出,相邻设备接收到后的状态,开始协商是否建立邻居关系
2. Init 初始化对方状态
协商确认Hello包信息一致,将发包者状态置为Init
然后组播回复发包者,同时携带发包者的Route-ID。
发包者收到回复的组播包,并且确认携带的Route-ID就是自己的,然后单播向收包者发送hello消息。开始进入下一状态:2-way
3. 2-way状态 邻居关系建立完成
开始选举DR(指定路由器)/BDR(备份指定路由器)(避免发送单播数据包过多):
1.查看优先级,列出能参选的DR/BDR 和申报自己就是DR/BDR的
2. 建立一个没有声明自己就是DR的子集。声明自己就是DR的不能被选成BDR。
3.在此子集中,优先级大的、route-id大的成为BDR。
4.然后选择DR.若无人声明自己就是DR的话,则新选的BDR成为DR.
未被选举为DR、BDR的路由器称为Ohters角色,从此停留在2-way状态.........
4. Exstart状态 (DR、DBR和所有人之间)
发送单播dbd包,每个路由器都和DR和BDR交换数据库,没有被选举问DR的路由器叫做DR的Others, 每个路由器之和DR & BDR交换数据库
Others路由器和DR/BDR之间交换数据库通过224.0.0.6
DR/BDR通过224.0.0.5 向所有路由器发单播dbd包
5. Exchange状态(DR、DBR)
交换LSR和LSU数据包,会看到单播请求和更新
6. Loading.....状态(持续发组播更新,计算路由表)
7. Full (DR、BDR 所有请求更新完成)
收敛完成后,区域内所有路由器具有相同的LSDB
OSPF动态路由协议特点优势
1. 触发更新或者30分钟更新一次,如果网络发生变化立刻向邻居发送信息,收敛时间短。
2. 增量更新机制,路由器学习路由的时候,DB DBR只发送邻居需要的LSA。
3. 收敛以后,区域内说有路由器具有相同的LSDB (链路状态数据库)
这个LSDB能体现全网的链路状态(该网络中有哪些路由器,搁置编号是多少,直连网段是什么开销是多少)
4. 分区域管理:同一个区域内的路由器才会建立邻居关系,交换LSA。
收敛后统一个区域内所有设备间具有相同的LSDB,这个LSDB反应了区域内的链路状态信息,由此计算区域内的路由。非骨干区域间通信都需要通过骨干区域0转发,如果网络中有不同的ospf区域,肯定有个区域是0区域