目录
v4与v6都是ISIS同一个版本,要增加新的技术直接开发新的TLV就可以
对于ISIS来说,IPv6相比于IPv4只是路由计算的方式有变化
ISIS为了支持IPv6路由的处理和计算,新增两个TLV(236号和232号)和一个新的NLPID
NLPID是标识网络层协议报文的一个8bit字段,存放在TLV129中,IPv6的NLPID为142(0x8E),如果ISIS支持IPv6,则向外发布的IPv6报文必须携带NLPID值
ISIS对于IPv6的邻居是通过链路本地地址建立的
描述接口IPv6地址信息,与TLV132作用类似,只不过从32bit变为128bit
使用此TLV可以计算出路由的下一跳(链路本地地址)
传输的地址信息主要分为两类
链路本地地址信息——通过Hello包携带
非链路本地地址信息——通过SNP/CSP包携带
为什么由Hello报文携带链路本地地址,其它报文携带非链路本地地址
- Hello报文只在同一链路本地发送,其它报文会转发到其它链路上(链路本地地址的传播范围为链路本地,无法跨链路)
- 由于Hello报文用来建立邻居关系而ISISv3建立邻居只可以通过链路本地地址来建立
所以,通过Hello报文来携带链路本地地址信息,而其它报文携带非链路本地地址信息
定义路由信息前缀、度量值来描述内/外部路由的路由信息
描述的IPv6路由信息和IPv4的路由信息放在同一LSP中,不会再产生新的LSP
此时ISIS对于IPv6没有新增关于IPv6的拓扑TLV(IPv4为2-窄带和22窄带),IPv6无法生成拓扑信息
所以IPv6就和IPv4共用同一张拓扑(此拓扑由IPv4计算出来),我们就称为此为单拓扑ISIS
IPv6路由计算就使用TLV236和TLV232,不进行IPv6拓扑计算
1、设备配置了IPv4的ISIS,IPv6直接使用PIv4产生的拓扑信息
2、假设设备没有启用IPv4的ISIS,只是配置了IPv6的ISIS,默认会直接使用TLV2来生成拓扑信息供IPv6使用
当只有IPv4时的拓扑计算
当ISIS运行了IPv6之后
直接在IPv4的拓扑上添加IPv6路由信息
此时当R1访问2034::1的路由到达R2是,R2是没有不会发给R3,也不会发给R1,会直接将报文丢弃
为什么R2不会发给R3
R2与R3直连关系,在互相发送Hello报文时,R3发送的Hello包不会携带V6信息,R2就认为R3不支持IPv6功能
R2与R3的v6邻居就建立不起来,所以R2就不会将V6的数据发给R3
为什么R1会选择走R3的路径
由于R1不和R3建立邻居,R1不知道R3不支持IPv6功能
R1根据IPv4的拓扑图就以为自己去往2034::1/64就要将数据包发往R2-R3
为什么R2不会再将数据包发给R1
R2从R1收到的数据包,不会再发给R1,防止环路
单拓扑使用场景
当v4与v6拓扑完全一致时使用,并且设备都支持IPv4与IPv6时使用单拓扑比较可靠
如果拓扑图不一致,就会出现上图的数据包丢弃现象
对于其它场景,此时就需要通过ISIS多拓扑来解决
V4与v6的拓扑分开计算,并且新增了TLV来实现
新增TLV222、TLV237、TLV229来实现多拓扑功能
IPv6路由计算通过TLV 232、TLV 237实现,IPv6拓扑信息通过TLV 222实现
TLV 229来实现支持多拓扑
携带多拓扑的IPv6的拓扑信息
IPv6多拓扑场景下携带IPv6路由信息(包括内部与外部信息)
携带是否支持多拓扑信息
开启ISIS IPv6功能(每台设备都要启用)
Isis [进程号]
network-entity 49.0001.0000.0000.0002.00
ipv6 enable topology [standard/ipv6] 配置单拓扑(standard)和多拓扑(ipv6)
默认ISIS开启IPv6功能后,为单拓扑模式
将接口加入ISIS IPv6中
interface GigabitEthernet0/0/0
ipv6 enable
ipv6 address 2002::1/64
isis ipv6 enable 1