OSPF笔记-五个报文

本次实验拓扑图如下:

一旦接口开启了ospf接口【例:R1上network192.168.1.0就开启了R1的G0/0/0接口的ospf功能】就开始周期性的发布Hello报文,用于发现直连链路上的邻居。路由器的接口收到其他路由器的Hello报文时[并且在该Hello报文上的邻居字段发现了自己的Router-ID]会将接口状态改为2-way状态。

Hello报文
Hello报文有两个作用:1.用于发现邻居。 2.维护邻居关系。

现在随便抓取一条Hello报文来了解Hello报文的格式:

子网掩码:该字段为发送该Hello报文的接口子网掩码,以太网直连的两台路由器【如两台直连的路由器】子网掩码必须一样才能建立邻居,否则忽略该Hello报文。

Hello间隔:Hello报文的泛洪周期。

可选项:一共8位,每一位都代表发送该Hello的路由器所支持的一项功能或特性。

路由器优先级:也叫做DR优先级,默认该值为1【优先级大的为DR,其次为BDR】。 可通过【 [Huawei-GigabitEthernet0/0/0] ospf dr-priority 0~255 】来修改该优先级。 注意:当该优先级设置为0时,该端口将不参与DB和BDR选举。

路由器失效时间:在邻居路由器被设置为Down[失效]前的等待时间,默认为Hello间隔的4倍。

DR的接口IP:该网络里的DR接口IP,如果为0.0.0.0 则表示没有DR或DR未选举。

BDR的接口IP:该网络里的BDR接口IP,如果为0.0.0.0 则表示没有BDR或BDR未选举。

邻居Router-ID:该路由器已经发现的所有有效邻居[即已经相互建立邻居关系的邻居{此时最低位2-way状态},关于ospf状态后续更新会向详细介绍。]

DD报文[数据库描述报文]
DD报文可以有一个或多个,依据LSA的数量来决定。

LSA:链路状态通告,在ospf中用于描述自己的接口状态,cost[也叫做:度量值、开销],邻居关系的报文。

DD报文描述的是LSDB[链路状态数据库,储存的是所有LSA信息] 的LSA的头部信息而非完整的LSA。

现在抓取一下随机的DD报文:

最大传输单元:以bit为单位,控制同一个报文是需要分片传输【缺省为0】。

可选项:路由器支持的ospf功能或特性。

I位:若该位为1表示该DD报文用于协商Mater/Slave[主/从]{链接:
DD报文中的 [主/从] 路由器选举
https://blog.csdn.net/weixin_58757687/article/details/122951235
}。为0表示已经完成了选举。

M位:若后续还有DD报文则为1,若是最后一个DD报文则为0。

MS位:若为主路由则为1,从路由则为0。

DD序列号:该字段用于保障DD报文传输过程中的有序性。为了保障DD报文传输过程的有效性,DD报文会由 Mater{主路由}来传输给Slave{从路由},并且DD序列由主路由决定。整一个过程是这样:先由Hello报文发现并与邻近路由建立邻居关系,再发布空的DD报文用于选举Mater/Slave[此时DD序列号可以不一致],选举完Mater/Slave后发布带有LSA的DD报文[此时DD报文的序列号由Mater决定,Slave只能沿用Mater发过来的序列号当做自己的序列号来发布带有LSA的DD报文给Mater路由器,并且Slave路由器收到下一个由Mater发来的DD报文才会再次发布DD报文给Mater。]

LSA头部:用于描述链路状态数据库的LSA头部,可以有一个或多个。

LSR报文
LSR【链路状态请求报文】:用于向邻居请求完整的LSA{注意:只会请求自己没有的LSA}。

链路状态类型:常见的有7个类型分别是:type-1 Router LSA ,type=2 Network LSA ,type-3 Network Summary LSA , type-4 ASBR Summary LSA, type-5 AS External LSA, type-6 Group Membership LSA,type -7 NSSA LSA。 #后续更新,如果更新了我会将了链接放在评论区顶置。

链路状态标识:LSA标识。 #后续更新,如果更新了我会将了链接放在评论区顶置。

通告路由:描述产生该LSR的路由器Router-ID。

LSU报文
LSU报文包含的是完整的LSA信息,用于回复LSR报文。并且当路由器感知到网络发生变化时也会泛洪LSU。

注意:非DR/BDR路由器的LSU报文是发送给224.0.0.6地址的,而DR收到这个报文后又会把它发送给224.0.0.5[所有的OSPF路由器]。这样就大大的减少的网络开支,有利于网络的优化。

LSU报文如下:

LSAck报文
LSAck:链路状态确认报文,用于确认LSU报文。为了保障每条LSA可达,需要LSAck来对每天收到的LSA进行确认。

LSAck包含的是所要确认的LSA头部信息 {每个LSA头部长度为20byte}。

发表回复