本文檔概述了中間系統到中間系統(IS-IS)路由洩漏。
本文件沒有特定需求。
本文件所述內容不限於特定軟體和硬體版本。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
IS-IS路由協定允許路由資訊的兩級層次結構。連續的第2級主幹可以互連多個第1級區域。路由器可以屬於第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)定義了路由洩漏。Traffic Engineering (用於流量工程)的IS-IS擴展定義了用於寬度量TLV型別135的路由洩漏。這兩個草案都定義了一個上/下位,以指示TLV中定義的路由是否已洩漏。如果上/下位設定為0,則路由源自該L1區域。如果未設定上/下位(為0),則路由已經從L2重新分發到區域中。上/下位用於防止路由資訊和轉發環路。L1/L2路由器不會將任何已設定up/down位的L1路由重新通告到L2。
通常,L1路由器將發往本地區域以外地址的資料包轉發到最近的L1/L2路由器,這可能導致次優路由決策。在下面的網路圖中,路由器C通過路由器X和Y轉發所有發往區域2和3的流量。如果我們假設所有鏈路的開銷為1,所有鏈路的開銷為2,這意味著到達路由器X的開銷為2,到達路由器Y的開銷為5。同樣,路由器D通過路由器B同時路由路由器X和Y的流量。
使用路由洩漏時,路由器A和B可以將有關區域2和3的資訊重新分發到區域1。這樣,路由器C和路由器D就可以選擇到達區域2和區域3的最佳路徑。路由器C現在通過路由器A將流量傳送到區域3;這樣可將開銷降低到3,同時仍然通過路由器A轉發到區域2。同樣,路由器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.0秒 | 通告ip l2-into-l1 <100-199>度量式寬 註:需要第二句話。 |
12.0T和12.1 | 將isis ip level-2重新分發到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-Interarea標識。
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位保留用於以下用途:在傳輸時應該設定為0,並在收到時忽略。第7位(I/E位)用於區分TLV 130中重分發路由的內部和外部度量型別。在IOS版本12.0S及更早版本中,第8位被用作I/E位,而不是第7位。這會在使用窄型度量時,在12.0S和12.0T/12.1版本之間引入一些互操作性差異。
運行IOS 12.0T或12.1的路由器會識別開啟/關閉位,並相應地處理路由,無論該路由器上是否配置了路由洩漏。如果運行IOS 12.0T或12.1代碼的L1或L1/L2路由器使用度量型別外部重新分發路由,則會將預設度量的第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位識別為開啟/關閉位。這可能導致形成路由環路。
這些不規則在下例中得到了證明。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的路由器能夠識別上/下位。此解決方法可防止無法識別型別128和130 TLV中的上/下位的12.0S路由器引入路由環路。
此外,窄型度量只有6位,而寬型度量使用32位。當使用窄型度量時,許多區域間路由可能被洩漏,最大內部度量為63,而與真正的度量無關。出於這些原因,我們建議避免使用度量型別外部的重新分配,而使用寬樣式度量。