第十四章 IPV6路由

14.1 前言

IPV6路由的配置可以是静态路由配置,动态路由配置。OSPFv3、ISIS、BGP路由协议

14.2 OSPFv3

14.2.1 概念

  1. Router ID:32bit的点分十进制表示,用于标识OSPF域内唯一的设备。如果Router ID没有配置,则OSPFv3进程不会运行。
  2. OPSFv3基于链路运行和拓扑计算:
    1. 不要求两端的IP地址在同一个网段,邻居建立通过Hello报文,源地址为链路本地地址。
    2. 要求两端的设备在同一个链路上。

14.2.2 多实例

  1. 同一个物理接口可以属于不相同的OSPFv3进程的不同实例,使得OSPFv3计算拓扑的时后,可以根据实例进行,可以通过该方式使得链路资源可以得到共享,节约带宽资源。

14.2.3 链路本地地址的使用

  1. OPSFV3的报文源IPv6地址使用的是链路地址进行通信,作为路由的下一跳地址。
  2. 通过链路本地地址实现LSA的同步。
  3. OSPFv3的目的地址FF02::5(代表所有OSPFv3路由器)、FF02::6(代表DR和BDR)

14.3 OSPFv3报文变化

  1. OSPFV3中版本字段取值为3
  2. 取消了认证和认证数据字段:通过IPv6的认证和安全机制实现对OSPFv3报文的保护。也可以通过自身的机制完成报文的认证。
  3. 增加了实例ID字段:同一个链路不同接口,可以属于不同的OSPFv3的实例,相同的实例之间可以建立邻居关系,收到不同实例的报文丢弃。

14.3.1 Hello报文

两个变化:

  1. 取消了掩码字段
  2. 新增了接口ID字段:通过本地接口ID和邻居的接口ID以及两者Router ID来描述拓扑信息,实现与拓扑计算与IP地址分离。
  3. Option字段:扩展到了3Byte,其中新增了一些bit位:
    1. AT:表示是否支持OSPFv3认证。
    2. R:指明始发路由器是否具备转发能力。
    3. V6:表示是否参与IPv6路由计算。

14.4 OSPFv3 LSA内容

14.4.1 LSA的头部变化

  1. 取消了Option字段:在LSA的Data内按照需求进行携带。
  2. 扩展了LS Type字段:扩展到2Byte,新增了一些功能bit位在其中
    1. Ubit位:表示设备对未知LSA的处理方式
      1. Ubit位置位0,把此LSA当作具有链路本地泛洪范围来对待,从而只能泛洪到本地链路上。
      2. Ubit位置位1,表示设备按照已知LSA的处理方式进行处理(按照S2/S1bit位规定区域进行泛洪)
        1. S2/S1 取值为00,表示该LSA的泛洪区域是始发链路范围
        2. S2/S1 取值为01,表示该LSA的泛洪范围是区域内泛洪
        3. S2/S1 取值为11,表示该LSA的泛洪范围是AS内泛洪
    2. LSA的Function code:表示LSA的类型
  3. LS ID:在OSPFV3中不在包含IP地址信息,只是32位无符号整数。与LS Type、Advertise Router 一起唯一标识一个LSA。

14.4.2 Router LSA(1类)

OSPV3中,Router LSA不在携带IP地址信息,所有设备会产生一条1类LSA,LSA的主要字段:

Bit位:W支持组播;V产生该LSA的路由器是Vlink端点;E产生该LSA的路由器是一个ASBR;B产生该LSA的路由器是一个ABR

Option字段:与Hello报文头部中Option字段相同。

Link type字段:移除了Stubnet类型的link 类型,剩余 P2P、Transnet、Vlink类型。

接口ID字段:相比于OSPFv2,用于替换IP地址相关信息,P2P link类型和Transnet的link类型中的IP地址被修改为接口ID

邻居的接口ID:连接邻居的链路中邻居的接口ID

邻居的Router ID:邻居Router ID

开销值:接口的OSPF开销。

14.4.3 Network LSA(2类)

  1. 删除了掩码字段,仅通过Router ID标识该链路中连接的邻居状态
  2. 格式:
    1. Option字段:与1类LSA相同
    2. 连接的邻居字段:邻居的Router ID

14.4.4 Link LSA(8类)

  1. 作用:仅在本链路泛洪
    1. 向该链路上其他路由器通告本接口的链路本地地址。
    2. 向该链路上其他路由器通告本接口的IPv6前缀列表。
    3. 向该链路上其他路由器通告本链路始发的Network-LSA中设置的可选项。
  2. 字段:
    1. 路由器优先级:和Hello报文中相同
    2. Option字段:与2类LSA中的相同
    3. 链路本地地址:通告本链路的链路本地地址,仅该LSA中携带。
    4. 前缀三元组:Length、前缀Option、前缀(与3类LSA中的相同)
    5. 前缀Option字段:
      1. P位:传播位,置1,该前缀需要进行7转5
      2. MC位:置位1,该前缀是一个组播路由前缀
      3. LA位:本地地址位,置1,则该前缀是路由的一个接口地址
      4. NU位:非单播为,置1,表示该前缀不是一个IPv6单播前缀,不进行IPv6路由计算。

14.4.5 Intra-area-prefix LSA(9类)

作用:

  1. 用于描述区域内的路由信息,与OSPFV2相比,1类和2类LSA中的路由信息都通过9类进行描述,因此9类LSA需要使用参考的LSA的三元组
  2. 重点:
  1. 参考的LS type:参考的LSA的类型
  2. 参考的LS ID:参考的LSA的LS ID
  3. 参考的 通告者Router ID:参考的的LSA的产生者的Router ID
  1. 两个类型:
    1. 依附于1类LSA,用于描述OSPFV2的1类LSA中需要描述的路由信息
    2. 依附于2类LSA,用于描述OSPFV2的2类LSA中需要描述的网段的路由信息。
    3. 一条9类LSA可以携带多条路由信息,但是如果依附的LSA不同,则不同的路由信息需要使用不同的9类携带。

14.4.5 Inter-area-prefix(3类)

由ABR产生,区域内泛洪,用于区域间路由计算

相比OSPFV2的变化:

  1. LSA Data中删除了掩码,OSPFv2通过LSA的头部中的LSID表示域间网络前缀的,与LSA中的掩码组成路由条目
  2. OSPFV3中LSA的头部中的LSID都是无符号的32帧数,同时删除了掩码,因此不携带路由信息。
  3. 统一通过LSA Data中前缀三元组来表示域间的网络前缀(前缀长度、前缀Option、前缀)

14.4.5 AS-External LSA

作用:用于描述外部路由,泛洪范围是AS内(LS类型 U+S2+S1+LSA的类型)

主要字段:

Bit位:E表示外部路由的类型,取值0表示1类外部路由,取值1表示2类外部路由。1类由于2类(无论cost值如何);F置1表示该外部LSA携带Forwarding address 地址;T置1表示该外部LSA携带External Route Tag(外部路由标记),置0,则不携带该字段。

开销值:外部路由的开销

前缀三元组:前缀长度、前缀Option、前缀长度

参考的LS type:表示该路由参考的LSA的类型

  1. 值为0,不参考LSA
  2. 值为1,参考一类LSA
  3. 值为2,参考2类LSA

转发地址:该字段是可选字段,需要Fbit置1才会携带

External Route Tag字段:该字段是可选字段,需要Tbit置1才会携带。

参考的LS ID:表示该LSA参考其他的LSA的LS ID

14.4.6 Inter area Router LSA(4类LSA)

作用:用于在其他区域描述ASBR所在的位置(描述ASBR的Router ID)

与OSPFv2相比的变化:

  1. 删除了掩码字段
  2. LSID不在描述ASBR的Router ID,另添加Destination Router ID(目的Router ID字段)字段用于描述ASBR的Router ID。
  3. 携带开销(没有变化):描述从ABR到达ASBR的开销。
  4. LSA的Option字段

14.5 ISIS For IPv6

14.5.1 ISIS IPv4中使用的TLV

Hello报文中:窄度量

  1. IP interface address(IP接口地址TLV,132),携带了本链路上的接口的IP地址
  2. Protocol supported(协议支持TLV,129号):包含了NLPID,支持IPV4的NLPID
  3. Multi topology(多拓扑TLV,229号):其中值包含了支持的地址簇,支持IPV4单播

LSP报文中:窄度量

  1. Protocol supported(协议支持TLV,129号)支持IPV4的NLPID
  2. IS Reachablity(ISIS 可达信息,描述拓扑信息,编号为2):其中包含邻居的System ID
  3. IP interface address(IP接口地址TLV,132),与Hello报文不同的地方是携带了设备所有的接口IP地址。
  4. IP internal Reachablity(IP 域内可达信息,编号128号),用于描述域内的路由信息。不支持路由标记
  5. IP External Reachability(IP 域外可达信息,编号130号),用于描述域外的路由信息。不支持路由标记

Hello报文中:宽度量值

  1. Extended IS Reachablity(扩展的ISIS 可达信息,编号22):其中包含邻居的System ID和可以携带子TLV
  2. Extended IP Reachability(扩展的IP可达信息,编号135):用于描述域内和域外的路由信息,可以携带子TLV。可以支持路由标记。

LSP报文中:宽度量

  1. Extended IS Reachablity(扩展的ISIS 可达信息,编号22):其中包含邻居的System ID和可以携带子TLV
  2. Extended IP Reachability(扩展的IP可达信息,编号135):用于描述域内和域外的路由信息,可以携带子TLV。可以支持路由标记。

14.5.2 ISIS For IPv6

Hello报文中:

  1. IPV6 interface address(IPv6接口地址TLV,编号232),用于传递本地的接口IPv6地址,在Hello报文中仅传递本链路的接口链路本地地址。
  2. Protocol supported(协议支持TLV,129号),新增支持IPv6NLPID

LSP报文中:

  1. IPV6 interface address(IPv6接口地址TLV,编号232),用于传递本地的接口IPv6地址,在LSP报文中传递的本节点的所有IPv6单播地址(非链路本地地址)。
  2. IPv6 Reachability (IPv6可达信息TLV,编号236),用于传递本端IPV6的前缀信息。

总结:新增232号TLV支持发布地址、新增236号TLV支持发布IPv6路由条目、在129号TLV中新增 NLPID支持IPv6

14.5.3 多拓扑技术

Ipv4计算一个拓扑,ipv6计算一个拓扑,分开计算,互不干扰。

新增TLV支持多拓扑:

  1. 多拓扑TLV(229号,描述支持的拓扑类型ipv4和ipv6)
  2. 多拓扑中间系统TLV(222号,描述ipv6拓扑邻居信息)、
  3. 多拓扑可达的IPv4前缀TLV()
  4. 多拓扑可达的IPv6前缀TLV(237号TLV,描述路由信息)

参考命令:

ipv6 enable topology ipv6 //IPv4与IPv6拓扑分离计算,形成多拓扑(MT)

ipv6 enable topology standard //IPv6的路由计算使用IPv4的拓扑(单拓扑 ST)

14.6 BGP4+

BGP通过MP-BGP支持IPV6路由传递,这种特性叫做BGP4+,新增两个路径属性:

  1. MP-Reach-NLRI:用于IPv6路由的通告和路由下一跳的通告
    1. AFI:地址簇取值为2,表示IPv6地址簇;
    2. SAFI:子地址簇取值为1,表示IPV6单播地址簇,为2表示IPv6组播地址簇。
    3. 长度字段:取值16B,则下一跳地址为全球单播地址,如果取值32B,则下一跳地址是全球单播地址+链路本地地址。
    4. 下一跳地址:同(c)
    5. Ipv6前缀信息和掩码(路由条目)
  2. MP-UnReach-NLRI:用于撤销IPv6路由通告
    1. 携带AFI和SAFI和MP-Reach-NLRI中取值相同
    2. Withdraw字段:携带需要撤销的路由前缀和掩码
  3. Open报文需要进行IPv6地址簇协商
    1. 其中AFI和SAFI与NLRI中的取值相同。