原理概述
一個OSPF鏈路狀態數據庫是若干條LSA的集合。與此相似,一個IS-IS鏈路狀態數據庫是由若干條LSP的集合。與OSPF鏈路狀態數據庫不同,IS-IS鏈路狀態數據庫有Level-1和Level-2之分。
在IS-IS協議中,每一條LSA都有一條剩余生存時間、一個序列號和一個校驗和。LSP的剩余生存時間是由最大生存時間(默認1200s)開始逐漸遞減的。當一條LSP的剩余生存時間遞減至0時,仍然會在鏈路狀態數據庫中繼續保留60s(稱為ZeroAgeLifetime),然后才會被刪除。LSP的始發路由器會周期性地刷新LSP,刷新時間間隔為900s減去不超過25%的隨機量。
LSP的序列號是一個32bit的整數,初始值為1,每次刷新時都會遞增1。與OSPF中的LSA一樣,同一條LSP,其序列號越大,表示該LSP越新,路由器總是將最新的LSP放入其鏈路狀態數據庫中。如果序列號遞增至最大值時,則無法被繼續刷新,但其剩余生存時間會遞減至0,然后會被從鏈路狀態數據庫中刪除。
LSP的校驗和用于檢驗LSP是否在傳輸過程中受到損壞。當路由器收到一條包含錯誤的校驗和的LSP時,會將其直接丟棄。
實驗目的
理解IS-IS鏈路狀態數據庫的內容
掌握查看IS-IS鏈路狀態數據庫的方法
實驗內容
實驗拓撲如圖所示。本實驗模擬了一個簡單的企業網絡場景,Level-1路由器R1和Level-1-2路由器R2為公司部門A的網絡設備,Level-2路由器R3為公司的骨干路由器。整個網絡都運行IS-IS協議,R1和R2屬于IS-IS區域10,R3屬于IS-IS區域20,R1的Loopback 0接口模擬了部門A的內部網絡,R3的Loopback 0接口模擬了公司服務器所在的網絡。實驗內容的重點是觀察和分析R1、R2、R3上的IS-IS鏈路狀態數據庫。
實驗拓撲
1.基本配置
根據拓撲圖進行相應的基本配置,并使用Ping命令檢測R1與R2之間的連通性。?
?R2和R3的連通性測試過程在此省略。
2.配置IS-IS路由協議
在R1、R2、R3上配置IS-IS路由協議,其中R1為Level-1路由器,R2為Level-1-2路由器,R3為Level-2路由器。
[r1]isis
[r1-isis-1]is-level level-1
[r1-isis-1]is-name r1
[r1-isis-1]network-entity 10.0000.0000.0001.00
[r1-isis-1]interface loopback 0
[r1-LoopBack0]isis enable
[r1-LoopBack0]int g0/0/0
[r1-GigabitEthernet0/0/0]isis enable
?[r2]isis
[r2-isis-1]is-level level-1-2
[r2-isis-1]is-name r2
[r2-isis-1]network-entity 10.0000.0000.0002.00
[r2-isis-1]int g0/0/0
[r2-GigabitEthernet0/0/0]isis enable
[r2-GigabitEthernet0/0/0]isis circuit-level level-1
[r2-GigabitEthernet0/0/0]int g0/0/1
[r2-GigabitEthernet0/0/1]isis enable
[r2-GigabitEthernet0/0/1]isis circuit-level level-2[r3]isis
[r3-isis-1]is-name r3
[r3-isis-1]is-level level-2
[r3-isis-1]network-entity 20.0000.0000.0003.00
[r3-isis-1]int g0/0/1
[r3-GigabitEthernet0/0/1]isis enable
[r3-GigabitEthernet0/0/1]int loopback 0
[r3-LoopBack0]isis enable
?配置完成后,在R2上查看IS-IS鄰居信息。
可以看到,R2與R1建立了Level-1鄰接關系,與R3建立了Level-2鄰接關系。
在R1上以10.0.1.1為源,使用ping命令測試10.0.3.3之間的連通性。
?可以看到,部門A的內部網絡與服務器所在網絡之間的通信是正常的,全網實現了互通。
3.查看Level-1路由器的鏈路狀態數據庫
?在Level-1路由器R1上查看IS-IS鏈路狀態數據庫。
可以觀察到,鏈路狀態數據庫中包含了3條LSP,以及相應的LSP ID、序列號(Seq Num)、校驗和(Checksum)、生存時間(Holdtime)、長度(Length)等屬性。因為R1是Level-1路由器,所以它只為Level-1維護了一個鏈路狀態數據庫。第一條LSP的LSP是Level-1路由器,所以它只為Level-1維護了一個鏈路狀態數據庫。第一條LSP的LSP ID為R1.00-00*,R1.00-00*中的R1為動態主機名。如果沒有配置動態主機名時,相應的位置就是系統ID。R1.00-00*中前面的00是偽節點標識,00表示此LSP是由真實節點而非偽節點生成的。R1.00-00*中后面的00為分片號,當LSP的長度太長時,LSP會被分片,分片號的作用是為了重組被分片的LSP。R1.00-00*中的“*”表示此LSP是于本地生成的。
在R1上使用display isis lsdb verbose命令查看IS-IS鏈路狀態數據庫的詳細信息。
可以看到,第一條LSP是本地生成的,LSP ID中包含了系統ID,系統是一個真實節點而非偽節點。Source為動態主機名附偽節點標識,Host Name為動態主機名,NLP ID為該LSP所支持的網絡協議,此處為IPv4,表明此LSP工作在Ipv4網絡中,Area Address為該LSP的區域地址(即區域ID),此處為10。INTF Addr為接口地址,描述了生成此LSP的路由器所擁有的接口的IP地址,此處為10.0.1.1和10.0.12.1。NBR ID為鄰居的系統ID附偽節點標識,Cost為去往鄰居的開銷值。IP-Internal為區域內IP路由信息,描述網絡前綴和掩碼,以及Cost信息。需要注意的是,第三條LSP是偽節點產生的。
4.查看Level-1-2路由器的鏈路狀態數據庫
在Level-1-1路由器R2上查看IS-IS鏈路狀態數據庫。
可以看到,R2為 Level-1和 Level-2分別維護了一份鏈路狀態數據庫,另外,其中的 Level-1鏈路狀態數據庫中的 LSP 條目與 Level-1路由器R1的鏈路狀態數據庫中的 LSP 條目完全相同,這表明 Level-1鏈路狀態數據庫在R1和R2上完成了同步。
在R2上使用命令 display isis lsdb level-1 verbose 查看 Level-1鏈路狀態數據庫的詳細信息。
觀察發現,在R2的 Level-1鏈路狀態數據庫中,除了用于標識本地生成的 LSP 的"*"之外,內容上與R1的 Level-1鏈路狀態數據庫完全相同。
在R2上使用命令 display isis lsdb level-2 verbose 查看 Level-2鏈路狀態數據庫的詳細信息。??
觀察發現,在 Level-2鏈路狀態數據庫中, LSP 的格式與在 Level-1鏈路狀態數據庫中并沒有區別。 Level-1鏈路狀態數據庫與 Level-2鏈路狀態數據庫的最主要區別在于:Level-1鏈路狀態數據庫中的 LSP 的區域 ID 彼此都相同,而 Level-2鏈路狀態數據庫中的 LSP 的區域 ID 彼此可以不同。
5.查看 Level-2路由器的鏈路狀態數據庫
在 Level-2路由器R3上查看 IS-IS 鏈路狀態數據庫。?
可以看到,Level-2路由器R3為Level-2維護了一份鏈路狀態數據庫,其中的LSP條目與R2中的Level-2鏈路狀態數據庫中的LSP條目相同。
在R3上查看IS-IS鏈路狀態數據庫的詳細信息。
可以看到,R3的Level-2鏈路狀態數據庫與R2的Level-2鏈路狀態數據庫完全相同。
?