第4章 核心路由協議IS-IS
IS-IS(Intermediate System-to-Intermediate System),即中間系統到中間系統,是爲ISO無鏈接網絡協議(ISO’s connectionless network protocol , CLNP)設計的路由選擇協議。ISIS協議的時間和OSPF發佈的時間基本同一時期,稍早或者稍遲一點。其本意是支持從TCP/IP協議棧向OSI的轉換,可是前者卻成爲了實際的工業標準,而ISIS如今更多的做爲服務應用商網絡的IGP的層面。它是ISO定義的OSI協議棧中無鏈接網絡服務CLNS,(Connectionless Network Service)的一部分,用於動態路由數據包。
IS-IS協議直接封裝在2層之上,但目的是創建、更新和維護用於轉發3層報文的路由表。現代的IS-IS,咱們精確一些應該稱之爲集成IS-IS,主要目的是和居於業界主導地址的IP融合,其內部和外部路由的AD值都爲115(在思科設備上)。ISIS具有一個複合的頭部,被封裝在TLV(類型、長度和值)中,這一點使得IS-IS相對OSPF具有很好的靈活性和可擴展性。如圖4-1爲一個具體的IS-IS報文,讀者能夠從這個實際的報文看到IS-IS的報文結構。
圖4-1 一個實際的IS-IS報文
在前文中咱們提到過IS-IS協議是基於ISO組織發佈的OSI模型完成的,在思科系統成長的過程當中,它經歷了那個融合的時代,因此在傳統IOS上還能夠支持CLNS協議,而IOS XR系統已經再也不支持CLNS了。讀者能夠忽略掉CLNS協議,由於如今依舊是IP的天下。以下的例子說明了一個CLNS的實施用以知足讀者的好奇心
IOS#show clns route //若是讀者實施了CLNS協議,那麼你會看到節點路由。
Codes: C - connected, S - static, d - DecnetIV
I - ISO-IGRP, i - IS-IS, e - ES-IS
B - BGP, b - eBGP-neighborredis
C 49.1256.0000.0000.6666.00 [1/0], Local IS-IS NET
C 49.1256 [2/0], Local IS-IS Area數據庫
i 49.1356 [110/10]
via SW1, GigabitEthernet0/1
i 49.2222 [110/20]
via SW1, GigabitEthernet0/1
關於IS-IS的一些基本術語,讀者能夠參考表5-1
縮略語 英文全名 中文解釋
IS-IS Intermediate System-to-Intermediate System intra-domain routing information exchange protocol 中間系統到中間系統的域內路由信息交換協議
PDU Protocol Data Unit 協議數據單元
IIH PDU Intermediate System-to-Intermediate System Hello PDU IS-IS Hello協議報文
LSP Link State Protocol Data Unit 鏈路狀態協議數據單元
LSDB Link State Database 鏈路狀態數據庫
SNP Sequence Numbers PDU 序列號報文
PSNP Partial Sequence Numbers PDU 部分序列號報文
CSNP Complete Sequence Numbers PDU 徹底序列號報文
NET Network Entity Title 網絡實體標題
表4-1 IS-IS的一些基本術語
在接下來的實驗中讓咱們一步步理解IS-IS這個偉大的協議。
4.1 單級別的IS-IS實施
和OSPF這個鏈路狀態協議相似,IS-IS協議也是劃分層次的,IS-IS的層次稱之爲Level。L2做爲骨幹區域,L1做爲非骨幹區域,區域ID再也不用做區分骨幹和非骨幹(這點上讀者熟悉的OSPF用區域0來做爲骨幹區域)。一箇中間系統能夠是一臺第1層的路由器(L1)、一臺第2層的路由器(L2)或者兩種類型皆是的路由器(Ll/L2)。
L1/2路由器相似於OSPF協議中的ABR路由器(更確切的是標識鄰居狀態)
L1/L2路由器必須同時維護一個L1的鏈路狀態數據庫和一個L2的鏈路狀態數據庫
Cisco路由器默認爲一個L1/L2路由器
若是站在功能性的角度來區分不用的IS-IS路由器類型,讀者能夠從以下角度去思考:L2路由器:傳輸區域或者實現對外部路由域的鏈接
L1路由器:關心本域拓撲結構.
Level-1-2路由器:L1路由器經過L1/L2路由器訪問其它區域,而且轉發所在區域外的目的網絡的數據包到最近的L1/L2路由器
正是基於如上規則,因此IS-IS協議在不一樣層次間路由更新規則:
區域間的通訊都必須經過L2(須要注意的是ISIS不存在虛鏈路,各個廠商都不支持該特性,主要的緣由在於IS-IS的網絡須要設計完整和提早規劃,而扁平化網絡不須要不穩定的虛鏈路來支撐)
默認,L1/L2路由器不把L2明細路由通告給L1,L1類比OSPF的末節區域
在下面的案例中咱們在圖4-2上的XR1和XR2實施IS-IS協議。在本章後續的實施中都以該圖做爲邏輯拓撲用以實驗。
圖4-2 IS-IS邏輯拓撲
4.1.1 基礎配置
請讀者自行完成IP地址並測試連通性網絡
RP/0/0/CPU0:PE-XR1#sh run int interface Loopback0 ipv4 address 11.1.1.1 255.255.255.255 ipv6 address 2011::1/128 ! interface MgmtEth0/0/CPU0/0 ! interface GigabitEthernet0/0/0/0 ipv4 address 12.1.1.1 255.255.255.0 ipv6 enable ! interface GigabitEthernet0/0/0/1 ipv4 address 13.1.1.1 255.255.255.0 ipv6 address 2013::1/64 ! RP/0/0/CPU0:ASBR-2#sh run int Wed Sep 14 22:49:21.450 UTC interface Loopback0 ipv4 address 22.1.1.1 255.255.255.255 ipv6 address 2022::2/128 ! interface MgmtEth0/0/CPU0/0 shutdown ! interface GigabitEthernet0/0/0/0 ipv4 address 23.1.1.2 255.255.255.0 ipv6 address 2023::2/64 ! interface GigabitEthernet0/0/0/1 shutdown ! interface GigabitEthernet0/0/0/2 ipv4 address 12.1.1.2 255.255.255.0 ipv6 address 2012::2/64
測試直連地址的連通性:
RP/0/0/CPU0:ASBR-2#ping 12.1.1.1
Wed Sep 14 22:52:29.037 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/8/39 ms
讀者能夠從中看到咱們熟悉的編址方式:環回口0爲XX.1.1.1/32,直連地址爲XY.1.1.X/24.後續地址請讀者自行完成。
4.1.2 實施IS-IS
咱們在XR1和XR2上實施IS-IS,NET地址已經標識完畢
關於NET地址,即網絡實體標題,其格式如圖4-3所示
圖4-3 網絡實體標題格式示意圖
NET地址,該地址包含了區域ID和系統ID,而它本質上是一個ISO地址,最後的SEL相似於TCP的端口號,永遠的做爲00出現。沒有NET地址ISIS沒法運行。如下爲如下關於NET地址的硬性規定:
AFI(受權和格式標識符)必須爲1字節
區域ID字段可變長,介於0到12字節之間
系統ID位必須爲6字節,並且在域內惟一
SEL地址必須爲1字節(永爲00)
實施:app
XR1: router isis QYT //啓動IS-IS協議,在XR設備上必須攜帶本地意義的TAG標識,此處爲QYT net 49.1356.0000.0000.1111.00 //實施NET地址 log adjacency changes //XR系統上當鄰居發生變化時產生日誌的命令 interface Loopback0 address-family ipv4 unicast //該接口運行IS-IS協議,並同時把該接口的網絡通告到IS-IS數據庫 ! ! interface GigabitEthernet0/0/0/0 address-family ipv4 unicast XR2: router isis QYT net 49.2222.0000.0000.2222.00 log adjacency changes interface Loopback0 address-family ipv4 unicast ! ! interface GigabitEthernet0/0/0/2 address-family ipv4 unicast ! 驗證IS-IS的鄰居 RP/0/0/CPU0:PE-XR1#show isis neighbors Wed Sep 14 23:09:13.568 UTC IS-IS QYT neighbors: System Id Interface SNPA State Holdtime Type IETF-NSF ASBR-2 Gi0/0/0/0 5000.000a.0003 Up 7 L2 Capable RP/0/0/CPU0:ASBR-2#show isis neighbors Wed Sep 14 23:11:56.277 UTC IS-IS QYT neighbors: System Id Interface SNPA State Holdtime Type IETF-NSF PE-XR1 Gi0/0/0/2 5000.0009.0001 Up 22 L2 Capable 驗證IS-IS的簡要信息 RP/0/0/CPU0:ASBR-2#show isis protocol Wed Sep 14 23:12:09.366 UTC IS-IS Router: QYT //路由協議進程 System Id: 0000.0000.2222 //NET地址的系統ID IS Levels: level-1-2 //該路由器默認爲L1/L2設備 Manual area address(es): 49.2222 Routing for area address(es): //區域ID 49.2222 Non-stop forwarding: Disabled Most recent startup mode: Cold Restart Topologies supported by IS-IS: IPv4 Unicast Level-1 Metric style (generate/accept): Narrow/Narrow Metric: 10 ISPF status: Disabled Level-2 Metric style (generate/accept): Narrow/Narrow Metric: 10 ISPF status: Disabled No protocols redistributed Distance: 115 //IS-IS默認的管理距離爲115 Advertise Passive Interface Prefixes Only: No Interfaces supported by IS-IS: //已經激活的IS-IS接口 Loopback0 is running actively (active in configuration) GigabitEthernet0/0/0/2 is running actively (active in configuration)
驗證IS-IS的路由 RP/0/0/CPU0:ASBR-2#show route isis Wed Sep 14 23:13:44.450 UTC i L2 11.1.1.1/32 [115/20] via 12.1.1.1, 00:06:19, GigabitEthernet0/0/0/2 RP/0/0/CPU0:PE-XR1#show route isis Wed Sep 14 23:13:57.129 UTC i L2 22.1.1.1/32 [115/20] via 12.1.1.2, 00:06:35, GigabitEthernet0/0/0/0 數據報文測試,能夠正常傳送: RP/0/0/CPU0:PE-XR1#ping 22.1.1.1 source 11.1.1.1 Wed Sep 14 23:14:46.276 UTC Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 22.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/9 ms 實施SW5的IS-IS interface Ethernet0/3 switchport access vlan 15 switchport mode access ! interface Ethernet1/0 switchport access vlan 25 switchport mode access ! interface Vlan15 description Conn**XR1 ip address 15.1.1.5 255.255.255.0 ! interface Vlan25 description Conn**XR2 ip address 25.1.1.5 255.255.255.0 ! SW5(config)#router isis SW5(config-router)#net 49.1356.0000.0000.5555.00 SW5(config-router)#log-adjacency-changes SW5(config-router)#exi SW5(config)#interface vlan 15 SW5(config-if)#ip router isis //在鏈接XR的SVI接口下實施IS-IS協議 SW5(config-if)#int vlan 25 SW5(config-if)#ip router isis 配置XR1和XR2,XR1: interface GigabitEthernet0/0/0/2 ipv4 address 15.1.1.1 255.255.255.0 no shutdown ! router isis QYT interface GigabitEthernet0/0/0/2 address-family ipv4 unicast //把鏈接交換機的接口使能IS-IS協議 XR2: interface GigabitEthernet0/0/0/4 ipv4 address 25.1.1.2 255.255.255.0 ! router isis QYT interface GigabitEthernet0/0/0/4 address-family ipv4 unicast //把鏈接交換機的接口使能IS-IS協議 驗證SW5設備的IS-IS鄰居和路由表 SW5#show isis neighbors *Sep 15 08:48:19.176: %SYS-5-CONFIG_I: Configured from console by console SW5#show isis neighbors System Id Type Interface IP Address State Holdtime Circuit Id PE-XR1 L1 Vl15 15.1.1.1 UP 23 SW5.01 PE-XR1 L2 Vl15 15.1.1.1 UP 26 SW5.01 ASBR-2 L2 Vl25 25.1.1.2 UP 28 SW5.02 SW5#show ip route isis Codes: L - local, C - connected, S - static, 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 i - IS-IS, su - IS-IS summary, 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, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override Gateway of last resort is not set 11.0.0.0/32 is subnetted, 1 subnets i L1 11.1.1.1 [115/20] via 15.1.1.1, 00:22:54, Vlan15 12.0.0.0/24 is subnetted, 1 subnets i L1 12.1.1.0 [115/20] via 15.1.1.1, 00:22:54, Vlan15 22.0.0.0/32 is subnetted, 1 subnets i L2 22.1.1.1 [115/20] via 25.1.1.2, 00:23:07, Vlan25
4.2 IS-IS的網絡類型less