IS-IS (IPv6)概述
ISIS是一种IGP协议。
ISIS使用SPF算法计算路由。
ISIS的报文采用TLV结构,因此扩展性很好。
- 为支持新的协议和特性,只需要扩展新的TLV或子TLV。
- 可以轻松扩展支持IPv6,TE,MT等协议和特性。
- IS-IS对IPv6的支持不需要对协议做大的改动,因此协议的继承性很好;不像OSPF,为支持IPv6需要开发全新的协议OSPFv3。
IS-IS最初是为OSI网络设计的一种基于链路状态协议的动态路由协议。之后为了提供对IPv4的路由支持,扩展应用到IPv4网络,称为集成IS-IS。
IS-IS报文有以下几种类型:Hello PDU(Protocol Data Unit)、LSP和SNP。
- 报文格式为:
IS-IS报文中的变长字段部分是多个TLV(Type-Length-Value)三元组,使用TLV结构构建报文使IS-IS更具灵活性和扩展性,增加新特性只需要增加新TLV即可。
为了支持IPv6路由的处理和计算,IS-IS新增了两个TLV(Type-Length-Value)和一个NLPID(Network Layer Protocol Identifier,网络层协议标识符)。
新增TLV
232号TLV(IPv6 Interface Address)字段解释:
- Type:8bit,TLV类型,此时值为232(0xE8)。
- Length:8bit,TLV的Value部分长度。
- Interface Address:128bit,IPv6地址。
236号TLV(IPv6 Reachability)字段解释:
- Type:8bit,TLV类型,此时值为236(0xEC)。
- Length:8bit,TLV的Value部分长度。
- Metric:32bit,度量值。
- U:1bit,Up/Down位,标识这个前缀是否是从高Level通告下来的。
- X:1bit,External Original位,标识这个前缀是否是从其他路由协议中引入的。
- S:1bit,Sub-TLV Present位,子TLV标识位(可选)。
- R:5bit,Reserve位,保留位。
- Prefix Length:8bit,前缀长度。
- Prefix:IPv6地址前缀。
- Sub-TLV Length:8bit,子TLV长度。若S位置1,则存在。
- Sub-TLV:子TLV。若S位置1,则存在。
129号TLV中新增NLPID
为了支持IPv6路由的处理和计算,IS-IS在129号TLV中新增了一个NLPID。
129号TLV(Protocol Supported)
IS-IS多拓扑技术背景
缺省情况下,在运行IS-IS的网络环境中,IPv4和IPv6的混合拓扑被看成是一个集成的拓扑,IS-IS针对IPv4和IPv6经计算形成相同的最短路径树。
IS-IS单拓扑存在的问题:
混合拓扑中的一些路由器和链路不支持IPv6协议,但是支持双协议栈的路由器无法感知到这些路由器和链路,仍然会把IPv6报文转发给它们,这就导致IPv6报文因无法转发而被丢弃。
同样,存在不支持IPv4的路由器和链路时,IPv4报文也无法转发。
IS-IS单拓扑的不足之处:
- 网络部署不适合拓扑分离。
- 为维护相同的拓扑,所有接口都必须同时运行IS-IS(IPv4)和IS-IS(IPv6),部署不够灵活。
- 不能使用IPv4区域来连接不同的IPv6区域,即无法通过IPv4网络解决IPv6孤岛问题。
IS-IS多拓扑概述(单拓扑中的ipv4,ipv6共用一个spt树)
IS-IS多拓扑(Multi-Topology,MT)特性是指在一个IS-IS自治域内运行多个独立的IP拓扑。例如IPv4拓扑和IPv6拓扑,而不是将它们视为一个集成的单一拓扑。这有利于IS-IS在路由计算中根据实际组网情况来单独考虑IPv4和IPv6网络。根据链路所支持的IP协议类型,不同拓扑运行各自的SPF计算,实现网络的相互屏蔽。
IS-IS多拓扑的实现过程
- 建立拓扑:通过报文交互建立邻居,从而建立多拓扑。
- SPF计算:在不同的拓扑上分别进行SPF计算。
IS-IS的多拓扑特性可以解决单拓扑的不足之处。
IS-IS多拓扑原理
IS-IS定义了新的TLV,该TLV中包含接口所属拓扑信息(MT信息)。MT信息的传播,使得网络按不同的拓扑分别进行SPF计算,最终实现拓扑分离。(isis中所有的路由器都开启了ipv6,ipv4在多拓扑中,会生成两颗spt树)
229号多拓扑TLV:
IS-IS为了支持多拓扑特性,定义了多种TLV,包括:多拓扑TLV、多拓扑中间系统TLV、多拓扑可达的IPv4前缀TLV和多拓扑可达的IPv6前缀TLV。
多拓扑TLV:
- 多拓扑TLV仅包含在IIH报文和LSP的0分片报文中。
- 预留的MT ID字段:
- MT ID=0,用于标准IPv4拓扑。
- MT ID=2,预留给IPv6拓扑。
ISIS路由协议主要可以分为以下几个方面:
- 邻居的建立,
- 路由可达(Prefix Reachable)与路由器可达(IS Reachable)的发布,
- SPF计算以及路由计算。
为了达到多拓扑的相互隔离,以上几个方面均要求携带MT参数以满足这一要求(SPF计算与路由计算在路由器内识别完成)。
于是,draft-ietf-isis-wg-multi-topology-11中定义了四种新的TLV分别满足以上过程,实现了通用环境下的ISIS MT的交互过程。
新增四个TLV
- TLV 229 – Multi-Topology Identifier
- TLV 222 – Multi-Topologies Intermediate System
- TLV 235 – Multi-Topologies Reachable IPv4 Prefixes
- TLV 237 – Multi-Topologies Reachable IPv6 Prefixes
Reserved MT ID Values
配制命令:ipv6 enable topology ipv6
IS-IS for IPv6基本配置(华为设备):
执行命令isis [ process-id ],创建IS-IS进程并进入IS-IS视图。
执行命令network-entity net,设置网络实体名称。建议将Loopback接口的地址转化为NET,保证NET在网络中的唯一性。如果网络中的NET不唯一,容易引发路由振荡,因此要做好前期网络规划。IS-IS在建立Level-2邻居时,不检查区域地址是否相同,而在建立Level-1邻居时,区域地址必须相同,否则无法建立邻居。
执行命令ipv6 enable,使能IS-IS进程的IPv6能力。
执行命令is-level { level-1 | level-1-2 | level-2 },设置设备的Level级别。 缺省情况下,设备的Level级别为level-1-2。
华为设备缺省配置如下:
测试实验:
实验背景:
R1和R2建立ISISv6邻接关系,并且R2能够学习到R1的L0接口地址。
在R1上:
首先全局开启IPv6,然后在ISIS中正常配置即可
isis 1
is-level level-2
network-entity 49.0001.0000.0000.0000.0002.00
进入接口开启IPv6,然后使能ISIS ipv6
interface GigabitEthernet0/0/0
ipv6 enable
ipv6 address auto link-local //需要生成一个本地链路地址,不需要全球单播地址,和OSPFv3相同
isis ipv6 enable 1
isis circuit-level level-2 //只发送level-2的报文,建立level-2的邻居关系,优先级大于全局配置
创建一个回环口,通告进入ISIS
interface LoopBack0
ipv6 enable
ipv6 address 2001::1/64
isis ipv6 enable 1
在R2上:
isis 1
is-level level-2
network-entity 49.0001.0000.0000.0000.0001.00
interface GigabitEthernet0/0/0
ipv6 enable
ipv6 address auto link-local
isis ipv6 enable 1
isis circuit-level level-2
isis dis-priority 100 //设置优先级(0-127)越大越优先,成为DIS
查看命令:
执行display isis peer [ verbose ] [ process-id | vpn-instance vpn-instance-name ]命令,查看IS-IS的邻居信息。
执行display isis interface [ verbose ] [ vpn-instance vpn-instance-name ]命令,查看使能了IS-IS的接口信息。
执行display isis route [ process-id | vpn-instance vpn-instance-name ] ipv6 [ verbose | [ level-1 | level-2 ] | ipv6-address [ prefix-length ] ] *命令,查看IS-IS的路由信息。
ipv6 enable [ topology { compatible [ enable-mt-spf ] | ipv6 | standard } ]
参数 | 参数说明 | 取值 |
topology | 用于指定网络的拓扑类型。 | - |
compatible | 指定拓扑类型为兼容模式,即兼容标准拓扑和IPv6拓扑。IS-IS形成IPv6邻接关系,发布IPv6和标准拓扑链路。但是SPF只在标准拓扑上运行。该模式有助于从标准拓扑到IPv6拓扑的过渡。 | - |
enable-mt-spf | 指定兼容模式时在IPv6拓扑上运行SPF。 | - |
ipv6 | 指定拓扑类型为IPv6拓扑,即在IPv6拓扑上使能IS-IS进程的IPv6。网络中的链路可以配置成IPv4或IPv6,但SPF计算在各自的拓扑中单独进行。 | - |
standard | 指定拓扑类型为标准模式,即在集成拓扑上使能IS-IS进程的IPv6。网络管理员必须保证网络中所有的链路支持一致的拓扑模式。缺省情况下,使能IPv6选择standard参数。 | - |