目录
ISIS-IPV6的概述
- ISIS-IPV6须知
- OSPFv3的RFC 2740有80页,而ISIS的IPV6草案只有7页
- ISIS的报文因采用TLV的设计结构,因此扩展性很好
- 为支持新的协议和特性,只需要扩展新的TLV或子TLV
- IETF的draft-ietf-isis-ipv6-05(RPC5308)中规定:
- 为支持IPV6路由的处理和计算,ISIS新增一个NLPID和两个TLV
PS:NLPID当中的NL的network layer的缩写,即网络层,所以NLPID可以理解为网络层的ID。
- 关于多拓扑:
- 多拓扑仅会用在IPV4和IPV6共存的情况下
- ISIS和OSPF都存在多拓扑
- 但ISIS的多拓扑应用的更广泛,而OSPF的多拓扑现在还处于草案阶段
我们对ISIS-IPV6的介绍也围绕着上述两个主题:
- ISIS-IPV6的新增字段
- 多拓扑
新增字段
NLPID
-
NLPID:Network layer protocol identifier 字段(网络层协议ID)
-
作用:通过这个字段,标识支持哪些协议,有两种变化,如下所示:
- 0x8e:IPV6
- 0xcc:IPV4
-
如果ISIS支持IPV6,那么向外发布IPV6路由时必须携带0x8e
-
在AR220下仅开启了ISIS-IPV4后的hello报文
-
在AR220下接口上仅开启了ISIS-IPV6后的hello报文,注意看NLPID,当前显示IPV6:
-
在AR220下接口同时开启IPV4和IPV6的hello报文
TLV-Reachability
TLV | 编号 | 备注 |
---|---|---|
IPV6 Reachability | 236 | 通告IPV6前缀信息 |
IPV6 interface address | 232 | 通告IPV6接口地址 |
-
IPV6 Reachability在哪种类型当中?
- hello报文当中并没有,LSP报文当中才有,正好与TLV-interface相对应
- TLV-interface在有几条,Reachability就有几条,如下所示:
-
在LSP报文当中看到Reachability和TLV-INTERFACE
-
注意,Reachability当中还有三个位U/X/S需要注意一下,如下所示:
- U位:up/down,标识这个前缀是否是从高level通告下来的,比如从L2注入到L1,主要是为了防环
- X位:external original标识这个前缀是否是外部路由
- S位:subtlv present,标识是否包含TLV(可选)
TLV-INTERFACE
TLV | 编号 | 备注 |
---|---|---|
IPV6 Reachability | 236 | 通告IPV6前缀信息 |
IPV6 interface address | 232 | 通告IPV6接口地址 |
-
TLV-INTERFACE
- 作用:承载IPV6接口的IP地址
- 在普通的hello报文当中就能看到此字段
- 有几个接口加入到ISIS进程就会显示多少个TLV-INTERFACE
- 在不同的报文类型当中显示的内容不一样
- 在hello报文当中:链路本地地址
- 在LSP报文当中:通常接口的单播地址
-
hello报文当中的TLV-INTERFACE是链路本地地址
-
LSP报文当中的TLV-INTERFACE是接口单播地址
小实验
-
基础配置
# AR1 sys sysn AR1 ipv6 isis 1 ipv6 enable network 49.0001.0000.0001.00 is-level level-1 int g0/0/0 ipv6 enable ipv6 add auto link isis ipv6 enable 1 int g0/0/1 ipv6 enable ipv6 add auto link isis ipv6 enable 1 --- # AR2 sys sysn AR2 ipv6 isis 1 ipv6 enable network 49.0001.0000.0002.00 is-level level-1 int g0/0/0 ipv6 enable ipv6 add auto link isis ipv6 enable 1 int g0/0/1 ipv6 enable ipv6 add auto link isis ipv6 enable 1 --- # AR3 sys sysn AR3 ipv6 isis 1 ipv6 enable network 49.0001.0000.0003.00 is-level level-1 int g0/0/0 ipv6 enable ipv6 add auto link isis ipv6 enable 1 int g0/0/1 ipv6 enable ipv6 add auto link isis ipv6 enable 1
-
查看
因为ISIS的IPV4和IPV6是一个版本,所以用查看IPV4的命令可以正常查看IPV6
# 可以正常看邻居,但有一个问题是无法分辨这是IPV6还是IPV4 [AR3]dis isis peer Peer information for ISIS(1) System Id Interface Circuit Id State HoldTime Type PRI ------------------------------------------------------------------------------- 0001.0000.0002 GE0/0/0 0001.0000.0003.01 Up 29s L1 64 0001.0000.0001 GE0/0/1 0001.0000.0003.02 Up 23s L1 64 **# 后面加上verbose,当中的Adj Protocol 字段会显示当前是IPV4还是IPV6 # 如果只在IPV4就只显示IPV4,如果IPV4和IPV6都在那就会显示两个** [AR3]dis isis peer verbose Peer information for ISIS(1) System Id Interface Circuit Id State HoldTime Type PRI ------------------------------------------------------------------------------- 0001.0000.0002 GE0/0/0 0001.0000.0003.01 Up 21s L1 64 MT IDs supported : 0(UP) Local MT IDs : 0 Area Address(es) : 49 Peer IPv6 Address(es): FE80::2E0:FCFF:FE37:1234 Uptime : 00:02:36 **Adj Protocol : IPV6** Restart Capable : YES Suppressed Adj : NO Peer System Id : 0001.0000.0002
多拓扑
概述
什么是多拓扑?多拓扑是什么意思?为什么ISIS-IPV4当中没有这个概念呢?想要回答上面这个问题,我们先要搞清楚什么是单拓扑!
- 单拓扑
- 如果设备之间如果同时跑IPV4和IPV6的ISIS,默认就是单拓扑
- 单拓扑其实就是IPV4和IPV6共用一棵路径树
IPV4和IPV6共用一棵路径树,这不挺好嘛,看着也没啥问题呀,为什么又有多拓扑呢?如下所示:
如上图所示,A、B、C、D四台设备,其中A、C、D都是IPV4和IPV6的ISIS同时运行,而B设备由于比较老旧不支持IPV6,那在这种情况下,A到C设备之间的IPV4走哪条路径呢?A到C设备之间的IPV6又走哪条路径呢?我们先看IPV4,A会在两个接口上收到C的信息,但是A肯定会走B这条路径到达C(ipv4路径),因为开销嘛!那IPV6路径呢?A只会从D收到关于C的IPV6通告,那A是否会再形成一条到达C的IPV6路径呢?不会了!为什么?因为默认情况下IPV4和IPV6使用同一棵树,在这棵树上从A到达C之间最优秀的路径就是A-B-C(通过开销算出来的),无论是IPV4还是IPV6都得使用这棵树,通过上文的描述我们也能看出来,开销同时影响了IPV4和IPV6。问题出现了,如果A向C转发数据,如果是IPV4数据没问题,那IPV6的呢?B根本都不支持IPV6!!严重的问题就出现了!这就是单拓扑会还来的问题。怎么解决呢?那得就用到多拓扑了!
PS:形成多拓扑的真正原因是ISIS通过扩展IPV4实现了IPV6,而不是重新设计,所以IPV6默认会共同使用一棵树,IPV4和IPV6的拓扑必须一致,默认通常是IPV6使用IPV4的拓扑。
-
多拓扑:
- 多拓扑是IPV4和IPV6共存的时候才会出现的
- 如果设备之间如果同时跑IPV4和IPV6的ISISIS,默认是单拓扑,我们可以手工更改为多拓扑
- 所谓的多拓扑就是IPV4和IPV6分别单独使用一个路径树,分家!
-
怎么分家呢?
-
通过MT ID,IPV4使用一个MT-ID,而IPV6使用另一个MT-ID
-
不同的MT-ID建立不同的拓扑
-
计算的时候也是不同的MT-ID单独计算,生成独立的路径树。
-
如下所示
-
-
MT-ID:多拓扑ID,标识不同的拓扑
- 在点到点网络当中,要求两台路由器具有相同的MT ID才能形成邻接关系
- 在广播网络当中,邻接关系的建立跟接口的MTID是没有关系的,而且MT-ID不需要我们人为干预,会自动生成。
PS:在华为当中0就代表IPV4,而2就代表IPV6,华为设备当中就只有这两种变化。
我们可以通过dis isis peer verbose看当前是单拓扑还是多拓扑,如下所示,即使是IPV4和IPV6同时运行如果我们不手工更改成多拓扑,默认就是使用MT-ID-0,即IPV4的单拓扑结构。
[AR1]isis 1
[AR1-isis-1]dis th
[V200R003C00]
#
isis 1
is-level level-1
network-entity 49.0001.0000.0001.00
import-route static
#
**ipv6 enable topology standard # standard的含义就是单拓扑,这一条命令是默认自动生成的**
<AR1>dis isis peer ver
Peer information for ISIS(1)
System Id Interface Circuit Id State HoldTime Type PRI
-------------------------------------------------------------------------------
0001.0000.0002 GE0/0/0 0001.0000.0002.01 Up 9s L1 64
**MT IDs supported : 0(UP) # 0就代表IPV4
Local MT IDs : 0**
Area Address(es) : 49
Peer IP Address(es) : 10.0.12.2
Peer IPv6 Address(es): FE80::2E0:FCFF:FE37:1233
Uptime : 01:22:06
**Adj Protocol : IPV4 IPV6**
Restart Capable : YES
Suppressed Adj : NO
Peer System Id : 0001.0000.0002
0001.0000.0003 GE0/0/1 0001.0000.0003.02 Up 8s L1 64
**[AR2-isis-1]ipv6 enable topology ipv6**
[AR2-isis-1]dis th
[V200R003C00]
#
isis 1
is-level level-1
network-entity 49.0001.0000.0002.00
#
ipv6 enable topology ipv6
# 再查看,就会发现多拓扑了!
**AR1]dis isis peer verbose**
Peer information for ISIS(1)
System Id Interface Circuit Id State HoldTime Type PRI
-------------------------------------------------------------------------------
0001.0000.0002 GE0/0/0 0001.0000.0002.01 Up 9s L1 64
**MT IDs supported : 0(UP)
Local MT IDs : 0 2**
Area Address(es) : 49
Peer IP Address(es) : 10.0.12.2
Uptime : 01:27:50
Adj Protocol : IPV4
Restart Capable : YES
Suppressed Adj : NO
Peer System Id : 0001.0000.0002
0001.0000.0003 GE0/0/1 0001.0000.0003.02 Up 9s L1 64
**MT IDs supported : 0(DOWN)
Local MT IDs : 2**
Area Address(es) : 49
Peer IPv6 Address(es): FE80::2E0:FCFF:FE82:6241
Uptime : 00:57:02
Adj Protocol : IPV6
Restart Capable : YES
Suppressed Adj : NO
Peer System Id : 0001.0000.0003
TLV和实验
如果想增加ISIS的功能,那就不断的扩展其TLV,ISIS为了支持多拓扑,又增加了四种TLV,如下所示:
TLV类型 | 备注 |
---|---|
TLV-229 | multi-topology identifier |
TLV-222 | multi-topology interfmediate system |
TLV-235 | multi-gopologies reachable ipv4 prefixes |
TLV-237 | multi-topologies reachable ipv6 prefixes |
-
Multi Topology supported(229)下面这是IPV4的单拓扑(hello报文)
-
Multi Topology supported(229)下面这是多拓扑(hello报文)
-
multi topology is reachability(222)显示邻居的ID(LSP)
-
multi topology rachable ipv6 prefiexs(237)(LSP)
实验
AR1和AR3 IPV4和IPV6全都运行,AR2只运行IPV4
-
基础配置
# AR1基础配置 sys sysn AR1 ipv6 isis 1 is-level level-1 network-entity 49.0001.0000.0001.00 ipv6 enable int g0/0/0 ip add 10.0.12.1 24 isis enable 1 int g0/0/1 ip add 10.0.13.1 24 ipv6 enable ipv6 add auto link isis enable 1 isis ipv6 enable 1 int l0 ip add 10.0.1.1 32 ipv6 enable ipv6 add 2::2 128 isis enable 1 isis ipv6 enable 1 quit ---- # AR2基础配置 sys sysn AR2 ipv6 isis 1 is-level level-1 network-entity 49.0001.0000.0002.00 ipv6 enable int g0/0/0 ip add 10.0.12.2 24 isis enable 1 int g0/0/1 ip add 10.0.23.2 24 isis enable 1 int l0 ip add 10.0.2.2 32 isis enable 1 quit # AR3 sys sysn AR3 ipv6 isis 1 is-level level-1 network-entity 49.0001.0000.0003.00 ipv6 enable int g0/0/0 ip add 10.0.23.3 24 isis enable 1 int g0/0/1 ip add 10.0.13.3 24 ipv6 enable ipv6 add auto link isis enable 1 isis ipv6 enable 1 int l0 ip add 10.0.3.3 32 ipv6 enable ipv6 add 3::3 128 isis enable 1 isis ipv6 enable 1 quit
-
验证,邻居已经正常建立,从AR1去往AR3,无论是IPV4还是IPV6全都是走G0/0/1接口
<AR1>dis isis peer Peer information for ISIS(1) System Id Interface Circuit Id State HoldTime Type PRI ------------------------------------------------------------------------------- 0001.0000.0002 GE0/0/0 0001.0000.0002.01 Up 8s L1 64 0001.0000.0003 GE0/0/1 0001.0000.0003.02 Up 9s L1 64 Total Peer(s): 2 <AR1>dis isis route Route information for ISIS(1) ----------------------------- ISIS(1) Level-1 Forwarding Table -------------------------------- IPV4 Destination IntCost ExtCost ExitInterface NextHop Flags ------------------------------------------------------------------------------- 10.0.3.3/32 10 NULL GE0/0/1 10.0.13.3 A/-/-/- 10.0.23.0/24 20 NULL GE0/0/0 10.0.12.2 A/-/-/- GE0/0/1 10.0.13.3 10.0.13.0/24 10 NULL GE0/0/1 Direct D/-/L/- 10.0.2.2/32 10 NULL GE0/0/0 10.0.12.2 A/-/-/- 10.0.12.0/24 10 NULL GE0/0/0 Direct D/-/L/- 10.0.1.1/32 0 NULL Loop0 Direct D/-/L/- IPV6 Dest. ExitInterface NextHop Cost Flags ------------------------------------------------------------------------------- **3::3/128 GE0/0/1 FE80::2E0:FCFF:FE82:6241 10 A/-/-** 2::2/128 Loop0 Direct 0 D/L/- Flags: D-Direct, A-Added to URT, L-Advertised in LSPs, S-IGP Shortcut, U-Up/Down Bit Set
-
修改开销(重点)我们将AR1 G0/0/0接口和AR2的G0/0/1接口的的开销改小
[AR1]int g0/0/0 [AR1-GigabitEthernet0/0/0]isis cost 1 [AR2]int g0/0/01 [AR2-GigabitEthernet0/0/1]isis cost 1
-
再去AR1上查看ISIS的路由表,会发现没有去往3::3的路由条目了,但AR3上10.0.3.3的路由还在,并且指向了R2
<AR1>dis isis route Route information for ISIS(1) ----------------------------- ISIS(1) Level-1 Forwarding Table -------------------------------- IPV4 Destination IntCost ExtCost ExitInterface NextHop Flags ------------------------------------------------------------------------------- **10.0.3.3/32 2 NULL GE0/0/0 10.0.12.2 A/-/-/-** 10.0.23.0/24 2 NULL GE0/0/0 10.0.12.2 A/-/-/- 10.0.13.0/24 10 NULL GE0/0/1 Direct D/-/L/- 10.0.2.2/32 1 NULL GE0/0/0 10.0.12.2 A/-/-/- 10.0.12.0/24 1 NULL GE0/0/0 Direct D/-/L/- 10.0.1.1/32 0 NULL Loop0 Direct D/-/L/- IPV6 Dest. ExitInterface NextHop Cost Flags ------------------------------------------------------------------------------- 2::2/128 Loop0 Direct 0 D/L/- Flags: D-Direct, A-Added to URT, L-Advertised in LSPs, S-IGP Shortcut,
-
解读
dis isis peer verbose <AR1>dis isis peer verbose Peer information for ISIS(1) System Id Interface Circuit Id State HoldTime Type PRI ------------------------------------------------------------------------------- 0001.0000.0002 GE0/0/0 0001.0000.0002.01 Up 7s L1 64 MT IDs supported : 0(UP) # MI ID也是0,说明当前使用IPV4这个路径村 Local MT IDs : 0 Area Address(es) : 49 Peer IP Address(es) : 10.0.12.2 Uptime : 00:15:48 Adj Protocol : IPV4 # AR1认为和AR2之间形成了IPV4的邻居关系 Restart Capable : YES Suppressed Adj : NO Peer System Id : 0001.0000.0002 0001.0000.0003 GE0/0/1 0001.0000.0003.02 Up 7s L1 64 MT IDs supported : 0(UP) # MI ID也是0,说明和AR3之间也使用IPV4这个路径村 Local MT IDs : 0 Area Address(es) : 49 Peer IP Address(es) : 10.0.13.3 Peer IPv6 Address(es): FE80::2E0:FCFF:FE82:6241 Uptime : 00:15:37 Adj Protocol : IPV4 IPV6 # 即使同时运行IPV4和IPV6,依然使用的IPV4的路径树 Restart Capable : YES Suppressed Adj : NO Peer System Id : 0001.0000.0003
思考一下,为什么AR1当前没了去往AR3上的3::3接口的路由条目了呢?是没有收到LSP吗?是收到的LSP里面没有3::3的IP了吗?显示不是,我们可以在AR1上查看一下收到的AR3的LSP,会发现AR3发现的LSP当中明明是有3::3的,如下所示:
-
dis isis lsdb 0001.0000.0003.00-00 verbose <AR1>dis isis lsdb 0001.0000.0003.00-00 verbose Database information for ISIS(1) -------------------------------- Level-1 Link State Database LSPID Seq Num Checksum Holdtime Length ATT/P/OL ------------------------------------------------------------------------------- 0001.0000.0003.00-00 0x00000006 0x4771 753 158 0/0/0 SOURCE 0001.0000.0003.00 NLPID IPV4 NLPID IPV6 AREA ADDR 49 INTF ADDR 10.0.23.3 INTF ADDR 10.0.13.3 INTF ADDR 10.0.3.3 INTF ADDR V6 3::3 Topology Standard NBR ID 0001.0000.0003.01 COST: 10 NBR ID 0001.0000.0003.02 COST: 10 IP-Internal 10.0.23.0 255.255.255.0 COST: 10 IP-Internal 10.0.13.0 255.255.255.0 COST: 10 IP-Internal 10.0.3.3 255.255.255.255 COST: 0 **IPV6 3::3/128 COST: 0** Total LSP(s): 1 *(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended), ATT-Attached, P-Partition, OL-Overload
上面这个问题是根本原因是就是因为IPV4和IPV6共同一棵树,准确的说应该是IPV6还在使用IPV4的路径树,IPV4计算出从R1-R2-R3这条路径,IPV6默认也必须得使用这条路径,但AR2明明不支持IPV6,所以在AR1-AR2-AR3的这条路径上,AR1只能收到AR3发送的IPV4的LSP,却收到不到AR3发送的IPV6和LSP!可是图上明明AR3和AR1有直连接口呀!是这样,AR1和AR3虽然物理上直连,但ISIS通过IPV4先形成逻辑路径树当中没有这根直连线,AR1的ISIS感知的的路径AR1和AR3并没有直连!AR1认为到AR3就只有通过AR2这一条路,所以就算AR1从AR3收到IPV6的LSP也会忽略的!
解决这个问题就得使用多拓扑,非常简单,我们只需要在AR1和AR3的ISIS进程当中打上这个命令:
[AR1-isis-1]ipv6 enable topology ipv6
[AR3-isis-1]ipv6 enable topology ipv6
OK,我们再去AR1上查看ISIS路由表,会发现去往10.0.3.3 走AR2,去往3::3是走与AR3直连的那条路,说明多拓扑生效了,这也就是我们想要的效果,如下所示:
<AR1>dis isis route
Route information for ISIS(1)
-----------------------------
ISIS(1) Level-1 Forwarding Table
--------------------------------
IPV4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
**10.0.3.3/32 2 NULL GE0/0/0 10.0.12.2 A/-/-/-**
10.0.23.0/24 2 NULL GE0/0/0 10.0.12.2 A/-/-/-
10.0.13.0/24 10 NULL GE0/0/1 Direct D/-/L/-
10.0.2.2/32 1 NULL GE0/0/0 10.0.12.2 A/-/-/-
10.0.12.0/24 1 NULL GE0/0/0 Direct D/-/L/-
10.0.1.1/32 0 NULL Loop0 Direct D/-/L/-
IPV6 Dest. ExitInterface NextHop Cost Flags
-------------------------------------------------------------------------------
**3::3/128 GE0/0/1 FE80::2E0:FCFF:FE82:6241 10 A/-/-**
2::2/128 Loop0 Direct 0 D/L/-
Flags: D-Direct, A-Added to URT, L-Advertised in LSPs, S-IGP Shortcut,
U-Up/Down Bit Set
<AR1>dis isis peer verbose
Peer information for ISIS(1)
System Id Interface Circuit Id State HoldTime Type PRI
-------------------------------------------------------------------------------
0001.0000.0002 GE0/0/0 0001.0000.0002.01 Up 9s L1 64
MT IDs supported : 0(UP)
Local MT IDs : 0
Area Address(es) : 49
Peer IP Address(es) : 10.0.12.2
Uptime : 00:21:29
Adj Protocol : IPV4
Restart Capable : YES
Suppressed Adj : NO
Peer System Id : 0001.0000.0002
0001.0000.0003* GE0/0/1 0001.0000.0003.02 Up 8s L1 64
**MT IDs supported : 0(UP) 2(UP) # 两条路径树都UP,说明同时生效了!!**
Local MT IDs : 0 2
Area Address(es) : 49
Peer IP Address(es) : 10.0.13.3
Peer IPv6 Address(es): FE80::2E0:FCFF:FE82:6241
Uptime : 00:21:18
**Adj Protocol : IPV4 IPV6**
Restart Capable : YES
Suppressed Adj : NO
Peer System Id : 0001.0000.0003
Total Peer(s): 2
标签:10.0,ISIS,IPV6,IPV4,ipv6,isis
From: https://www.cnblogs.com/yizhangheka/p/17383226.html