(1)报文头部
- OSPFv3的报文头部移除了所有的认证字段,直接使用IPv6的认证及安全处理,不再需要其自身来完成认证。
- 新增了Instance ID字段,缺省值为0,允许在一个链路上运行多个OSPFv3的实例,每个实例具有唯一的Instance ID,Instance ID只在本地链路上有意义。
(2)Hello报文
- 删除了掩码字段
- 新增了Interface ID字段,唯一标识了建立连接的接口,就是发送Hello报文的接口
- Option位进行了扩充,增加了R位和V6位
- R位:指明始发路由器是否具备转发能力,R位置0的时候,表示该始发节点的路由信息将不参与路由计算
- V6位:如果V6位置0,则表示该路由器或链路不会参与IPv6路由计算
- AT:表示是否支持OSPFv3认证。若AT=1,则在OSPFv3报文后增加认证尾部字段,包含认证信息。
- DC:表示是否具有支持按需链路的能
- NP:表示是否为NSSA区域
- MC:表示是否支持转发组播数据报文
- E:表示是否支持外部路由
(3)LSA头部
- 删除了Options字段
- 扩充了LS Type(链路状态类型)字段
- U位:描述了路由器收到一个类型未知的LSA时如何处理,
- 0:表示把类型未知的LSA当成具有链路本地范围的LSA一样处理
- 1:表示按照S2/S1位标识的泛洪范围来处理
- S2/S1位:共同标识LSA的泛洪区域
- 00:表示LAS只在产生该LSA的本地链路上泛洪
- 01:表示LSA的泛洪范围是产生该LSA的路由器所在区域
- 10:表示LSA在整个AS内泛洪
- 11:保留
- LSA Function Code:已知就按照已知类型转发,如果未知就根据S2/S1来进行转发
- U位:描述了路由器收到一个类型未知的LSA时如何处理,
(4)一类LSA
- 设备会为每个运行OSPFv3接口所在的区域产生一个LSA,描述了设备的链路状态(Link Type、Interface ID、Neighbor Interface ID以及Neighbor Router ID)和开销,在所属的区域内传播
- 重要字段:
- Flag位:
- W:OSPFv3中新增,用于组播路由
- V:置1表示该路由器是虚连接的一端
- E:置1表示该路由器是ASBR
- B:置1表示该路由器是ABR
- Link Type:链路类型
- 类型为1表示P2P网络
- 类型为2表示Transit网络
- 类型为3表示保留
- 类型为4表示虚连接
- Flag位:
(5)三类LSA
- 通过PrefixLength、PrefixOptions和Address Prefix三个字段来描述路由
- 重要字段:
- PrefixOptions:前缀特性
- P位:传播位,置1表示一个NSSA区域的前缀需要被ABR传播出去
- MC位:组播位,置1表示这个前缀应该纳入组播计算中
- LA位:本地地址位,置1表示这个前缀是路由器的一个接口地址
- NU位:非单播位,置1表示这个前缀不会纳入IPv6单播路由计算中
- PrefixOptions:前缀特性
(6)五类LSA
- 重要字段:
- E:1bit,外部路由的Metric类型。
- 如果设置为1,表示此为2类外部路由,其Metric不随着路由的传递而增长。
- 如果设置为0,表示此为1类外部路由,其Metric随着路由的传递而增长。
- F:1bit,如果设置为1,则表示后面的Forwarding Address可选字段存在。
- T:1bit,如果设置为1,则表示后面的External Route Tag可选字段存在。
- E:1bit,外部路由的Metric类型。
(7)八类LSA
- 每个设备都会为每个链路产生一个Link-LSA,仅在始发链路内泛洪
- 作用:
- 向该链路上其他路由器通告本接口的链路本地地址
- 向该链路上其他路由器通告本接口的IPv6前缀列表
- 向该链路上其他路由器通告本链路始发的二类LSA中设置的可选项
(8)九类LSA
- 九类LSA描述的是网段信息,只在所属的区域内传播,它需要依赖于拓扑信息,才能实现OSPFv3的路由计算,可以分为两种:
- ①每台设备都会产生九类LSA,描述和一类LSA相关联的IPv6前缀地址
- ②DR产生的九类LSA,描述和二类LSA相关联的IPv6前缀地址
- 重要字段:
- Referenced LS type:4Byte,表明这个LSA是参考一个Router-LSA,还是一个Network-LSA。
- 该字段值为1表示参考一个Router-LSA
- 该字段值为2表示参考一个Network-LSA
- Referenced Link State ID:4Byte。
- 当这个LSA是参考一个Router-LSA时,该字段值为0
- 当这个LSA是参考一个Network-LSA时,该字段值为该链路的DR的InterfaceID
- Referenced Advertising Router:4Byte。
- 当这个LSA是参考一个Router-LSA时,该字段为这个路由器的RouterID
- 当这个LSA是参考一个Network-LSA时,该字段为该链路的DR的RouterID
- Referenced LS type:4Byte,表明这个LSA是参考一个Router-LSA,还是一个Network-LSA。
ISIS
(1)为了支持IPv6路由的处理计算,ISIS新增了两个TLV和一个新的NLPID
- 236号TLV:IPv6 Reachability TLV,定义了路由信息的前缀、度量值等信息来说明当前网络的可达性。
- U:Up/Down位,标识这个前缀是否是从高Level通告下来的,用来防环
- X:标识这个前缀是否是从其他路由协议中引入过来的,用于区分内部路由和外部路由
- S:子TLV标识位
- 232号TLV:IPv6 IP Interface Address TLV,相当于IPv4中的132号TLV(IP Interface Address TLV),只是将原来的32比特的IPv4地址修改为128比特的IPv6地址
- NLPID:表示网络层协议报文的一个8比特的字段值,IPv6的NLPID值是142,如果ISIS支持IPv6,那么向外发布IPv6的路由信息时就必须携带NLPID值。该字段通过TLV 129来携带。
(2)ISIS多拓扑MT ID,增加了四种新的TLV:222、229、235、237
- ISIS MT是指在一个ISIS自治域内运行多个独立的IP拓扑。例如IPv4拓扑和IPv6拓扑,而不是将它们视为一个集成的单一拓扑。
- 这有利于ISIS在路由计算中根据实际组网情况来单独考虑IPv4和IPv6网络。根据链路所支持的IP协议类型,不同拓扑运行各自的SPF计算,实现网络的互相屏蔽。
- 如图,数值表示对应链路上的开销值,Router A、Router C和Router D支持IPv4和IPv6双栈,Router B只支持IPv4协议,不支持IPv6协议。
如果Router A不支持ISIS MT,进行SPF计算时只考虑单一的整体拓扑,则Router A到Router C的最短路径是Router A--Router B--Router C,但是由于Router B不支持IPv6,所以Router A发送的IPv6报文将无法通过Router B到达Router C。
如果在Router A上使能了ISIS MT,此时Router A在进行SPF计算时会根据不同的拓普进行计算,当Router A需要发送IPv6报文给Router C时,Router A只考虑IPv6链路来确定IPv6报文转发路径,则Router A--Router D--Router C路径被选为从Router A到Router C的IPv6最短路径。IPv6报文被正确转发。
BGP4
传统的BGP只能管理IPv4单播的路由信息,对于使用其他的网络层协议的应用,在跨AS传递的时候就会受到一定的限制,因此就需要BGP的多协议扩展MP-BGP,MP-BGP就是为了提供对多种网络层协议的支持,对BGP-4进行的一个扩展,目前MP-BGP使用扩展属性和地址簇来实现对IPv6、组播和VPN相关内容的支持,BGP协议原有的报文机制和路由机制并没有改变。
MP-BGP对IPv6单播网络的支持特性称为BGP4 ,对IPv4的组播网络的支持特性称为MBGP,MP-BGP为IPv6单播路由和IPv4组播网络分别建立独立的拓扑结构,并且将其路由信息存储在独立的路由表中,保持单播IPv4网络、单播IPv6网络和组播网络之间路由信息的相互隔离,也就实现了用单独的路由策略来维护好各自网络的路由。
(1)MP-BGP拓展属性:
在BGP使用的报文中,与IPv4相关的三处信息都由Update报文携带,这三处信息分别是NLRI字段、Next-Hop属性、Aggregator属性。为实现对多种网络层协议的支持,BGP需要将网络层协议的信息反映到NLRI以及Next-Hop,因此MP-BGP引入了两个新的可选非过渡路径的属性。
- 1)MP-REACH-NLRI:多协议可达NLRI,用于发布可达路由以及下一跳信息
- 2)MP-UNREACH-NLRI:多协议不可达NLRI,用于撤销不可达路由信息
(2)地址簇
MP-BGP采用地址簇(Address Family)来区分不同的网络层协议,OPEN报文中的Optional Parameters字段是一个可选参数值,用于BGP验证或多协议扩展等功能的协商,并且携带相应的地址簇参数