ospf报文类型和格式

ospf基于接口进行划分,邻居想要建立,就必须满足字段验证

字段类型

条件

version

版本必须为2

router-id

标识唯一的路由器,不能相同

area id

1. 接受的接口所属的区域id一致 2.接收和所属不一致,但是area为0,则表示虚连接

authentication

验证信息需要一致

networkmask

接收和所属的需要一致,若是p2p或者virtual-link则不需要验证

hello interval

需要保持一致

dead interval

需要保持一致

option

是否接收外部路由,必须和相关区域保持一致

ospf头部报文格式 ospf 报文格式_字段

数据包类型:

1. hello包:

用于维护邻居关系

主要通过路由器id,所属区域标识

ospf头部报文格式 ospf 报文格式_ospf头部报文格式_02

2. DD包

DD包一共会发四个,前两个用来选举主和从,后两个用来交互LSA摘要信息

ospf头部报文格式 ospf 报文格式_ospf头部报文格式_03

ospf头部报文格式 ospf 报文格式_字段_04

双方在交互主从信息时会都认为自己时主,但是在比较router-id之后,败的那一方会自动认输,身份改成从,并且序列号会改成和主一样

主从选定后双方开始交互LSA摘要,通过LSA类型,id,宣告者来确定这条LSA

ospf头部报文格式 ospf 报文格式_网络_05

3.LSR

向对方请求对方有,但自己没有的LSA信息,会用过发送摘要的形式请求

ospf头部报文格式 ospf 报文格式_字段_06

4.LSU

LSU里面的LSA信息是详细的

里面比LSR多了flag字段和type字段,flags字段标识了此接口的身份,是否是虚链路,是否是ABR,是否是ASBR

type字段有所属网段,网段掩码,属于哪类LSA等等

ospf头部报文格式 ospf 报文格式_网络_07

5.LSACK

对LSU的确认

LSACK和LSR有点相似,里面也是用LSA摘要的方式来表示

ospf头部报文格式 ospf 报文格式_组播_08

ospf的邻居实际上在hello包交互后就建立完成了,后面实际上是和DR,BDR建立邻接关系

不同的网络类型,报文交互的方式也不同

p2p的报文全是通过组播224.0.0.5发送,因为p2p中只有两个人,所以也不用选举DR,BDR

boardcast的hello包是通过组播224.0.0.5发送

DD和LSR是通过单播,如果用组播,其他路由器也会收到影响链路资源,

LSU和LSACK是通过组播224.0.0.5和224.0.0.6发送
224.0.0.6是DRother发给DR或BDR的,224.0.0.5是DR和BDR发给DRother的

虚连接则是全部通过单播的方式交互

不同类型网络的生存和死亡时间也不同

虚连接的生存死亡时间也是10和40

ospf头部报文格式 ospf 报文格式_链路_09

ospf头部报文格式 ospf 报文格式_链路_10