本文档介绍中间系统到中间系统(IS-IS)类型长度值(TLV)及其使用。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
IS-IS最初设计用于开放式系统互联(OSI)路由,它使用TLV参数在链路状态数据包(LSP)中传输信息。 TLV使IS-IS可扩展。因此,IS-IS可以在LSP中传输不同类型的信息。根据ISO 10589的定义,IS-IS仅支持无连接网络协议(CLNP)。 但是,IS-IS在RFC 1195 中通过注册TLV 128扩展了IP路由,该TLV 128包含一组12个二进制八位数字段,用于传输IP信息。
在IS-IS协议数据单元(PDU)中,报头有一个固定的可变部分。报头的固定部分包含始终存在的字段,报头的可变部分包含TLV,该TLV允许对链路状态记录中的参数进行灵活编码。这些字段包括一组表示类型 (T) 的八位位组、一组表示长度 (L) 的八位位组、以及“L”组表示值 (V) 的八位位组。 “Type”字段指示“Value”字段中项目的类型。Length 字段指示Value字段的长度。“值”字段是数据包的数据部分。并非所有的路由器设备都支持所有的 TLV,但它们必须能忽略以及重新传输被忽略的类型。
如RFC 1195所述 ,TLV 128扩展了IS-IS以传送IP,除了无连接网络服务(CLNS)外,还在同一数据包中传送路由信息。DEC还通过TLV 42实现了对IS-IS的扩展。此扩展允许IS-IS保存有关DECnet第IV阶段网络的信息。将来可能会实施新的TLV,允许CLNS传输IPv6路由信息。
多种路由协议使用TLV来传输各种属性。思科发现协议(CDP)、标签发现协议(LDP)和边界网关协议(BGP)是使用TLV的协议的示例。BGP使用TLV来传输网络层可达性信息(NLRI)、多出口鉴别器(MED)和本地优先级等属性。
可变长度字段的编码如下:
字段 | 八位组数 |
---|---|
类型 | 1 |
长度 | 1 |
价值 | 长度 |
RFC 1142第9部分(ISO 10589的修订版)详细介绍了每种IS-IS PDU的数据包布局以及每种类型支持的TLV。 所有IS-IS PDU的前八个二进制八位数是所有PDU类型通用的报头字段。TLV信息存储在PDU的最末。不同类型的PDU具有一组当前定义的代码。任何未识别的代码都应忽略并不更改地传递。
IS-IS PDU类型和有效代码值的定义已建立。ISO 10589定义类型代码1到10。RFC 1195 定义类型代码128到133。
注意:RFC 1195中指定了TLV代码133(身份验证信息),但思科改用ISO代码10。 此外,TLV代码4用于分区修复,思科不支持。
思科实施大多数TLV。但是,在某些情况下,草案或低需求TLV未实施。以下是思科实施的常见TLV的说明。
TLV | 名称 | 描述 |
---|---|---|
1 | 区域地址 | 包括中间系统所连接的区域地址。 |
2 | IIS邻居 | 包括路由器所连接的所有运行接口的IS-IS。 |
8 | 填充 | 主要用于IS-IS Hello(IIH)数据包,以检测最大传输单位(MTU)不一致。默认情况下,IIH数据包填充到接口的最完整MTU。 |
10 | 身份验证 | 用于验证PDU的信息。 |
22 | TE IIS邻居 | 将最大度量增加到三个字节(24位)。 此TLV称为扩展IS可达性TLV,可解决TLV 2度量限制。TLV 2的最大度量为63,但仅使用八位中的六位。 |
128 | IP Int.可达性 | 通过一个或多个内部源接口提供给定路由器知道的所有已知IP地址。此信息可能出现多次。 |
129 | 支持的协议 | 传输IS(中间系统)支持的网络层协议的网络层协议标识符(NLPID)。它指支持的数据协议。例如,IPv4 NLPID值0xCC、CLNS NLPID值0x81和/或IPv6 NLPID值0x8E将在此NLPID TLV中通告。 |
130 | IP分机地址 | 提供给定路由器通过一个或多个外部源接口知道的所有已知IP地址。此信息可能出现多次。 |
132 | IP Int.地址 | 用于到达下一跳地址的IP接口地址。 |
134 | 路由器ID | 这是多协议标签交换(MPLS)流量工程路由器ID。 |
135 | TE IP可达性 | 提供32位度量,并为L2->L1的路由泄漏导致的“up/down”添加一位。此TLV称为扩展IP可达性TLV,可解决TLV 128和TLV 130的问题。 |
137 | 动态主机名 | 标识发起链路状态数据包(LSP)的路由器的符号名称。 |
10 和 133 | TLV 10应用于身份验证;而不是TLV 133。如果收到TLV 133,则在接收时会忽略它,就像其他未知TLV一样。TLV 10应仅接受身份验证。 |
名称 | TLV | IIH | SNP | L1 LSP | L2 LSP | 源 |
---|---|---|---|---|---|---|
区域地址 | 1 | Yes | 无 | Yes | Yes | ISO 10589 |
IIS邻居 | 2 | 无 | 无 | Yes | Yes | ISO 10589 |
ES邻居 | 3 | 无 | 无 | Yes | 无 | ISO 10589 |
部分。DIS | 4 | 无 | 无 | Yes | ISO 10589 | |
前缀邻居 | 5 | 无 | 无 | Yes | ISO 10589 | |
IIS邻居 | 6 | Yes | 无 | Yes | ISO 10589 | |
填充 | 8 | Yes | 无 | 无 | 无 | ISO 10589 |
LSP条目 | 9 | 无 | Yes | 无 | 无 | ISO 10589 |
身份验证 | 10 | Yes | Yes | Yes | Yes | ISO 10589 |
选择校验和 | 12 | Yes | Yes | Yes | Yes | draft-ietf-isis-wg-snp-checksu |
LSPBufferSize | 14 | Yes | 无 | SIF-DRAFT | ||
TE IIS邻居 | 22 | 无 | 无 | draft-ietf-isis-traffic-04.txt | ||
HMAC-MD5真实 | 54 | draft-ietf-isis-hmac-03.txt | ||||
IP Int.覆盖 | 128 | 无 | 无 | Yes | Yes | RFC 1195 |
波特。受支持 | 129 | Yes | 无 | Yes | Yes | RFC 1195 |
IP分机地址 | 130 | 无 | 无 | Yes | Yes | RFC 1195 |
IDRPI | 131 | 无 | Yes | 无 | Yes | RFC 1195 |
IP Intf。地址 | 132 | Yes | 无 | Yes | Yes | RFC 1195 |
身份验证 | *133 | 无 | 无 | 无 | 无 | RFC 1195(非法) |
TE路由器ID | 134 | 无 | 无 | Yes | Yes | draft-ietf-isis-traffic-04.txt |
IP。覆盖 | 135 | 无 | 无 | draft-ietf-isis-traffic-04.txt | ||
动态名称 | 137 | 无 | 无 | RFC 2763 | ||
共享风险链路组 | 138 | draft-ietf-isis-gmpls-extensions-12.txt | ||||
MT-ISN | 222 | 无 | 无 | draft-ietf-isis-wg-multi-topol | ||
M拓扑 | 229 | Yes | 无 | draft-ietf-isis-wg-multi-topol | ||
IPv6 Intf.地址 | 232 | Yes | 无 | draft-ietf-isis-ipv6-02.txt | ||
MT IP。覆盖 | 235 | 无 | 无 | draft-ietf-isis-wg-multi-topol | ||
3路hello | 240 | Yes | 无 | draft-ietf-isis-3way-01.txt | ||
重新启动TLV | 211 | Yes | 无 | 无 | 无 | draft-shand-isis-restart-01.txt |
IPv6可达性 | 236 | 无 | 无 | Yes | Yes | draft-ietf-isis-ipv6-02.txt |
MT IPv6 IP到达 | 237 | 无 | 无 | Yes | Yes | draft-ietf-isis-wg-multi-topol |
p2p 3-way adj. | 240 | Yes | 无 | draft-ietf-isis-3way-06.txt |
子TLV使用与TLV相同的概念。区别在于IS-IS数据包中存在TLV,而TLV中存在子TLV。TLV用于向IS-IS数据包添加额外信息。子TLV用于向特定TLV添加额外信息。每个子TLV包含三个字段。一个二进制八位数的“类型”字段、一个二进制八位数的“长度”字段和零个或多个二进制八位数的“值”。“Type”字段指示“Value”字段中项目的类型。“长度”字段表示“值”字段的长度(二进制八位数)。每个子TLV可能包含多个项目。当每个子TLV的长度已知时,可以从整个子TLV的长度计算子TLV中的项数。未知的子TLV将在接收时忽略和跳过。
大多数子TLV在draft-ietf-isis-traffic-04.txt和draft-ietf-isis-gmpls-extensions-12.txt中定义。
此外,这些子TLV是扩展IS可达性TLV 22的一部分,但子TLV 1是扩展IP可达性TLV 135的一部分除外。子TLV 1在draft-martin-neal-policy-isis-admin-tags-01.txt中定义
以下是子TLV的简要说明:
子TLV | 名称 | 描述 |
---|---|---|
1 | 管理组 | 此子TLV将标记与IP前缀关联。此“标记”的一些示例包括控制级别和区域之间、不同路由协议或接口上的重分发。 |
3 | 管理组 | 如果链路或接口已着色(从流量工程的角度),则该信息由此TLV传输。 |
6 | IPv4接口地址 | 用于流量工程目的的接口IP地址。 |
8 | IPv4邻居地址 | 用于流量工程目的的邻居接口IP地址。 |
9 | 最大链路带宽 | 有关接口的最大链路带宽(用于流量工程目的)。 |
10 | 最大可保留链路带宽 | 可在相关接口上保留的最大带宽量。 |
11 | 未保留的带宽 | 接口上尚未保留的带宽量。 |
18 | 流量工程默认度量 | 为流量工程目的管理性分配的度量。 |
子TLV | TLV | 定义 | 字节 |
---|---|---|---|
管理标签 | 1 | ISIS_ROUTE_ADMIN_TAG | |
管理员.组(颜色) | 3 | ISIS_ADMIN_GROUP | 4 |
传出Int。标识符 | 4 | 4 | |
传入Int。标识符 | 5 | 4 | |
IPv4接口地址 | 6 | ISIS_INTERFACE_IP_ADDRESS | 4 |
接口 MTU | 7 | 2 | |
IPv4邻居地址 | 8 | ISIS_NEIGHBOR_IP_ADDRESS | 4 |
最大链路带宽 | 9 | ISIS_MAXIMUM_LINK_BW | 4 |
最大值.保留链路带宽 | 10 | ISIS_MAXIMUM_LINK_RES | 4 |
未保留的带宽 | 11 | ISIS_CURRENT_BW_UNRESERVED | 32 |
TE默认度量 | 18 | ISIS_TRAFFIC_ENGINEERING_METRIC | 3 |
链路保护类型 | 20 | 2 | |
Int.交换机。功能说明 | 21 | 变量 | |
MT可到达IPv4前缀 | 117 | ||
最大值.链接。雷瑟。子池 | *250 | ISIS_MAXIMUM_LINK_RES_SUB | |
当前BW UnReser。子池 | *251 | ISIS_CURRENT_BW_UNRESERVED_SUB |
*子TLV 250和251是思科特定扩展的一部分,支持MPLS-TE,该MPLS-TE记录在draft-ietf-isis-traffic-04.txt中。这些子TLV在MPLS-TE下的保证带宽应用期间使用。
注意:请始终参阅最新的互联网工程任务组(IETF)草案。本文档中提到的IETF草案可能会有所更改。它可能被更新的版本或RFC替换,或者可能过期。