IS-IS(Intermediate System to Intermediate System)是一種鏈路狀態路由協議,最初由 ISO(International Organization for Standardization)為 CLNS(Connectionless Network Service)網絡設計。IS-IS 后來被應用于 IP 網絡,并在許多大型服務提供商和企業網絡中得到廣泛使用。與 OSPF 類似,IS-IS 是一個內部網關協議(IGP),適用于大型路由域。學習 IS-IS(Intermediate System to Intermediate System)協議需要了解其多個方面,包括基本概念、工作原理、層次結構、配置方法、路由計算和優化策略等。
IS-IS 的基本概念
IS(Intermediate System):指路由器,在 IS-IS 中稱為中間系統。 ES(End System):指終端設備,如計算機、服務器等。 LSP(Link State PDU):鏈路狀態 PDU,用于攜帶路由信息。 LSDB(Link State Database):鏈路狀態數據庫,存儲網絡拓撲的完整信息。 NSAP(Network Service Access Point):網絡服務訪問點地址,標識網絡設備在網絡層的地址,由于在不同協議中可能使用不同的NSAP形式,因此在不同系統中可以配置不同形式的NSAP地址,但是最多只能配置3個。 TLV(Type-Length-Value):一種數據編碼格式,用于攜帶不同類型的路由信息。
IS-IS 的工作原理
①鄰居發現:IS-IS 路由器通過發送 Hello PDU 來發現并與直接相連的其他 IS-IS 路由器建立鄰居關系。
1)Hello PDU:Hello PDU 在每個 IS-IS 接口上周期性發送,用于發現和維護鄰居關系。 ? 2)鄰居關系建立:當一個路由器接收到來自鄰居的 Hello PDU,并且 Hello PDU 中包含的配置信息(如區域 ID、接口類型等)匹配時,鄰居關系就建立起來。
②鏈路狀態廣告(LSPs):路由器生成 LSPs,描述其鏈路狀態,并通過洪泛機制在整個路由域中傳播。
1)LSP 內容:LSP 包含路由器的標識符、直接相連的鄰居、鏈路成本等信息。 2)LSP 洪泛:LSP 通過洪泛機制傳播到網絡中的每一個路由器。每個路由器在接收到新的 LSP 后,會將其轉發給所有其他鄰居。
③數據庫同步:路由器接收并存儲所有 LSPs,形成鏈路狀態數據庫(LSDB)。
1)數據庫同步:通過交換 LSPs,確保所有路由器的 LSDB 保持一致。當路由器發現其 LSDB 中缺少某些 LSP 時,會向其他路由器請求這些 LSP。 2)LSDB 更新:當網絡拓撲發生變化時(例如,新增或移除鏈路、路由器),對應的 LSP 會被更新,并再次通過洪泛機制傳播。
④路徑計算:使用 SPF(Shortest Path First)算法,根據 LSDB 計算到達每個目的地的最短路徑。
1)SPF 算法:SPF 算法使用 LSDB 中的信息計算出到達每個網絡節點的最短路徑。這個過程通常稱為 Dijkstra 算法。 2)路徑樹:每個路由器根據 SPF 算法生成一個最短路徑樹,描述到達所有其他路由器的最優路徑。
⑤路由更新:根據計算結果更新路由表,并將最佳路徑信息應用于數據轉發。
1)路由表:路由表中記錄了每個目的網絡的下一跳信息和路徑成本。 2)數據轉發:路由器根據路由表中的信息,將數據包轉發到合適的下一跳,最終到達目的地。
IS-IS 的層次結構
IS-IS(Intermediate System to Intermediate System)協議是一個鏈路狀態路由協議,設計時考慮了支持大規模網絡的需求。為此,IS-IS 使用了一個分層架構,將網絡分為多個級別(Levels)。這種分層方法有助于簡化路由計算,減少路由表大小,并提高網絡的可擴展性。
IS-IS 支持兩級路由,用于更好地管理大型網絡:
①Level-1 路由:在局部區域內進行路由,類似于 OSPF 的非骨干區域。Level-1 路由器只與同一區域內的其他 Level-1 路由器交換信息。
②Level-2 路由:在不同區域之間進行路由,類似于 OSPF 的骨干區域。Level-2 路由器負責跨區域路由信息的交換。
③Level-1-2 路由器:同時參與 Level-1 和 Level-2 路由,用于連接不同區域。
IS-IS配置方法
面是一個詳細的 IS-IS 協議配置示例。假設我們有一個簡單的網絡拓撲,由兩個路由器 R1 和 R2 組成,它們通過一個以太網網絡(192.168.1.0/24)互連,每個路由器還有一個內部網絡(R1的內部網路為10.0.0.1/24;R2的內部網絡為20.0.0.1/24),我們將配置 IS-IS 來實現 R1 和 R2 之間的路由。
1.思科
在 R1 上配置 IS-IS
①先配置接口IP
R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip address 192.168.1.1 255.255.255.0
R1(config-if)# no shutdown
?
R1(config)# interface GigabitEthernet0/1
R1(config-if)# ip address 10.0.0.1 255.255.255.0
R1(config-if)# no shutdown
②啟用 IS-IS 進程
R1(config)# router isis 1
R1(config-router)# net 49.0001.0000.0000.0001.00
R1(config-router)# exit
router isis 1:這一行命令用來啟動 IS-IS 路由協議,并為其指定一個進程 ID 1。這個進程 ID 是本地標識,不會在 IS-IS 報文中傳輸。可以是任何整數,通常用來區分同一臺路由器上的多個 IS-IS 進程。
net 49.0001.0000.0000.0001.00:這一行命令用來配置路由器的網絡實體標題(NET,Network Entity Title)。NET 是 IS-IS 路由器的唯一標識,類似于 OSPF 中的 Router ID。NET 是一個 NSAP(Network Service Access Point)地址的一種形式,包含以下部分:
IDP:AFI+IDI ? IDP相當于IP地址中的主網絡號(網段) 1)AFI(Authority and Format Identifier):第一個字節,49 表示這是一個私有地址。AFI(Authority and Format Identifier)是 NSAP(Network Service Access Point)地址的一部分,用于標識地址的格式和分配權威。AFI 是 NSAP 地址的第一個字節(8 位)其值范圍為 00 到 FF(十六進制),在 IS-IS 協議中有特定的作用和含義。 2)IDI(Initial Domain Identifier):0001,標識域,用于標識地址分配的初始域。NSAP 地址結構中的 IDI 部分可以幫助區分不同的地址分配機構和域。(IDI 的值可以標識不同的國家、組織或標準機構) ? DSP:HO-DSP+ System ID + N-Selector ? DSP相當于IP地址中的子網號和主機地址 3)HO-DSP(High Order Domain Specific Part):標識高階域部分;域特定部分中的高階部分,用于進一步細化地址分配。(其實就是區域的擴展部分) 4)System ID:0000.0000.0001,標識路由器,通常是 6 字節長,確保每個路由器在 IS-IS 網絡中具有唯一的標識,從而避免路由器之間的沖突。為了方便管理一般來說會根據RouterID來配置SystemID(如現有RouterID 192.168.10.01 ==轉化==> 192.168.010.001 ==轉換為SID==>1921.6801.0001) 5)N-Selector(NSAP Selector):00,通常是 00,用于標識網絡層的服務訪問點,區分同一網絡節點上的不同服務或協議實例。
AreaID = AFI+IDI+HO-DSP
這個時候有一個net我們該如何區分其AreaID+SystemID+ N-Selector?
49.0001.1720.1600.0001.00
從后往前:00 - N-Selector ;接著從后往前數12位:1720.1600.0001-SystemID;剩下的一部分就是AreaID。
③ 配置接口以參與 IS-IS
R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip router isis 1
?
R1(config)# interface GigabitEthernet0/1
R1(config-if)# ip router isis 1
在 R2 上配置 IS-IS
-
配置接口 IP 地址
R2(config)# interface GigabitEthernet0/0 R2(config-if)# ip address 192.168.1.2 255.255.255.0 R2(config-if)# no shutdown ? R2(config)# interface GigabitEthernet0/1 R2(config-if)# ip address 20.0.0.1 255.255.255.0 R2(config-if)# no shutdown
-
啟用 IS-IS 進程
R2(config)# router isis 1 R2(config-router)# net 49.0001.0000.0000.0002.00 R2(config-router)# exit
-
配置接口以參與 IS-IS
R2(config)# interface GigabitEthernet0/0 R2(config-if)# ip router isis 1 ? R2(config)# interface GigabitEthernet0/1 R2(config-if)# ip router isis 1
配置驗證
完成上述配置后,可以使用以下命令驗證 IS-IS 配置和鄰居關系的建立。
查看 IS-IS 鄰居:
R1# show isis neighbors
2.華為
①首先,為 R1 的接口分配 IP 地址并啟用接口:
[R1] interface GigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0] ip address 192.168.1.1 255.255.255.0
[R1-GigabitEthernet0/0/0] undo shutdown
[R1-GigabitEthernet0/0/0] quit
接下來,啟用 IS-IS 進程并配置 NET 地址。NET 地址在 IS-IS 中唯一標識路由器。
[R1] isis 1
[R1-isis-1] network-entity 49.0001.1921.6800.1001.00
[R1-isis-1] quit
為接口啟用 IS-IS
[R1] interface GigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0] isis enable 1
[R1-GigabitEthernet0/0/0] quit
②為 R2 的接口分配 IP 地址并啟用接口:
[R2] interface GigabitEthernet0/0/0
[R2-GigabitEthernet0/0/0] ip address 192.168.1.2 255.255.255.0
[R2-GigabitEthernet0/0/0] undo shutdown
[R2-GigabitEthernet0/0/0] quit
啟用 IS-IS 進程并配置 NET 地址:
[R2] isis 1
[R2-isis-1] network-entity 49.0001.1921.6800.1002.00
[R2-isis-1] quit
為特定接口啟用 IS-IS:
[R2] interface GigabitEthernet0/0/0
[R2-GigabitEthernet0/0/0] isis enable 1
[R2-GigabitEthernet0/0/0] quit
完成上述配置后,可以使用以下命令驗證 IS-IS 配置和鄰居關系的建立。
[R1] display isis peer
華三
首先,為 R1 的接口分配 IP 地址并啟用接口:
<R1> system-view
[R1] interface GigabitEthernet1/0/1
[R1-GigabitEthernet1/0/1] ip address 192.168.1.1 255.255.255.0
[R1-GigabitEthernet1/0/1] undo shutdown
[R1-GigabitEthernet1/0/1] quit
接下來,啟用 IS-IS 進程并配置 NET 地址。NET 地址在 IS-IS 中唯一標識路由器。
[R1] isis 1
[R1-isis-1] network-entity 49.0001.1921.6800.1001.00
[R1-isis-1] quit
最后,為特定接口啟用 IS-IS:
[R1] interface GigabitEthernet1/0/1
[R1-GigabitEthernet1/0/1] isis enable 1
[R1-GigabitEthernet1/0/1] quit
接著為 R2 的接口分配 IP 地址并啟用接口:
<R2> system-view
[R2] interface GigabitEthernet1/0/1
[R2-GigabitEthernet1/0/1] ip address 192.168.1.2 255.255.255.0
[R2-GigabitEthernet1/0/1] undo shutdown
[R2-GigabitEthernet1/0/1] quit
啟用 IS-IS 進程并配置 NET 地址:
[R2] isis 1
[R2-isis-1] network-entity 49.0001.1921.6800.1002.00
[R2-isis-1] quit
為特定接口啟用 IS-IS:
[R2] interface GigabitEthernet1/0/1
[R2-GigabitEthernet1/0/1] isis enable 1
[R2-GigabitEthernet1/0/1] quit
完成上述配置后,可以使用以下命令驗證 IS-IS 配置和鄰居關系的建立。
[R1] display isis peer
IS-IS 路由分層示例
假設我們有一個網絡,分為兩個區域:
-
區域 A
-
區域 B
兩個區域之間通過一個骨干區域互聯。路由器 R1 和 R2 在區域 A 內部,R3 和 R4 在區域 B 內部,R5 和 R6 是連接兩個區域的邊界路由器。
區域 A
+------+ ? +------+ ? +------+
| R1 |----| R2 |----| R5 |
+------+ ? +------+ ? +------+||+------+| R6 |+------+|| ? ? ? ? ? ? ? ?
+------+ ? +------+ ? +------+
| R3 |----| R4 |----| R5 |
+------+ ? +------+ ? +------+
區域 B ?
在這個網絡中:
-
R1 和 R2 是 L1 路由器,僅知道區域 A 內部的路由。
-
R3 和 R4 是 L1 路由器,僅知道區域 B 內部的路由。
-
R5 和 R6 是 L1/L2 路由器,維護 L1 和 L2 路由表,能夠在區域 A 和區域 B 之間傳遞路由信息。
配置示例
R5 的 IS-IS 配置(此處跳過接口配置以及在接口中啟用IS-IS的配置內容)
[R5] isis 1
[R5-isis-1] network-entity 49.0001.0000.0000.0005.00
[R5-isis-1] is-level level-1-2
[R5-isis-1] quit
IS-IS 路由協議使用分層架構,將網絡分為多個級別以簡化路由計算和提高可擴展性。通過正確配置 L1 和 L2 路由器,可以確保不同區域間的路由信息正確傳播和交換,從而實現高效的網絡通信。理解 IS-IS 分層架構對于大規模網絡的設計和管理至關重要。