首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OSPF(2)OSPF通信

OSPF报文封装

报文头部

Type=1LSA为HELLO报文,用来建立和委会邻居关系,邻居关系建立前需要进行参数协商。

Type=2LSA为数据库描述报文(DD),用来向邻居路由器描述本地链路状态数据库,使得 邻居路由器识别出数据库中的LSA是否完整。

Type=3为链路状态请求报文(LSR),路由器根据邻居的DD报文,判断本地数据库是否 完整,如不完整,路由器把这些LSA记录进链路状态请求列表中,然后发送一个LSR给 邻居路由器。

Type=4为链路状态更新报文(LSU),用于响应邻居路由器发来的LSR,根据LSR中的请 求列表,发送对应LSA给邻居路由器,真正实现LSA的泛洪与同步。

Type=5为链路状态确认报文(LSAck),用来对收到的LSA进行确认,保证同步过程的 可靠性。

OSPF Hello报文及格式

OSPF协议使用一种称之为Hello的报文来建立和维护相邻邻居路由器之间的邻居关系。仅用来向邻居路由器证明自己的存在,就像人与人之间的打招呼一样。

RIP邻居路由器之间的邻接关系建立是都是定期的路由更新报文进行的,通过定期的路由更新来同时向邻居RIP路由器证明自己的存在。显然OSPF的这种Hello报文更简单,可大大减小网络中的报文传输流量。

Hello报文被周期性(P2P/BMA:10S P2MP/NBMA:30S)地发向邻居路由器接口发送,如果在设定时间(Dead time 邻居失效时间:4*hello时间)内没有收到对方OSPF路由器发送来的Hello报文,则本地路由器会认为该对方路由器无效。

报文内容包括一些定时器设置、DR、BDR以及本路由器已知的邻居路由器。

Hello报文内容部分字段说明

Hello报文解释

OSPF动态发现邻居:因为邻居都是未知的,所以Hello报文的目的IP地址不是某个特定的单播地址。邻居从无到有,OSPF采用组播的形式发送Hello报文

支持多播的网络:目的地址(ALLSPFRouter)224.0.0.5。IP多播地址的最后23个比特加上以太网多播的固定头部0100.5e来生成多播MAC地址(0100.5e00.0005)

224.0.0.6只有DR和BDR监听,

不支持多播的网络(帧中继映射为二层广播地址ffff:ffff:ffff)

对于不支持组播的网络可以通过手动配置实现邻居的发现与维护

OSPF DD报文及格式

DD(数据库描述报文)报文是用来描述本地路由器的链路状态数据库(LSDB),在两个OSPF路由器初始化连接时要交换DD报文,进行数据库同步。

DD报文内容部分包括:DD报文序列号和LSDB中每一条LSA的头部等,对端路由器根据所收到的DD报文中的OSPF报头就可以判断出是否已有这条LSA。由于数据库的内容可能相当长,所以可能需要多个数据库描述报文来描述整个数据库。所以有三个专门用于标识数据库描述报文序列的比特位,即DD报文格式中的I、M和M/S这三位。接收方对报文的重新排序使其能够真实地复制数据库描述报文。

选择主DR/从BDR

DD交换过程按询问/应答方式进行,在DD报文交换中,一台为Master(主)角色,另一台为Slave(从)角色。Master路由器向从路由器发送它的路由表内容,并规定起始序列号,每发送一个DD报文,序列号加1,Slave则使用Master的序列号进行确定应答。但是显然,主从之间的关系会因每个DD交换的不同而不同。网络中的所有路由器会在不同时刻作用,在这个过程中既可能是主路由器又可能是从路由器。

DD报文格式

DD报文内容部分字段说明

因为DD报文仅在两台OSPF路由器初始化连接时才进行DD交换,所以它没有发送周期,以后的数据库存同步是通过LSR、LSU和LSAck报文进行同步的。

OSPF LSR报文及格式

LSR报文用于请求相邻路由器链路状态数据库中的一部分数据。当两台路由器互相交换完DD报文后,知道对端路由器有哪些LSA是本LSDB所没有的,以及哪些LSA是已经失效的,则需要发送一个LSR报文,向对方请求所需的LSA。

LSR报文内容部分字段说明

9.2.4 OSPF LSU报文及格式

LSU报文是应LSR报文的请求,用来向对端路由器发送所需的LSA,内容是多条LSA完整内容的集合,LSU报文内容部分包括此次共发送的LSA数量和每条LSA的完整内容

LSU报文格式

LSU报文在支持组播和多路访问的链路上是以组播方式将LSA泛洪出去的,并且对没有收到对方确认应答(就是下面将要介绍的LSAck报文)的LSA进行重传,但重传时的LSA是直接送到没有收到确认应答的邻居路由器上,而不再是泛洪。

LSU报文内容部分字段说明

OSPF LSAck报文及格式

LSAck报文是路由器在收到对端发来的LSU报文后所发出的确认应答报文,内容是需要确认的LSA头部(LSA Headers)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180224G0FZMV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券