ISIS TLV Cyrus

IS-IS TLV
根据不同的IS-IS PDU类型和特定的网络环境,紧跟在各种类型IS-IS PDU之后的是TLV(Type/Length/Value)字段,PDU报头与TLV字段构成了一个完整的IS-IS PDU。在ISO10589和RFC1195这二种当前IS-IS标准中,使用代码(code)这个词,而不是类型(type),但由于TLV用于其他协议标准中,故TLV比CLV在网络文献中使用的多,在这里我们也使用TVL代替CLV。在IS-IS PDU所使用的各种TLV中,既有ISO 10589中定义的,也有RFC 1195中定义的。ISO中定义的TLV用于CLNP网络环境,但是其中的大多数也用于IP网络环境。RFC中定义的TLV只用于IP环境。对于一个IS-IS PDU,后面既可以携带支持CLNP协议的TLV,又可以携带支持IP协议的TLV。如果一个路由器不能识别一个TLV,那么将忽略它。

Encoding of Variable Length Fields
如上图中所示,TLV中包括Type、Length和Value三个字段:
-Code(Type):表示TLV的类型,不同的TLV使用不同的类型号来区别,Type长度为1字节。
-Length:表示TLV中Value字段的长度,长度为1字节,所以这意味着Value字段长度的最大值为255字节。
-Value:表示实际承载的值,长度是可变的,最大为255字节。
下表中列出了IS-IS中所使用的各种TLV,以及这种TLV由哪种标准进行定义:

对于TLV 4,它用于之前我们介绍的区域修复功能;TLV 133是IETF为IP验证而定义的TLV,但是大多数实现中都使用TLV 10来支持验证。
使用TLV的最大优点就是增强了协议的扩展性,当需要扩展协议的功能时,只需要定义新的TLV就可以。下表中列出了部分IETF为增强IS-IS协议的功能所定义的一些新的TLV。

每种IS-IS PDU都使用特定的TLV,但是有一些TLV也被多种类型的IS-IS PDU所共享,下表中列出了各种IS-IS PDU所使用的TLV:

从上表可以看出,唯一一个被所有IS-IS都使用的是TLV 10,验证信息。下面我们将对这些TLV中一些常用的和重要的TLV进行介绍,关于其他的TLV和扩展的TLV可以参见相应的标准文档。
1.犌虻刂稵LV(TLV 1)
区域地址TLV列出了始发路由器上配置的区域地址。它只出现在非伪节点LSP中。当一台路由器配置了多个区域前缀时,此TLV将携带多个区域地址。
- 类型——1
- 长度——1字节
- 值——nx(1字节的地址长度+可变的区域地址)
如下图所示:从采集到数据的代码中可以看到其值为十六进制01,如红框中所示。

2.犞屑湎低沉诰覶LV(LSP)(TLV 2)
中间系统邻居TLV(LSP)用于LSP PDU中,它列出了始发路由器的IS-IS邻居(包括伪节点)和到达每个邻居的链路的度量值。
- 类型——2
- 长度——1字节
- 值——1字节

3.犞斩讼低沉诰覶LV(TLV 3)
终端系统邻居TLV只用于L1 LSP中,它列出邻接的L1路由器和ES。例如通过ES-IS协议发现运行CLNP协议的工作站。
- 类型——3
- 长度——1字节
- 值——可变

4.犞屑湎低沉诰覶LV(Hello)(TLV 6)
中间系统邻居TLV用于Hello PDU中,它列出了本地路由器所有邻居的SysID。与OSPF中Hello报文中的邻居列表一样,当IS-IS路由器收到其他路由器的Hello PDU后,便将其SysID加入到自己发送的Hello PDU中。在点到点Hello PDU中不使用此TLV,因为在点到点链路中不需要选举DIS。在L1 LAN IIH中只列出L1邻居,同样在L2 LAN IIH中也只列出L2邻居。
- 类型——6
- 长度——1字节
- 值——可变

5.犔畛銽LV(TLV 8)
填充TLV用于所有Hello PDU中。为了建立邻接关系,IS-IS协议与OSPF协议一样都需要双方具有同样的接口MTU(Maximum Transmission Unit,最大传输单元)。这种保持两个邻接的路由器具有同样的MTU的机制是必需的。这样就不会产生由于双方的MTU值不匹配而导致一方不能接收另一方发送的报文。OSPF与IS-IS使用了不同的机制来检查MTU不匹配的情况。在OSPF中,通过在DBD报文中嵌入接口MTU字段使路由器检查MTU是否匹配。在IS-IS中,路由器将Hello PDU的大小填充至接口MTU的大小。由于一个TLV的长度最长为255字节,所以通常会使用多个填充TLV。
- 类型——8
- 长度——1字节
- 值——可变

6.燣SP条目TLV(TLV 9)
LSP条目TLV只用于CSNP和PSNP报文中。它列出了每个LSP的LSP ID、剩余时间、序列号和校验和。这些字段可以唯一的标识出一个LSP的实例。
- 类型——9
- 长度——1字节
- 值——可变

7.犙橹ば畔LV(TLV 10)
验证信息TLV是唯一一个用于所有IS-IS PDU的TLV。验证信息TLV只有在配置了验证时才会使用。路由器通过将密码或者密文插入到IS-IS的PDU中实现路由选择信息交互的安全性。
- 类型——10
- 长度——1字节
- 值——可变

8.營P内部可达性信息TLV(TLV 128)
IP内部可达性信息TLV用于LSP PDU中。它列出了与始发LSP的路由器相直连的IP地址及掩码信息。每个IP前缀都被分配了一个度量值,这个度量值表示该IP前缀对应的链路度量值。该TLV不会出现在伪节点LSP中。

9.犞С值男門LV(TLV 129)
支持的协议TLV用来标识始发路由器所支持的第三层网络层协议,例如仅支持CLNP、仅支持IP或同时支持CLNP和IP。

10.營P外部可达性信息TLV(TLV 130)
与IP内部可达性信息TLV一样,这类TLV也只用于LSP PDU中。它列出了IS-IS路由选择域外部的IP地址和掩码信息。这类路由信息通常都是通过路由重分发引入到IS-IS路由域中的外部路由信息。
11.犛蚣渎酚裳≡裥樾畔LV(TLV 131)
域间路由选择协议(IRDP)信息TLV只用于L2 LSP中。IETF定义此TLV用于支持在IS-IS路由域边界上与其他域间路由选择协议的交互,用来透传来自外部路由选择协议的信息。
12.營P接口地址TLV(TLV 132)
IP接口地址TLV用于列出始发IS-IS PDU的接口的地址(IP地址)。

13.犂┱沟腎S可达性TLV(TLV 22)
IETF后来定义扩展的IS可达性TLV用来代替类型2的中间系统邻居TLV(LSP)。不使用IS-IS扩展度量(使用窄度量)时,只有6bit(0~63)可以用来表示度量值;当使用IS-IS扩展度量(或称作宽度量)时,这个TLV就用来代替类型2的TLV。扩展的IS可达性TLV使用24bit表示度量值,扩大了度量的取值范围。
14.犂┱沟腎P可达性TLV(TLV 135)
与扩展的IS可达性TLV一样,IETF定义扩展的IP可达性TLV用来代替类型128(IP内部可达性TLV)和类型130(IP外部可达性TLV)的TLV。当使用IS-IS扩展度量(宽度量)时,这个TLV就用来代替类型128和类型130的TLV。扩展的IP可达性TLV使用32bit表示度量值。
 

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值