Datacom-HCIE-10 IPv6路由 静态路由 OSPFv3 IS-IS BGP
随着万物互联时代的到来,IPv4地址空间不足,IPv6取代IPv4势在必行。那么如何实现IPv6网络中各个节点之间的可达性呢?与IPv4网络相同,IPv6网络同样支持静态路由和动态路由协议。
IPv6静态路由与IPv4静态路由在配置方式上颇为相似。为了实现对IPv6网络的支持,IETF制定了OSPFv3,同时对IS-IS、BGP做了扩展。
本文将介绍IPv6静态路由的概念及配置,还会介绍常见的IPv6动态路由协议,包括:OSPFv3,IS-IS(IPv6),以及BGP4+。
IPv6静态路由
IPv6静态路由
IPv6静态路由与IPv4静态路由类似,也需要管理员手工配置,适合于一些结构比较简单的IPv6网络。
在创建IPv6静态路由时,可以同时指定出接口和下一跳,或者只指定出接口或只指定下一跳。
对于点到点接口:指定出接口。
对于广播类型接口:指定下一跳。 IPv6静态路由负载分担和备份:
在创建相同目的地址的多条IPv6静态路由时,如果指定相同优先级,则可实现负载分担,如果指定不同优先级,则可实现路由备份。
IPv6静态路由的基础配置命令
- 在公网上配置IPv6静态路由。
[Huawei] ipv6 route-static dest-ipv6-address prefix-length { interface-type interface-number [ nexthop-ipv6-address ]
| nexthop-ipv6-address | vpn-instance vpn-destination-name nexthop-ipv6-address }[ preference preference][ permanent | inherit-cost ] [ description text ]
- 在VPN实例下配置IPv6静态路由。
[Huawei] ipv6 route-static vpn-instance vpn-instance-name dest-ipv6-address prefix-length { [ interface-type interface-number [ nexthop-ipv6-address ] ] | nexthop-ipv6-address [ public ] | vpn-instance vpn-destination-name nexthop-ipv6-address } [ preference preference ] [permanent | inherit-cost ] [ description text ]
注意事项:
静态路由如果不配置优先级,默认优先级为60。
如果将目的地址与前缀长度都配置为全0( :: 0),则表示配置的是缺省路由( :: /0)。
undo命令中配置参数permanent时,只能取消IPv6静态路由永久发布,不能删除IPv6静态路由。
IPv6静态路由配置举例
场景描述:
某公司网络部署了IPv6网络进行业务测试,在部署初期,通过静态路由实现IPv6网络的互联互通。
实现R1和R2的Loopback0接口地址互通。
1、配置各路由器接口的IPv6地址。(略)
2、配置IPv6静态路由。
[R1] ipv6 route-static 2001:DB8:2345:2::2 128 2001:DB8:2345:12::2
[R2] ipv6 route-static 2001:DB8:2345:1::1 128 2001:DB8:2345:12::1
3、测试IPv6网络连通性
[R1] ping ipv6 2001:DB8:2345:2::2
PING 2001:DB8:2345:2::2 : 56 data bytes, press CTRL_C to break
Reply from 2001:DB8:2345:2::2
bytes=56 Sequence=1 hop limit=64 time = 90 ms
Reply from 2001:DB8:2345:2::2
bytes=56 Sequence=2 hop limit=64 time = 20 ms
Reply from 2001:DB8:2345:2::2
bytes=56 Sequence=3 hop limit=64 time = 20 ms
Reply from 2001:DB8:2345:2::2
bytes=56 Sequence=4 hop limit=64 time = 20 ms
Reply from 2001:DB8:2345:2::2
bytes=56 Sequence=5 hop limit=64 time = 20 ms
--- 2001:DB8:2345:2::2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 20/34/90 ms
OSPFv3原理与配置
OSPFv3的基本工作原理
概述
OSPFv3概述
OSPF是IETF定义的一种基于链路状态的内部网关路由协议。目前针对IPv4协议使用的是OSPFVersion 2(OSPFv2),针对IPv6协议使用OSPF Version 3(OSPFv3)。
OSPFv3的主要目的是开发一种独立于任何具体网络层的路由协议。为实现这一目的,OSPFv3的内部路由器信息被重新进行了设计。
OSPFv3与OSPFv2的相同点
OSPF的基本运行机制没有改变,包括:
基本概念:
区域划分及路由器类型
路由计算影响参数:优先级、度量值
支持的网络类型:Broadcast(广播类型)、NBMA、P2P(点到点类型)、P2MP(点到多点类型)
报文类型:Hello报文、DD报文、LSR报文、LSU报文和LSAck报文
工作原理:
邻居关系的建立及邻居状态的转换
DR与BDR的选举
LSA泛洪机制
路由计算过程
OSPFv3拓扑和路由器类型
OSPFv3的基本工作原理与OSPFv2相似
OSPFv3与OSPFv2的不同点
OSPFv3基于链路运行以及拓扑计算,而不再是网段。
OSPFv3支持一个链路上多个实例。
OSPFv3报文和LSA中去掉了IP地址的意义,且重构了报文格式和LSA格式。
OSPFv3报文和Router LSA/Network LSA中不包含IP地址。
OSPFv3的LSA中定义了LSA的泛洪范围。
OSPFv3中创建了新的LSA承载IPv6地址和前缀。
OSPFv3邻居不再由IP地址标识,只由Router ID标识。
工作原理
唯一邻居标识:Router ID
OSPFv3通过Router ID来标识网络设备。
Router ID是一个OSPFv3设备在自治系统中的唯一标识。如果用户没有指定Router ID,则OSPFv3进程无法运行。
设置Router ID时,必须保证自治系统中任意两台设备的Router ID都不相同。
Router ID长度32 bit,本地标识符,与IPv6地址无关,用点分十进制表示法来表示。
OSPFv3基于链路运行
OSPFv3是基于链路运行的,设备只要在同一链路,就可以建立邻居关系。
链路支持多实例
一个OSPFv3物理接口可以和多个实例绑定,并用不同的实例标识(Instance ID)区分,即OSPFv3的单个链路支持运行多个OSPFv3实例。
这些运行在同一条物理链路上的多个OSPFv3实例,分别与链路对端设备建立邻居及发送报文,且互不干扰,这样可以充分共享同一链路资源。
OSPFv3对链路本地地址的使用
OSPFv3使用链路本地(FE80::/10)地址作为发送报文的源地址和路由的下一跳地址。
使用链路本地地址来维持邻居关系,同步LSA数据库。
优势:
不需要配置IPv6全球单播地址,就可以得到OSPFv3拓扑,实现拓扑与地址分离。
OSPFv3报文不会被转发到始发链路范围之外,减少了报文不必要的泛洪,节省了带宽
报文
OSPFv3报文
OSPFv3与OSPFv2有相同类型的报文:
Hello报文、DD报文、LSR报文、LSU报文和LSAck报文。
OSPFv3与OSPFv2使用相同的协议号89。
OSPFv2:IPv4报文头部中的协议号(Protocol)为89。
OSPFv3:IPv6报文头部中的下一报头号(Next Header)为89。
OSPFv3与OSPFv2类似,使用组播地址作为OSPF报文目的地址。
OSPFv2使用IPv4组播地址:
OSPF IGP Routers:224.0.0.5;OSPF IGP DR :224.0.0.6。
OSPFv3使用IPv6组播地址:
OSPF IGP Routers:FF02::5;OSPF IGP DR:FF02::6。
OSPFv3报文头部
OSPFv2报文头部:
OSPFv3报文头部:
与OSPFv2一样,OSPFv3的五种报文都有同样的报文头,只是报文中的字段有些不同。
变化点:
Instance ID:1 Byte,缺省值为0。允许在一个链路上运行多个OSPFv3的实例。每个实例具有唯一的Instance ID。Instance ID只在本地链路上有意义。
OSPFv3报文头部移除了所有的认证字段:OSPFv3的认证可以使用IPv6的认证及安全处理,也可以通过OSPFv3自身机制来完成报文认证
Hello报文
OSPFv2的Hello报文格式:
OSPFv3的Hello报文格式:
与OSPFv2的Hello报文相比,OSPFv3的Hello报文去掉了Network Mask字段,增加了Interface ID字段,用来标识发送该Hello报文的接口ID。
变化点:
Interface ID:4 Byte,唯一标识了建立连接的(发送Hello报文的)接口。
Options:扩展到3 Byte,可选项。与OSPFv2相比,增加了AT位、R位和V6位。
AT:表示是否支持OSPFv3认证。
R:指明始发路由器是否具备转发能力。
V6:表示是否参与IPv6路由计算。
LSA
OSPFv3的LSA头部
OSPFv2
OSPFv3
与OSPFv2的LSA头部相比,OSPFv3的LSA头部去掉了Options字段,并扩充了LS Type字段。OSPFv3同样使用LS Type、Link State ID和Advertising Router三元组唯一地标识一个LSA。
变化点:
LS Type:扩展到2 Byte,Link State Type,链路状态类型。
U:1 bit,标识对未知LSA的处理方法。
S2/S1:2 bit,标识LSA的泛洪范围。
LSA Function Code:13 bit,LSA功能代码,标识了LSA的类型。
OSPFv3的LSA类型
OSPFv3与OSPFv2相比,具有类似的LSA名称,但是功能略有区别。
OSPFv3新增了两类LSA,包括:链路LSA和区域内前缀LSA。
Type1:Router-LSA
OSPFv2
OSPFv3
在OSPFv2中,通过Link Type、Link ID以及Link Data来描述一个接口信息。在OSPFv3中,设备会为每个运行OSPFv3接口所在的区域产生一个LSA,描述了设备的链路状态(Link Type、Interface ID、NeighborInterface ID和Neighbor Router ID )和开销,在所属的区域内传播。
重要字段介绍:
Link Type:1 Byte,链路类型。
Interface ID:4 Byte,接口ID。
Neighbor Interface ID:4 Byte,邻居的接口ID。
Neighbor Router ID:4 Byte,邻居的路由器ID。
Type2:Network-LSA
OSPFv2
OSPFv3
与OSPFv2相比,OSPFv3的Network-LSA删除了网络掩码字段,仅用相连的路由器的Router ID来描述本网段的链路状态,由DR产生,在所属的区域内传播。
重要字段介绍:
Attached Router:4 Byte,相连的路由器,指连接在同一个网段上的所有路由器的Router ID,也包括DR的Router ID。
Type3:Inter-Area-Prefix-LSA
OSPFv2:Network-Summary-LSA
OSPFv3
PrefixOptions:
与OSPFv2类似,由ABR产生,描述区域内某个IPv6地址前缀的路由,并通告给其他相关区域。每个IPv6地址前缀,ABR都会单独发送一个Type3的LSA。
重要字段介绍(描述前缀的三元组):
PrefixLength:1 Byte,前缀的比特数。
PrefixOptions:1 Byte,表示这个前缀的一些特性,以便在各种不同的路由计算时做相应的判断和处理。
PrefixOptions字段格式如下:
P:1 bit,传播位。
MC:1 bit,组播位。
LA:1 bit,本地地址位。
NU:1 bit,非单播位。
Address Prefix:变长,IPv6地址前缀。
Type4:Inter-Area-Router-LSA
OSPFv2:ASBR-Summary-LSA
OSPFv3
与OSPFv2类似,由ABR产生,描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。对于所描述的每一个ASBR,ABR都会单独发送一个Type4的LSA 。
重要字段介绍:
Destination Router ID:4 Byte,LSA中描述的目的路由器的Router ID,即ASBR的Router ID。
Type5:AS-External-LSA
OSPFv2
OSPFv3
与OSPFv2类似,由ASBR产生,描述到达AS外部的一个前缀的路由,通告到所有的区域(除了Stub区域和NSSA区域)。
重要字段介绍:
Referenced LS Type:2 Byte,引用链路状态类型,表明这个LSA是否需要参考其他LSA。
0:不参考
1:参考Router-LSA
2:参考Network-LSA
新增Type8:Link-LSA
Link-LSA报文格式:
每个设备都会为每个链路产生一个Link-LSA,仅在始发链路内泛洪。
Link-LSA作用:
向该链路上其他路由器通告本接口的链路本地地址。
向该链路上其他路由器通告本接口的IPv6前缀列表。
向该链路上其他路由器通告本链路始发的Network-LSA中设置的可选项。
重要字段介绍:
Link-Local Interface Address:16 Byte,路由器与该链路相连的接口上配置的链路本地地址(该地址只出现在Link-LSA中)。
新增Type9:Intra-Area-Prefix-LSA
Intra-Area-Prefix-LSA报文格式:
在OSPFv2中,可以通过Type1和Type2的LSA来描述拓扑信息和网段信息;而OSPFv3的此两类LSA仅包含拓扑信息,那OSPFv3如何描述网段信息呢?
Type9 LSA描述的是网段信息,只在所属的区域内传播,它需要依赖于拓扑信息,才能实现OSPFv3的路由计算。其类型可以分为两种:
每台设备均产生描述与Router-LSA相关联的IPv6前缀地址的Type9 LSA。
DR会产生描述与Network-LSA相关联的IPv6前缀地址的Type9 LSA。
OSPFv3的LSA举例
Link-LSA举例
Intra-Area-Prefix-LSA举例
OSPFv3的基本配置
OSPFv3的基础配置命令
-
启动OSPFv3。
[Huawei] ospfv3 [ process-id ] [ vpn-instance vpn-instance-name ]
创建并运行OSPFv3进程,同时可以将创建的OSPFv3进程与VPN实例进行绑定(可选)。
[Huawei-ospfv3-1] router-id router-id
配置设备在该OSPFv3进程中所使用的Router ID。
注意:如果用户没有指定Router ID,则OSPFv3进程无法运行。 -
在接口上使能OSPFv3。
[Huawei-GigabitEthernet0/0/1] ospfv3 process-id area area-id [ instance instance-id ]
在接口上使能OSPFv3的进程,并指定所属区域,也可以指定接口所属的VPN实例ID。
注意:配置此命令前,必须先创建OSPFv3进程和使能IPv6功能。 -
(可选)配置接口的OSPFv3网络类型。
[Huawei-GigabitEthernet0/0/1] ospfv3 network-type { broadcast | nbma | p2mp [ non-broadcast ] | p2p }[ instance instance-id ]
缺省情况下,接口的OSPFv3网络类型根据物理接口的数据链路层封装而定。以太网接口的缺省网络类型为Broadcast,
串口(封装PPP协议或HDLC协议时)的缺省网络类型为P2P。 -
进入OSPFv3区域视图。
[Huawei-ospfv3-1] area area-id
区域ID可以采用十进制整数或IPv4地址形式输入,但显示时是IPv4地址形式。
检查OSPFv3基本功能的配置结果
- 查看OSPFv3的接口信息。
[Huawei] display ospfv3 [ process-id ] interface [ area area-id ] [ interface-type interface-number ]
- 查看OSPFv3的邻居信息。
[Huawei] display ospfv3 [ process-id ] [ area area-id ] peer [ interface-type interface-number | neighbor-id ] [ verbose ]
neighbor-id:指定邻居的Router ID号。 - 查看OSPFv3的LSDB信息。
[Huawei] display ospfv3 [ process-id ] Isdb [ area area-id ] [ originate-router advertising-router-id | self-originate ][ { router | network | inter-router [ asbr-router asbr-router-id ] | { inter-prefix | nssa } [ ipv6-address prefix-length ]| link | intra-prefix } [ link-state-id ] ]
- 查看OSPFv3的路由表信息。
[Huawei] display ospfv3 [ process-id ] routing [ ipv6-address prefix-length | abr-routes | asbr-routes | intra-routes | inter-
routes | ase-routes | nssa-routes | [ statistics ] ]
OSPF双栈配置举例
场景描述:
某公司通过部署OSPFv2实现IPv4网络的互联互通。该公司为了保证未来的业务发展,同时部署了IPv6网络进行业务测试,在该网络中运行OSPFv3实现了IPv6网络的互联互通。
所有路由器运行OSPFv2和OSPFv3协议,整个自治系统分为3个区域。配置完成后,每台路由器都应学到AS内的所有网段的IPv4路由和IPv6路由。
部署IPv4网络
1、配置各路由器接口的IPv4地址。(略)
2、配置OSPF基本功能。
[R1] ospf 1 router-id 10.1.1.1
[R1-ospf-1] area 1
[R1-ospf-1-area-0.0.0.1] network 10.1.12.1 0.0.0.0
[R2] ospf 1 router-id 10.1.2.2
[R2-ospf-1] area 1
[R2-ospf-1-area-0.0.0.1] network 10.1.12.2 0.0.0.0
[R2-ospf-1-area-0.0.0.1] quit
[R2-ospf-1] area 0
[R2-ospf-1-area-0.0.0.0] network 10.1.23.2 0.0.0.0
[R3] ospf 1 router-id 10.1.3.3
[R3-ospf-1] area 0
[R3-ospf-1-area-0.0.0.0] network 10.1.23.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0] quit
[R3-ospf-1] area 2
[R3-ospf-1-area-0.0.0.2] network 10.1.35.3 0.0.0.0
[R4] ospf 1 router-id 10.1.4.4
[R4-ospf-1] area 0
[R4-ospf-1-area-0.0.0.0] network 10.1.23.4 0.0.0.0
[R5] ospf 1 router-id 10.1.5.5
[R5-ospf-1] area 2
[R5-ospf-1-area-0.0.0.2] network 10.1.35.5 0.0.0.0
部署IPv6网络
1、全局及接口下使能IPv6功能,配置各路由器接口的IPv6地址。(略)
2、启动OSPFv3功能。
[R1] ospfv3 1
[R1-ospfv3-1] router-id 10.1.1.1
[R2] ospfv3 1
[R2-ospfv3-1] router-id 10.1.2.2
[R3] ospfv3 1
[R3-ospfv3-1] router-id 10.1.3.3
[R4] ospfv3 1
[R4-ospfv3-1] router-id 10.1.4.4
[R5] ospfv3 1
[R5-ospfv3-1] router-id 10.1.5.5
3、接口使能OSPFv3功能。
[R1] interface gigabitethernet 0/0/1
[R1-GigabitEthernet0/0/1] ospfv3 1 area 1
[R2] interface gigabitethernet 0/0/1
[R2-GigabitEthernet0/0/1] ospfv3 1 area 1
[R2-GigabitEthernet0/0/1] quit
[R2] interface gigabitethernet 0/0/0
[R2-GigabitEthernet0/0/0] ospfv3 1 area 0
[R3] interface gigabitethernet 0/0/1
[R3-GigabitEthernet0/0/1] ospfv3 1 area 0
[R3-GigabitEthernet0/0/1] quit
[R3] interface gigabitethernet 0/0/2
[R3-GigabitEthernet0/0/2] ospfv3 1 area 2
[R4] interface gigabitethernet 0/0/2
[R4-GigabitEthernet0/0/2] ospfv3 1 area 0
[R5] interface gigabitethernet 0/0/2
[R5-GigabitEthernet0/0/2] ospfv3 1 area 2
查看OSPFv3网络的邻居信息
[R2]display ospfv3 peer
OSPFv3 Process (1)
OSPFv3 Area (0.0.0.0)
Neighbor ID Pri State Dead Time Interface Instance ID
10.1.3.3 1 Full/Backup 00:00:31 GE0/0/0 0
10.1.4.4 1 Full/DR 00:00:36 GE0/0/0 0
OSPFv3 Area (0.0.0.1)
Neighbor ID Pri State Dead Time Interface Instance ID
10.1.1.1 1 Full/Backup 00:00:37 GE0/0/1 0
ID:当不指定实例时,默认值为0。两台设备的直连接口的实例ID需要相同,否则无法建立OSPFv3邻接关系。
查看OSPFv3网络的路由信息
[R2]display ospfv3 routing
Codes : E2 - Type 2 External, E1 - Type 1 External, IA - Inter-Area, N - NSSA, U - Uninstalled
OSPFv3 Process (1)
Destination Metric Next-hop
2001:DB8:2345:12::/64 1 directly connected, GigabitEthernet0/0/1
2001:DB8:2345:23::/64 1 directly connected, GigabitEthernet0/0/0
IA 2001:DB8:2345:35::/64 2 via FE80::2E0:FCFF:FE38:50A0, GigabitEthernet0/0/0
在OSPFv3中,路由的下一跳地址为链路本地地址。本条路由的下一跳地址为R3的GE0/0/1接口的链路本地地址。
查看OSPFv3网络LSDB信息
[R2]display ospfv3 lsdb
* indicates STALE LSA
OSPFv3 Router with ID (10.1.2.2) (Process 1)
Link-LSA (Interface GigabitEthernet0/0/0)
Link State ID Origin Router Age Seq# CkSum Prefix
0.0.0.3 10.1.2.2 0862 0x80000003 0x486d 1
0.0.0.4 10.1.3.3 0854 0x80000003 0xc512 1
0.0.0.5 10.1.4.4 0840 0x80000003 0x4e3c 1
Link-LSA (Interface GigabitEthernet0/0/1)
Link State ID Origin Router Age Seq# CkSum Prefix
0.0.0.4 10.1.1.1 0878 0x80000003 0x9d8f 1
0.0.0.4 10.1.2.2 0868 0x80000003 0xcbf8 1
Router-LSA (Area 0.0.0.0)
Link State ID Origin Router Age Seq# CkSum Link
0.0.0.0 10.1.2.2 0567 0x8000000f 0xd411 1
0.0.0.0 10.1.3.3 0576 0x8000000e 0xd70c 1
0.0.0.0 10.1.4.4 0577 0x8000000a 0xdd08 1
Network-LSA (Area 0.0.0.0)
Link State ID Origin Router Age Seq# CkSum
0.0.0.5 10.1.4.4 0577 0x80000006 0xc014
Inter-Area-Prefix-LSA (Area 0.0.0.0)
Link State ID Origin Router Age Seq# CkSum
0.0.0.1 10.1.2.2 0862 0x80000003 0xceb3
0.0.0.1 10.1.3.3 0782 0x80000004 0x3824
Intra-Area-Prefix-LSA (Area 0.0.0.0)
Link State ID Origin Router Age Seq# CkSum Prefix Reference
0.0.0.1 10.1.4.4 0576 0x8000000a 0xee2f 1 Network-LSA
Router-LSA (Area 0.0.0.1)
Link State ID Origin Router Age Seq# CkSum Link
0.0.0.0 10.1.1.1 0819 0x80000007 0x9460 1
0.0.0.0 10.1.2.2 0827 0x80000007 0x8a67 1
Network-LSA (Area 0.0.0.1)
Link State ID Origin Router Age Seq# CkSum
0.0.0.4 10.1.2.2 0828 0x80000003 0x9166
Inter-Area-Prefix-LSA (Area 0.0.0.1)
Link State ID Origin Router Age Seq# CkSum
0.0.0.1 10.1.2.2 0570 0x80000001 0x510f
0.0.0.2 10.1.2.2 0596 0x80000001 0xfb76
Intra-Area-Prefix-LSA (Area 0.0.0.1)
Link State ID Origin Router Age Seq# CkSum Prefix Reference
0.0.0.1 10.1.2.2 0826 0x80000004 0x1925 1 Network-LSA
查看R2的LSDB,有Type1、Type2、Type3、Type8和Type9五种LSA。
IS-IS(IPv6)原理与配置
IS-IS (IPv6)概述
IS-IS最初是为OSI网络设计的一种基于链路状态协议的动态路由协议。之后为了提供对IPv4的路由支持,扩展应用到IPv4网络,称为集成IS-IS。
IS-IS报文有以下几种类型:Hello PDU、LSP和SNP。
报文格式为:
IS-IS报文中的变长字段部分是多个TLV(Type-Length-Value)三元组,使用TLV结构构建报文使ISIS更具灵活性和扩展性,增加新特性只需要增加新TLV即可。
为了支持IPv6路由的处理和计算,IS-IS新增了两个TLV和一个NLPID(Network Layer Protocol Identifier,网络层协议标识符)。
新增TLV
129号TLV中新增NLPID
为了支持IPv6路由的处理和计算,IS-IS在129号TLV中新增了一个NLPID。
129号TLV(Protocol Supported):用于表示支持的协议。
字段解释:
Type:8 bit,TLV类型,此时值为129(0x81),表示支持协议TLV。
Length:8 bit,TLV的Value部分长度。
NLPID:8 bit,网络层协议标识符。若支持IPv4,则值为204(0xCC);若支持IPv6,则值为142(0x8E)。
如果IS-IS支持IPv6,那么向外发布IPv6路由时必须携带NLPID值。
IS-IS多拓扑技术背景
缺省情况下,在运行IS-IS的网络环境中,IPv4和IPv6的混合拓扑被看成是一个集成的拓扑,IS-IS针对IPv4和IPv6经计算形成相同的最短路径树。
IS-IS单拓扑存在的问题:
混合拓扑中的一些路由器和链路不支持IPv6协议,但是支持双协议栈的路由器无法感知到这些路由器和链路,仍然会把IPv6报文转发给它们,这就导致IPv6报文因无法转发而被丢弃。
同样,存在不支持IPv4的路由器和链路时,IPv4报文也无法转发。
IS-IS多拓扑概述
IS-IS多拓扑(Multi-Topology,MT)特性是指在一个IS-IS自治域内运行多个独立的IP拓扑。例如IPv4拓扑和IPv6拓扑,而不是将它们视为一个集成的单一拓扑。这有利于IS-IS在路由计算中根据实际组网情况来单独考虑IPv4和IPv6网络。根据链路所支持的IP协议类型,不同拓扑运行各自的SPF计算,实现网络的相互屏蔽。
IS-IS多拓扑的实现过程:
建立拓扑:通过报文交互建立邻居,从而建立多拓扑。
SPF计算:在不同的拓扑上分别进行SPF计算。
IS-IS多拓扑原理
IS-IS定义了新的TLV,该TLV中包含接口所属拓扑信息(MT信息)。MT信息的传播,使得网络按不同的拓扑分别进行SPF计算,最终实现拓扑分离。
229号TLV(多拓扑TLV):
重要字段解释:
Type:8 bit,TLV类型,此时值为229(0xE5),表示支持多拓扑。
O:1 bit,Overload,超载位。
A:1 bit,Attach,附着位。
MT ID:12 bit,表示该接口属于什么拓扑。
IS-IS (IPv6)的基础配置命令
- 使能IS-IS(IPv6)功能。
[Huawei-isis-1] ipv6 enable [ topology { ipv6 | standard } ]
在IS-IS进程下,使能该进程的IPv6能力。
[Huawei-GigabitEthernet0/0/1] isis ipv6 enable [ process-id ]
在接口上使能IS-IS的IPv6功能并指定要关联的IS-IS进程号。
注意:配置此命令前,必须先使能接口的IPv6功能。 - 配置IS-IS接口在IPv6网络中的开销。
[Huawei-GigabitEthernet0/0/1] isis ipv6 cost { cost | maximum } [ level-1 | level-2 ]
缺省情况下,IPv6拓扑中IS-IS接口的链路开销值为10。
检查IS-IS (IPv6)基本功能的配置结果
- 查看使能了IS-IS(IPv6)的接口信息。
[Huawei] display isis interface interface-type interface-number [ verbose ]
- 查看IS-IS(IPv6)的邻居信息。
[Huawei] display isis process-id peer [ verbose ]
- 查看IS-IS(IPv6)的路由信息。
[Huawei] display isis route [ process-id | vpn-instance vpn-instance-name ] ipv6 [ verbose | [ level-1 | level-2 ] | ipv6-address [ prefix-length ] ]
IS-IS双栈配置举例
场景描述:
某公司通过部署IS-IS实现IPv4网络的互联互通。该公司为了保证未来的业务发展,同时部署了IPv6网络进行业务测试,因此需要在该网络的IS-IS中使能IPv6功能。
由于设备性能不同,要求通过修改开销值,让IPv4和IPv6业务优选不同的路径,且IPv6网络单独计算拓扑。
所有路由器运行IS-IS协议,整个网络都处于区域49.0001中,且所有路由器均为Level-2路由器。配置完成后,每台路由器都应学到AS内的所有网段的IPv4路由和IPv6路由。
部署IPv4网络
1、配置各路由器接口的IPv4地址。(略)
2、配置IS-IS基本功能。
[R1] isis 1
[R1-isis-1] is-level level-2
[R1-isis-1] network-entity 49.0001.0000.0000.0001.00
#
[R1] interface gigabitethernet 0/0/1
[R1-GigabitEthernet0/0/1] isis enable 1
[R1-GigabitEthernet0/0/1] quit
[R1] interface gigabitethernet 0/0/2
[R1-GigabitEthernet0/0/2] isis enable 1
[R1-GigabitEthernet0/0/2] isis cost 40 level-2
R2、R3和R4的配置与R1类似,不再赘述。其中,它们的网络实体名分别为:
R2:49.0001.0000.0000.0002.00
R3:49.0001.0000.0000.0003.00
R4:49.0001.0000.0000.0004.00
部署IPv6网络
1、配置各路由器接口的IPv6地址。(略)
2、使能IS-IS(IPv6)功能。
[R1] isis 1
[R1-isis-1] ipv6 enable topology ipv6
#
[R1] interface gigabitethernet 0/0/1
[R1-GigabitEthernet0/0/1] isis ipv6 enable 1
[R1-GigabitEthernet0/0/1] isis ipv6 cost 40 level-2
[R1-GigabitEthernet0/0/1] quit
[R1] interface gigabitethernet 0/0/2
[R1-GigabitEthernet0/0/2] isis ipv6 enable 1
R2、R3和R4的配置与R1类似,不再赘述
查看IS-IS (IPv4)网络路由信息
以R1为根计算最短路径树为例,可以发现IS-IS(IPv4)的逻辑拓扑如右下图所示。
[R1]dis ip routing-table protocol isis
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------------------------
Public routing table : ISIS
Destinations : 2 Routes : 2
ISIS routing table status : <Active>
Destinations : 2 Routes : 2
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.1.24.0/24 ISIS-L2 15 20 D 10.1.12.2 GigabitEthernet0/0/1
10.1.34.0/24 ISIS-L2 15 30 D 10.1.12.2 GigabitEthernet0/0/1
ISIS routing table status : <Inactive>
Destinations : 0 Routes : 0
查看IS-IS (IPv6)网络路由信息
以R1为根计算最短路径树为例,可以发现IS-IS(IPv6)的逻辑拓扑如右下图所示。
[R1]dis ipv6 routing-table protocol isis
Public Routing Table : ISIS
Summary Count : 2
ISIS Routing Table's Status : < Active >
Summary Count : 2
Destination : 2001:DB8:2345:24:: PrefixLength : 64
NextHop : FE80::2E0:FCFF:FE90:3D3A Preference : 15
Cost : 30 Protocol : ISIS-L2
RelayNextHop : :: TunnelID : 0x0
Interface : GigabitEthernet0/0/2 Flags : D
Destination : 2001:DB8:2345:34:: PrefixLength : 64
NextHop : FE80::2E0:FCFF:FE90:3D3A Preference : 15
Cost : 20 Protocol : ISIS-L2
RelayNextHop : :: TunnelID : 0x0
Interface : GigabitEthernet0/0/2 Flags : D
ISIS Routing Table's Status : < Inactive >
Summary Count : 0
BGP4+原理与配置
BGP4+概述
传统的BGP-4只能管理IPv4单播路由信息,BGP多协议扩展(MultiProtocol BGP,MP-BGP)提供了对多种网络层协议的支持。目前的MP-BGP,使用扩展属性和地址族来实现对IPv6、组播和VPN相关内容的支持,BGP协议原有的报文机制和路由机制并没有改变。
其中,MP-BGP对IPv6单播网络的支持特性称为BGP4+。BGP4+为IPv6单播网络建立独立的拓扑结构,并将路由信息储存在独立的路由表中,保持单播IPv4网络和单播IPv6网络之间路由信息相互隔离。
MP-BGP支持的地址族
MP-BGP采用地址族来区分不同的网络层协议,要在BGP对等体之间交互不同类型的路由信息,则需要在正确的地址族视图下激活对等体,以及发布BGP路由。
MP-BGP支持的地址族有:
IPv4单播地址族
IPv4组播地址族
IPv6单播地址族
VPNv4地址族
VPNv6地址族
……
BGP路径属性
BGP的Update报文在对等体之间传递路由信息,可以用于发布和撤销路由。
Update报文格式:
MP-BGP中引入了两个NLRI属性,分别是:
MP_REACH_NLRI:Multiprotocol Reachable NLRI,多协议可达NLRI。用于发布可达路由及下一跳信息。
MP_UNREACH_NLRI:Multiprotocol Unreachable NLRI,多协议不可达NLRI。用于撤销不可达路由。
BGP4+通过以上两个NLRI属性传递IPv6路由信息。
NLRI属性
BGP4+的基础配置命令
- 配置BGP对等体。
[Huawei-bgp] peer ipv6-address as-number { as-number-plain | as-number-dot }
在BGP视图下,创建IPv6对等体。 - 使能BGP对等体。
[Huawei-bgp] ipv6-family [ unicast | vpnv6 | vpn-instance vpn-instance-name ]
使能BGP的IPv6地址族并进入BGP的各IPv6地址族视图。
[Huawei-bgp-af-ipv6] peer ipv6-address enable
在IPv6地址族视图下使能与指定对等体之间交换相关的路由信息。 - 配置BGP路由注入。
[Huawei-bgp-af-ipv6] network ipv6-address prefix-length [ route-policy route-policy-name ]
配置BGP将IPv6路由表中的特定路由注入到BGP路由表中。
检查BGP4+基本功能的配置结果
- 查看BGP4+的对等体信息。
[Huawei] display bgp ipv6 peer ipv6-address [ verbose ]
- 查看BGP4+的路由信息。
[Huawei] display bgp ipv6 routing-table
BGP双栈配置举例
场景描述:
某公司两个分部之间通过BGP实现网络互通。该公司为了保证未来的业务发展,在两个分部都部署了IPv6网络进行业务测试,因此还需要部署BGP4+实现IPv6网络互通。
部署IPv4网络
1、配置各路由器接口的IPv4地址。(略)
2、配置BGP基本功能:建立EBGP对等体。
[R1] bgp 65001
[R1-bgp] router-id 10.1.1.1
[R1-bgp] peer 10.1.12.2 as-number 65002
[R2] bgp 65002
[R2-bgp] router-id 10.1.2.2
[R2-bgp] peer 10.1.12.1 as-number 65001
3、发布IPv4路由。
[R1-bgp] iPv4-family unicast
[R1-bgp-af-ipv4] network 10.1.1.1 32
[R2-bgp] iPv4-family unicast
[R2-bgp-af-ipv4] network 10.1.2.2 32
部署IPv6网络
1、配置各路由器接口的IPv6地址。(略)
2、配置BGP4+基本功能:建立EBGP对等体,并使能对等体。
[R1] bgp 65001
[R1-bgp] peer 2001:DB8:2345:12 :: 2 as-number 65002
[R1-bgp] iPv6-family unicast
[R1-bgp-af-ipv6] peer 2001:DB8:2345:12 :: 2 enable
[R2] bgp 65002
[R2-bgp] peer 2001:DB8:2345:12 :: 1 as-number 65001
[R2-bgp] iPv6-family unicast
[R2-bgp-af-ipv6] peer 2001:DB8:2345:12 :: 1 enable
3、发布IPv6路由。
[R1-bgp-af-ipv6] network 2001:DB8:2345:1 :: 1 128
[R2-bgp-af-ipv6] network 2001:DB8:2345:2 :: 2 128
查看BGP对等体信息
通过display bgp [ipv6] peer,分别查看IPv4和IPv6网络中的BGP对等体信息。
发现除建立对等体的地址不同,其他信息基本一致。
查看BGP4+路由信息
[R1]display bgp ipv6 routing-table
BGP Local router ID is 10.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
*> Network : 2001:DB8:2345:1::1 PrefixLen : 128
NextHop : :: LocPrf :
MED : 0 PrefVal : 0
Label :
Path/Ogn : i
*> Network : 2001:DB8:2345:2::2 PrefixLen : 128
NextHop : 2001:DB8:2345:12::2 LocPrf :
MED : 0 PrefVal : 0
Label :
Path/Ogn : 65002 i
查看BGP4+路由表,发现共有2条路由信息,均为有效路由。
查看BGP4+中的NLRI属性
通过抓包,可以在R1发出的Update报文中,查看到MP_REACH_NLRI属性信息。
其中:
该可达路由的下一跳地址为:2001:db8:2345:12::1
该可达路由地址前缀及前缀长度为:
2001:db8:2345:1::1/128
UPDATE Message-Border Gateway Protocol
UPDATE Message
Marker: 16 bytes
Length: 85 bytes
Type: UPDATE Message (2)
Unfeasible routes length: 0 bytes
Total path attribute length: 62 bytes
Path attributes
ORIGIN: IGP (4 bytes)
AS_PATH: 65001 (9 bytes)
MULTI_EXIT_DISC: 0 (7 bytes)
MP_REACH_NLRI (42 bytes)
Flags: 0x90 (Optional, Non-transitive, Complete, Extended Length)
Type code: MP_REACH_NLRI (14)
Length: 38 bytes
Address family: IPv6 (2)
Subsequent address family identifier: Unicast (1)
Next hop network address (16 bytes)
Next hop: 2001:db8:2345:12::1 (16)
Subnetwork points of attachment: 0
Network layer reachability information (17 bytes)
2001:db8:2345:1::1/128
MP Reach NLRI prefix length: 128
MP Reach NLRI prefix: 2001:db8:2345:1::1
通过IPv6静态路由能够满足网络互通要求,但随着网络的增大,就
需要借助动态路由协议。因此要求动态路由协议能够支持IPv6,并
能够携带IPv6地址进行路由通告。
• IETF为了支持IPv6网络,对OSPFv2进行了增强与改进,创建了一
个新的协议:OSPFv3。
• IS-IS则是利用自己扩展性强的特点,通过新增TLV,实现对IPv6的
支持。
• 同样的,BGP利用自己的扩展路径属性以及多协议地址族实现对
IPv6的支持。