IS-IS(IPv6)
相关阅读
IS-IS:https://www.cnblogs.com/hongliang888/p/16290904.html
IS-IS最初是为OSI网络设计的一种基于链路状态协议的动态路由协议。之后为了提供对IPv4的路由支持,扩展应用到IPv4网络,称为集成IS-IS
IS-IS报文的类型:IIH、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)
相当于132号TLV(用于描述IPv4接口地址),只不过把原来的32bit的IPv4地址改为128bit的IPv6地址
在不同的PDU中,接口地址字段的内容是不同的:
- 对于Hello报文,"接口地址"只能包含发送Hello报文接口链路本地地址
- 对于LSP报文,"接口地址"只能包含分配给设备接口的非链路本地地址
字段解释:
- Type:8bit,TLV类型,此时值为232(0xE8)
- Length:8bit,TLV的Value部分长度
- Interface Address:128bit,IPv6地址
236号TLV(IPv6 Reachability)
相当于128号和130号TLV,通过X-bit来表示内/外部可达性信息
上述IPv6 Reachability TLV在LSP中可以出现任意次数(包括0次),其中,链路本地前缀不是用这个TLV来发布
字段解释:
- 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,Reverse位,保留位
- 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)
字段解释:
- Type:8bit,TLV类型,此时值为129(0x81),表示支持协议TLV
- Length:8bit,TLV的Value部分长度
- NLPID:8bit,网络层协议标识符。若支持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(IPv4)和IS-IS(IPv6),部署不够灵活
- 不能使用IPv4区域来连接不同的IPv6区域,即无法通过IPv4网络解决IPv6孤岛问题。
IS-IS多拓扑原理
IS-IS定义了新的TLV,该TLV中包含接口所属拓扑信息(MT信息)。MT信息的传播,使得网络按不同的拓扑分别进行SPF计算,最终实现拓扑分离。
229号多拓扑TLV
重要字段:
- Type:8bit,TLV类型,此时值为229(0xE5),表示支持多拓扑
- O:1bit。Overload,超载位
- A:1bit,Attach,附着位
-
MT ID:表示该接口属于什么拓扑
- MT ID = 0,用于标准IPv4拓扑
- MT ID = 2,预留给IPv6拓扑
注意:多拓扑TLV仅包含在IIH报文和LSP的0分片报文中