本文档概述了中间系统到中间系统(IS-IS)路由泄漏。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文件规则的更多信息请参见“ Cisco技术提示规则”。
IS-IS路由协议允许路由信息的两级层次结构。可以有多个1级区域通过连续的2级主干互连。路由器可以属于1级、2级或两者。1级链路状态数据库仅包含有关该区域的信息。第2级链路状态数据库包含有关该级别以及每个第1级区域的信息。L1/L2路由器同时包含1级和2级数据库。它向L2通告有关其所属L1区域的信息。每个L1区域实质上是末节区域。发往L1区域外的地址的数据包会路由到最近的L1/L2路由器,以转发到目标区域。当到目的地的最短路径是通过不同的L1/L2路由器时,路由到最近的L1/L2路由器可能会导致次优路由。通过提供将L2信息泄漏或重分发到L1区域的机制,路由泄漏有助于减少次优路由。通过更详细地了解区域间路由,L1路由器可以更好地选择哪台L1/L2路由器转发数据包。
RFC 2966 中定义了路由泄漏,以便与窄度量类型、长度和值(TLV)类型128和130一起使用。IS-IS扩展用于流量工程 ,定义了用于宽度量TLV类型135的路由泄漏。两个草案都定义了/down位,指示TLV中定义的路由是否已泄露。如果上/下位设置为0,则路由在该L1区域内产生。如果未设置上/下位(为0),则路由已从L2重分发到区域。上/下位用于防止路由信息和转发环路。L1/L2路由器不会向L2重新通告设置了上/下位的任何L1路由。
通常,L1路由器将发往本地区域外部地址的数据包转发到最近的L1/L2路由器,这可能导致次优的路由决策。在下面的网络图中,路由器C通过路由器X和Y转发发往区域2和3的所有流量。如果我们假设所有链路的开销为1,所有链路的开销为2,而到达路由器Y的开销为5。同样,路由器D通过路由器B路由路由器X和Y的流量。
当您使用路由泄漏时,有关区域2和3的信息可由路由器A和路由器B重新分发到区域1。这允许路由器C和路由器D选择最佳路径到达区域2和区域3。路由器C现在通过路由器A将流量发送到区域3;这样,在通过路由器A转发到区域2的同时,将开销降到3。同样,路由器D通过路由器C转发到区域2,同时仍通过路由器B路由到区域3。
通过在路由器A和路由器B上启用路由泄漏,路由器C和D能够确定它们到达区域2和区域3的真正成本。路由泄漏使IS-IS能够对发往其他区域的数据包执行“最短路径退出”。
在MPLS-VPN环境中,需要为每个提供商边缘(PE)路由器的环回地址提供可达性信息。PE环回的漏路允许在此类实施中使用多区域层次结构。
路由泄漏也可用于实施粗糙形式的交通工程。通过从特定L1/L2路由器泄漏个别计算机或服务的路由,您可以控制从L1区域到达这些地址的出口点。
Cisco IOS®软件版本12.0S、12.0T和12.1中实施并支持路由泄漏。12.0T和12.1版本使用相同的配置命令。12.0S版本的命令语法不同,但是,在路由器IS-IS配置中输入了这两个命令。您必须创建IP扩展访问列表,以定义哪些路由将从2级泄露到1级。IOS 12.0S仅支持使用135 TLV类型的路由泄漏。如果配置了路由泄漏而未配置宽样式度量,则不会发生路由泄漏。IOS 12.0T和12.1支持使用窄样式或宽样式度量的路由泄漏,但我们建议使用宽样式度量。
下表显示了每个IOS版本的配置命令:
IOS软件版本 | 命令 |
---|---|
12.0S | advertise ip l2-into-l1 <100-199>度量样式宽 注意:第二条语句为必填项。 |
12.0T和12.1 | redistribute isis ip level-2 into level-1 distribute-list <100-199>metric-style wide 注:第二条语句是可选的,但建议使用。 |
泄露的路由在路由表和IS-IS数据库中称为区域间路由。查看路由表时,泄漏的路由标有IA标识。
RtrB# show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route Gateway of last resort is 55.55.55.1 to network 0.0.0.0 i ia 1.0.0.0/8 [115/30] via 55.55.55.1, Serial1/0 i ia 2.0.0.0/8 [115/30] via 55.55.55.1, Serial1/0 i ia 3.0.0.0/8 [115/30] via 55.55.55.1, Serial1/0 i ia 4.0.0.0/8 [115/30] via 55.55.55.1, Serial1/0 55.0.0.0/24 is subnetted, 1 subnets C 55.55.55.0 is directly connected, Serial1/0 i ia 5.0.0.0/8 [115/30] via 55.55.55.1, Serial1/0 7.0.0.0/24 is subnetted, 1 subnets C 7.7.7.0 is directly connected, FastEthernet0/0 44.0.0.0/24 is subnetted, 1 subnets i L1 44.44.44.0 [115/20] via 55.55.55.1, Serial1/0 i*L1 0.0.0.0/0 [115/10] via 55.55.55.1, Serial1/0
在IS-IS数据库中,泄漏的路由标有IP-Rea间标识。
RtrB# show isis database detail IS-IS Level-1 Link State Database: LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL rpd-7206g.00-00 0x00000008 0x0855 898 1/0/0 Area Address: 49.0002 NLPID: 0xCC Hostname: rpd-7206g IP Address: 44.44.44.2 Metric: 10 IP 55.55.55.0/24 Metric: 10 IP 44.44.44.0/24 Metric: 10 IS-Extended rpd-7206a.00 Metric: 20 IP-Interarea 1.0.0.0/8 Metric: 20 IP-Interarea 2.0.0.0/8 Metric: 20 IP-Interarea 3.0.0.0/8 Metric: 20 IP-Interarea 4.0.0.0/8 Metric: 20 IP-Interarea 5.0.0.0/8
在引入128和130 TLV的路由泄漏上/下位之前,默认度量的位8保留用于以下用途:传输时应设置为零,接收时应忽略。第7位(I/E位)用于区分TLV 130中重分发路由的内部和外部度量类型。在IOS版本12.0S及更早版本中,第8位用作I/E位,而不是第7位。这在使用窄型度量时引入了12.0S和12.0T/12.1版本之间的几个互操作性差异。
运行IOS 12.0T或12.1的路由器识别上/下位,并相应地处理路由,无论该路由器上是否配置了路由泄漏。如果L1或L1/L2路由器未运行IOS 12.0T或12.1代码,则使用metric-type external重分发路由,它会将默认度量的位8设置为1。运行12.0T或12.12.1的L1/L2路由器看到位8(上/下位),并将其解释为具有被泄露了。因此,该路由不会在该路由器的L2 LSP中重新通告。这可能导致路由信息不在整个网络中传播的不理想效果。
相反,如果某条路由被运行IOS 12.0T或12.1的路由器泄漏到L1,它会将位8设置为1。在运行IOS 12.0S或更早版本的L1区域中,路由器会看到已设置位8,并将该路由视为具有度量类型外部路由。运行IOS版本12.0S或更低版本的L1/L2路由器在其L2 LSP中重新通告该路由,因为它不将第8位识别为up/down位。这可能导致路由环路。
以下示例演示了这些不规范之处。RtrA运行IOS版本12.1,并使用窄型度量泄露了多条路由。RtrB运行IOS 12.0S,并使用metric-type external重分发多条路由。
在RtrA上,从RtrB重分发的路由被错误地视为区域间路由:
RtrA# show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route Gateway of last resort is not set i L2 1.0.0.0/8 [115/20] via 44.44.44.1, ATM3/0 i L2 2.0.0.0/8 [115/20] via 44.44.44.1, ATM3/0 i L2 3.0.0.0/8 [115/20] via 44.44.44.1, ATM3/0 i L2 4.0.0.0/8 [115/20] via 44.44.44.1, ATM3/0 55.0.0.0/24 is subnetted, 1 subnets C 55.55.55.0 is directly connected, Serial1/0 i L2 5.0.0.0/8 [115/20] via 44.44.44.1, ATM3/0 7.0.0.0/24 is subnetted, 1 subnets C 7.7.7.0 is directly connected, FastEthernet0/0 i ia 110.0.0.0/8 [115/138] via 55.55.55.2, Serial1/0 44.0.0.0/24 is subnetted, 1 subnets C 44.44.44.0 is directly connected, ATM3/0 i ia 120.0.0.0/8 [115/138] via 55.55.55.2, Serial1/0 i ia 140.0.0.0/8 [115/138] via 55.55.55.2, Serial1/0 i ia 130.0.0.0/8 [115/138] via 55.55.55.2, Serial1/0 i ia 150.0.0.0/8 [115/138] via 55.55.55.2, Serial1/0
在RtrB上,RtrA泄漏的路由被错误地视为外部:
RtrB# show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR Gateway of last resort is 55.55.55.1 to network 0.0.0.0 i L1 1.0.0.0/8 [115/158] via 55.55.55.1, Serial1/0 i L1 2.0.0.0/8 [115/158] via 55.55.55.1, Serial1/0 i L1 3.0.0.0/8 [115/158] via 55.55.55.1, Serial1/0 i L1 4.0.0.0/8 [115/158] via 55.55.55.1, Serial1/0 55.0.0.0/24 is subnetted, 1 subnets C 55.55.55.0 is directly connected, Serial1/0 i L1 5.0.0.0/8 [115/158] via 55.55.55.1, Serial1/0 7.0.0.0/24 is subnetted, 1 subnets C 7.7.7.0 is directly connected, FastEthernet0/0 S 110.0.0.0/8 is directly connected, Null0 44.0.0.0/24 is subnetted, 1 subnets i L1 44.44.44.0 [115/20] via 55.55.55.1, Serial1/0 S 120.0.0.0/8 is directly connected, Null0 i*L1 0.0.0.0/0 [115/10] via 55.55.55.1, Serial1/0 S 140.0.0.0/8 is directly connected, Null0 S 130.0.0.0/8 is directly connected, Null0 S 150.0.0.0/8 is directly connected, Null0
如果不将重分发与度量类型外部一起使用,则不设置第8位。此解决方法可防止运行IOS 12.1的L1/L2路由器在其L2 LSP中不重新通告重分发的路由。如果使用宽度度量,则运行IOS 12.0S的路由器能够识别上下位。此解决方法可防止12.0S路由器在128和130 TLV类型中不识别上/下位时引入路由环路。
此外,窄样式度量仅为6位,而宽样式度量使用的32位。使用窄型度量时,许多区域间路由可能以最大内部度量63泄漏,而不管真实度量如何。出于这些原因,我们建议避免使用度量类型外部和使用宽样式度量进行重分发。