::: tip OSPFv2对应支持IP v4,OSPFv3对应支持IP v6。 ISIS可以同时支持IP v4、IP v6、CLNP网络。 ::: ::: warning OSPFv3、ISIS(IP v6)、BGP4+做IP v6邻居建立时,必须先配置Route ID。 :::
ISIS(IP v6)
ISIS在开销模式上有窄带和宽带两种模式,一般情况下使用宽风格。
IP v4 narrow类型下使用的TLV: 2号TLV(IS Neighbors TLV):用来携带邻居信息。 128号TLV(IP Internal Reachability TLV):携带路由域内的IS-IS路由信息。 130号TLV(IP External Reachability TLV):携带路由域外的IS-IS路由信息。 IP v4 wide类型下使用的TLV: 22号TLV(IS Extended Neighbors TLV):携带邻居信息。 135号TLV(Extended IP Reachability TLV):替换原有IP reachability TLV,携带IS-IS路由信息,扩展路由开销值的范围,可以携带sub TLV。
IP v6 新增TLV:
1.232号TLV:携带接口IP v6地址,不同的PDU接口地址字段的内容不同。相当于IP v4中的描述接口地址的132号TLV。
1.hello内的232 TLV:发送hello报文接口的链路本地地址
2.LSP内的232 TLV:发送LSP接口的第一个IPv6单播地址,如果第一个失效,则携带第二个IP v6单播地址
该TLV是通过IP v4 132-TLV改变得到,132-TLV可以携带64个IP v4地址(32位),232-TLV可以携带16个IP 6地址(128位)
2.236号TLV:携带接口的路由前缀信息和前缀对应功能,包括接口路由。相当于128号和130号TLV标识IP v6内/外部可达性信息
1.携带设备所有接口的路由前缀信息
2.存在功能bit(携带前缀对应的功能):
U bit:UP/DOWN bit,做L2到L1泄露时该bit置位(L2优于L1)
X bit:标识内外部路由,X默认为0代表内部路由,X置位1代表外部路由
S bit:标识子TLV是否置位(可选),主要用于携带route tag
IP v6 新增NLPID:
NLPID:8bit,网络层协议标识符。支持IPv4时值为204(0xCC),支持IP v6时值为142(0x8E)
(为支持IP v6路由,IS-IS在129号TLV中新增了NLPID,IP v4默认为0xcc,IP v6默认为0x8E)
ISIS实验
[AR1]ipv6
[AR1]isis
[AR1-isis-1]network-entity 49.0001.0000.0000.0001.00
[AR1-isis-1]is-level level-2
[AR1-isis-1]cost-style wide
[AR1-GigabitEthernet0/0/0]ipv6 enable
[AR1-GigabitEthernet0/0/0]ipv6 address fe80:12::1 link-local
[AR1-GigabitEthernet0/0/0]isis ipv6 enable 1 1为ISIS进程ID
[AR2]ipv6
[AR2]isis
[AR2-isis-1]network-entity 49.0001.0000.0000.0002.00
[AR2-isis-1]is-level level-2
[AR2-isis-1]cost-style wide
[AR2-GigabitEthernet0/0/0]ipv6 enable
[AR2-GigabitEthernet0/0/0]ipv6 address fe80:12::2 link-local
[AR2-GigabitEthernet0/0/0]isis ipv6 enable 1
如上:Hello报文中,232号TLV的接口地址是发送Hello报文接口的链路本地地址。 AR1接口创建IP v6单播地址: 如上:LSP报文中,232号TLV的接口地址是发送该报文的接口的(第一个)IP v6单播地址。 如上,236号TLV携带了接口的路由前缀(该设备所有的接口包括环回口的路由前缀都会出现在236号TLV)。
ISIS双栈实验
如上,除AR2不支持IP v6外,其他设备均支持双栈。支持双栈的设备需要建立IP v4和IP v6的两套地址两套邻居关系。
ISIS配置:
[AR]isis 1
[AR-isis-1]is-level level-2
[AR-isis-1]cost-style wide
[AR-isis-1]network-entity 49.0001.0000.0000.0003.00
[AR-isis-1]ipv6 enable topology standard 不可或缺,否则接口isis ipv6 enable无法执行
先配置IP v6地址: ISIS基于拓扑架构建立邻居关系,IP v4和IP v6的底层是一样的,查看ISIS邻居不需要特殊加IP v6,可以通过查看ISIS接口信息判断ISIS的IP v6邻居是否建立: 查看AR4到AR1环回口的路由: 再配置IP v4地址: 添加IP v4的地址后,AR4的IP v6路由表中AR1的环回口消失: ISSI LSBD和之前不变: 实节点旁挂自身路由,查看实节点详细信息(默认是L2,ISIS已经改为L2,不需要单独加级别): 如上,AR1通告自身LSP,携带了2011::1的环回口路由,但AR4学习到LSP后不计算(只有IP v6拓扑时计算,加上IP v4拓扑后不计算)。 ::: tip ISIS同时支持IP v4和IP v6会导致拓扑计算不同,导致路由计算失效。 如上述拓扑中,只存在IP v6拓扑时,AR1的环回口通过AR3传递给AR4,添加IP v4拓扑后,拓扑计算经过AR2的路径开销更小。 ISIS为解决该问题针对多个网络设计了多拓扑。 :::
IS-IS单拓扑和多拓扑
ISIS-多拓扑:
- standard:标准拓扑(单拓扑),只计算IP v4的拓扑信息。
- compatible:兼容拓扑(多拓扑),计算IP v4和IP 6的拓扑信息,但是只是用IP v4拓扑。
- ipv6:多拓扑,计算IPv4和IPv6的拓扑信息,分别使用IP v4和IP v6的拓扑信息。
运行IS-IS的网络环境中,IP v4和IP v6的各自单独计算拓扑,即多拓扑,默认情况下IP v4和IP v6的混合拓扑看成是一个集成的拓扑(单拓扑)。 ::: tip IS-IS单拓扑存在的问题: 支持双协议栈的路由器无法感知到混合拓扑中不支持IP v6协议的路由器和链路,IP v6报文转发给它们会导致IP v6报文被丢弃。存在不支持IP v4的路由器和链路时IP v4报文也无法转发。 :::
[Huawei-isis-1] ipv6 enable topology + ipv6(多拓扑)/standard(单拓扑)
(多拓扑报文不重要) 两端开启多拓扑后,HELLO报文中发送229号TLV报文(支持多拓扑):
LSP路由报文中发送222号TLV报文(携带多拓扑IP v6的拓扑信息):
LSP路由报文中发送237号TLV表示IP v6多拓扑场景下携带IP v6的路由信息(包括内外部路由):
上述拓扑中,ISIS配置IP v6时使用的是standard单拓扑,即拓扑计算只使用IP v4的最短路径树计算IPv4的拓扑信息。AR4通过AR2访问AR1的环回口,由于AR2不支持IP v6,路由在AR2处断掉。
将支持双栈的设备全部改为IP v6支持多拓扑:
[AR-isis-1]ipv6 enable topology ipv6
在AR1的环回口做1.1.1.1/32的IP v4路由并通告ISIS: 如上,根据链路开销,IP v6走AR4 GE0/0/0,IP v4走AR4 GE0/0/1。 ::: warning compatible兼容拓扑由于只计算IP v6拓扑但不使用,只用于IP v4到IP v6过渡切换时做测试,查看IP v6的拓扑路径是否正确。 :::
BGP4+
BGP多协议扩展(MP-BGP)提供了对多种网络层协议的支持。支持IP v4的称为BGP-4,支持IP v6的称为BGP4+。 BGP不需要计算拓扑信息,只需要建立计算路由。
如上,两台设备建立BGP对等体关系时,如果使用IP v4,peer xx.xx.xx.xx as-number 200只是会话,不能指定邻居,建立邻居关系的原因是华为设备默认使能IP v4单播地址族。 手动使能其他IP v4地址族建立其他邻居关系时,需要在地址族下开启会话使能:peer xx.xx.xx.xx enable。
[AR1]ipv6
[AR1-GigabitEthernet0/0/0]ipv6 enable
[AR1-GigabitEthernet0/0/0]ipv6 address 2012::1 64
[AR1-GigabitEthernet0/0/0]ipv6 address fe80:12::1 link-local
[AR1]bgp 100
[AR1-bgp]router-id 10.1.1.1
[AR1-bgp]peer 2012::2 as-number 200
[AR1-bgp]ipv6-family unicast 建立邻居关系需要手工使能IP v6单播地址族
[AR1-bgp-af-ipv6]peer 2012::2 enable
AR2配置同AR1
::: warning BGP只能用全球单播地址做邻居关系,不能使用链路本地地址建立BGP邻居。 链路本地地址只在本链路生效,不能跨链路建立邻居,BGP根本上杜绝了链路本地地址建立BGP邻居的可能性。 (隧道技术相当于直连。) :::
BGP是TLV扩展,不需要计算路由信息,只需要扩展TLV支持的IP v6路由。 IP v6报文更新(updatev报文,对应MP_REACH_NLRI): IP v6报文撤销(updatev报文,对应MP_UNREACH_NLRI):