OSPFv3协议

OSPFv3协议

ospf协议主要为ipv6里,内部路由器之间的内部网关协议,主要用于内部各路由器之间同步路由信息和生成最优路径。
OSPFv3分为5种报文:

  • Hello报文: 建立和维护邻接关系,周期性的在使能了OSPF的接口上发送。报文内容包括一些定时器的数值、DR、BDR以及自己已知的邻居。
  • DD报文
  • LSR报文
  • LSU报文
  • LSAck报文

报文头格式

OSPFv3报文头格式

字段长度含义
Version1字节版本,OSPF的版本号。对于OSPFv3来说,其值为3。
Type1字节类型,OSPFv3报文的类型,有下面几种类型:1:Hello报文;2:DD报文;3:LSR报文;4:LSU报文;5:LSAck报文。
Packet length2字节OSPFv3报文的总长度,包括报文头在内,单位为字节。
Router ID4字节始发此包的路由器的Router ID。
Area ID4字节发送该报文的所属区域。
Checksum2字节使用IPv6标准16位校验和。校验内容包括前导的IPv6伪头和OSPF协议包头。伪头中的Upper-Layer Packet Length字段值等于OSPF包头中的Packet length字段值。如果包长度不是16位的整数倍,则用0填充后进行计算。计算校验和时校验和字段本身设置为0。
Instance ID1字节缺省值为0。允许在一个链路上运行多个OSPFv3的实例。每个实例应该具有唯一的Instance ID。Instance ID只在本地链路上有意义。如果接收到的OSPF包的Instance ID和本接口的Instance ID不同,则丢弃这个包。
01字节保留字段,必须填0。

Hello

Hello报文是最常用的一种报文,其作用为建立和维护邻接关系,周期性的在使能了OSPF的接口上发送。报文内容包括一些定时器的数值、DR、BDR以及自己已知的邻居。
Hello报文格式

字段长度含义
Interface ID4字节唯一标识了建立连接的(发送Hello报文的)接口。
Rtr Pri1字节DR优先级。默认为1。如果设置为0,则路由器不能参与DR或BDR的选举。
Options3字节可选项:E:允许Flood AS-External-LSAs。MC:转发IP组播报文 N/P:处理Type-7 LSAs。DC:处理按需链路。 N — Type-7 LSA 处理相关。R — 为0时, 表明产生此条LSA的路由器状态down掉了。
HelloInterval2字节发送Hello报文的时间间隔。
RouterDeadInterval2字节失效时间。如果在此时间内未收到邻居发来的Hello报文,则认为邻居失效。
Designated Router ID4字节DR的接口地址。
Backup Designated Router ID4字节BDR的接口地址。
Neighbor ID4字节邻居,以Router ID标识。(注意为多个)

DD报文格式

两台路由器在邻接关系初始化时,用DD报文(Database Description Packet)来描述自己的LSDB,进行数据库的同步。报文内容包括LSDB中每一条LSA的Header(LSA的Header可以唯一标识一条LSA)。LSA Header只占一条LSA的整个数据量的一小部分,这样可以减少路由器之间的协议报文流量,对端路由器根据LSA Header就可以判断出是否已有这条LSA。在两台路由器交换DD报文的过程中,一台为Master,另一台为Slave。由Master规定起始序列号,每发送一个DD报文序列号加1,Slave方使用Master的序列号作为确认。
DD报文格式

字段长度含义
Options3字节可选项:E:允许Flood AS-External-LSAs;MC:转发IP组播报文;N/P:处理Type-7 LSAs;DC:处理按需链路。
Interface MTU2字节在不分片的情况下,此接口最大可发出的IP报文长度。
I1比特当发送连续多个DD报文时,如果这是第一个DD报文,则置为1,否则置为0。
M (More)1比特当发送连续多个DD报文时,如果这是最后一个DD报文,则置为0。否则置为1,表示后面还有其他的DD报文。
M/S (Master/Slave)1比特当两台OSPF路由器交换DD报文时,首先需要确定双方的主从关系,Router ID大的一方会成为Master。当值为1时表示发送方为Master。
DD sequence number32比特DD报文序列号。主从双方利用序列号来保证DD报文传输的可靠性和完整性。
LSA Header可变该DD报文中所包含的LSA的头部信息。

LSR报文

两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地的LSDB所缺少的和哪些LSA是已经失效的,这时需要发送LSR报文(Link State Request Packet)向对方请求所需的LSA。内容包括所需要的LSA的摘要。LSR报文格式如下图所示,其中LS type、Link State ID和Advertising Router可以唯一标识出一个LSA,当两个LSA一样时,需要根据LSA中的LS sequence number、LS checksum和LS age来判断出所需要LSA的新旧。

LSR报文格式

字段长度含义
LS type16比特LSA的类型号。
Link State ID32比特根据LSA中的LS Type和LSA description在路由域中描述一个LSA。
Advertising Router32比特产生此LSA的路由器的Router ID。

LSU报文格式

用来向对端Router发送其所需要的LSA或者泛洪自己更新的LSA,内容是多条LSA(全部内容)的集合。LSU报文(Link State Update Packet)在支持组播和广播的链路上是以组播形式将LSA泛洪出去。为了实现Flooding的可靠性传输,需要LSAck报文对其进行确认。对没有收到确认报文的LSA进行重传,重传的LSA是直接发送到邻居的。
在这里插入图片描述

字段长度含义
# LSAs32比特LSA的数量。

OSPFv3常用的LSA共有7种,分别为:

  • Router-LSA(Type1)
  • Network-LSA(Type2)
  • Inter-Area-Prefix-LSA(Type3)
  • Inter-Area-Router-LSA(Type4)
  • AS-external-LSA(Type5)
  • Link-LSA(Type8)
  • Intra-Area-Prefix-LSA(Type9)

图1 LSA头部结构
在这里插入图片描述
在这里插入图片描述

Router-LSA

Router-LSA(Type1):每个路由器都会产生,描述了路由器的链路状态和花费,在所属的区域内传播。
在这里插入图片描述
在这里插入图片描述

Network-LSA

Network-LSA(Type2):由广播网或NBMA网络中的DR产生,Network-LSA中记录了这一网络上所有路由器的Router ID,描述本网段的链路状态,在所属的区域内传播。

在这里插入图片描述

字段长度含义
Options24比特参见Router-LSA的字段解释。
Attached Router32比特连接在同一个网络上的所有路由器的Router ID,也包括DR的Router ID。

Inter-Area-Prefix-LSA

IPv6的这些LSA与IPv4的OSPFv2中的type 3 summary-LSAs等同。由区域边界路由器始发,这些LSA描述了到其他区域的IPv6地址前缀。每个IPv6地址前缀单独发一个Inter-Area-Prefix-LSA。

在这里插入图片描述
在这里插入图片描述
缺省路由的前缀长度为0。

Inter-Area-Router-LSA

IPv6的这些LSA与IPv4的OSPFv2中的Type 4 summary-LSAs等同。由区域边界路由器始发,这些LSA描述了到其他区域的IPv6地址前缀。每个LSA描述了到某台路由器的一条路由。

在这里插入图片描述

FieldLengthDescription
Options24比特Options字段描述的不是源路由器的能力,而是目的路由器所支持的能力,所以此字段值应该等于目的路由器的router-LSA的Options字段值。
metric24比特到目的地址的开销值。
Destination Router ID32比特LSA中描述的目的路由器的Router ID。

AS-External-LSA

每个AS-external-LSA描述到达自治系统外部的一个前缀的路径。
在这里插入图片描述
在这里插入图片描述

Link-LSA

每个连接的链路产生一个Link-LSA。

作用:

向该链路上其他路由器通知本地的Link-Local地址,即到本地的下一跳地址;
收集本路由器在该链路上配置的所有的IPv6前缀,并通知该链路上其他路由器;
向Network-LSA提供选项信息。收集该链路上所有的Link-LSA,与操作得到的该链路上Network-LSA中选项信息。

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

Intra-Area-Prefix-LSA

Intra-Area-Prefix-LSA携带区域内IPv6 Prefix信息。

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

OSPFv3 LSAck

用来对接收到的LSU报文进行确认。内容是需要确认的LSA的Header(一个LSAck报文可对多个LSA进行确认)。LSAck(Link State Acknowledgment Packet)报文根据不同的链路以单播或组播的形式发送。

在这里插入图片描述

字段长度含义
LSAs Headers可变通过LSA的头部信息确认收到该LSA。

重要参考

重庆网管博客
IPv6 OSPFv3协议详解

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值