上一章我們介紹了ISIS的鄰居建立關系以及ISIS的路由器角色有哪些,在不同的網絡類型當中建立鄰居關系有什么不同,并且以實驗案例抓包的形式給大家進一步介紹了建立的過程。
這一章我們來介紹ISIS中是如何實現鏈路狀態數據庫同步的,與OSPF的鏈路狀態同步有什么不同,在不同網絡類型中的同步過程是否一致。
一、概述
我們在第一章說過ISIS一共有9個報文,分別為L1/L2/P2P的IIH報文,L1/L2的LSP報文,L1/L2的CSNP和L1/L2的PSNP,我們現在來說一下這幾個報文的作用是什么
IIH報文在上一章已經介紹過這里不過多贅述
LSP報文
(ISIS中的LSP有點類似于OSPF中的LSA)
- IS-IS鏈路狀態報文LSP用于交換鏈路狀態信息的。LSP分為兩種分別為:Level-1 LSP與Level-2 LSP。Level-1 LSP由Level-1路由器傳送,Level-2 LSP由Level-2路由器傳送,Level1-2路由器則可傳送以上兩種LSP。
- 兩類LSP有相同的報文格式。
CSNP報文
?CSNP包含了該設備LSDB中所有的LSP摘要,路由器通過交互CSNP來判斷是否需要同步LSDB。
- 在MA廣播型網絡類型當中,CSNP由DIS定期發送(缺省的發送周期為10秒)。
- 在P2P點到點網絡類型當中,CSNP只在第一次建立鄰接關系時發送,對方接收到這個CSNP后查看當中的LSP摘要,如果自己的數據庫當中沒有的話就發送PSNP去請求對方。
PSNP報文
PSNP只包含了部分LSP的摘要信息(與CSNP不同)
- 當發現LSDB不同步時,PSNP來請求鄰居發送新的LSP。
- 在P2P點到點網絡類型當中,當收到LSP時,會使用PSNP對收到的LSP進行確認(這就對應了我們第一章所說的PSNP報文不僅可以用來當作請求報文也可以用來當作確認報文)
ISIS的LSDB鏈路狀態數據庫
查看非偽節點的LSP
查看偽節點LSP
LSDB同步
在這張拓撲當中區域5中的L1路由器只能與同區域的L1/L2建立L1的鄰居關系
區域5中的L1/L2路由器只能與同區域的L1建立鄰居關系,與不同區域的L1/L2只能夠建立L2的鄰居關系,那么L1/L2怎么學習到區域3中的L1的鏈路信息呢?
在ISIS中L1/L2會對L2的鄰居做一個引入的操作,這個操作是默認的類似于OSPF中ABR將區域間的路由轉發給區域內的路由器,當然這里轉發的是L1的鏈路信息所以區域5中的L1/L2路由器就可以通過L2的鄰居關系學習到不同區域中的鏈路信息
那么L1/L2學習到了不同區域的L1鏈路信息但L1并沒有學習到因為只有L2鄰居關系會引入L1的鏈路信息而L1鄰居關系并不會引入L2的鏈路信息,那區域5中的L1路由器怎么去訪問區域3中的L1路由器呢?
L1/L2路由器會在它們該區域下發的Level-1中設置ATT標志位,用于向區域內的Level01路與其宣告可以通過自己到達其他區域。L1路由器會根據ATT標志位計算出指向L1/L2路由器的默認路由用于訪問不同區域之間的網段。(非常類似于OSPF中的Stub區域)
LSP的更新時間
- LSP的刷新間隔為15分鐘;老化時間為20分鐘
- 一條LSP的老化除了要等待20分鐘外,還要等待60秒的零老化時延
- LSP重傳時間為5秒
LSP的比較規則
- 序列號:越大越新
- Remaining Lifetime:越小越新
- Checksum:越打越新
P2P網絡類型同步LSDB過程
1、在P2P點到點網絡當中我們前面說了只有在第一次建立鄰居關系時才會發送CSNP報文,這個報文中包含了本路由設備所有的LSDB的摘要信息
2、當對方收到我的CSNP報文后會查看與自己的鏈路狀態數據庫中的鏈路數據是否一致,如果有自己沒有的鏈路信息,那就發送PSNP來請求對方
3、當對方收到了來自鄰居的PSNP請求報文時,會查看PSNP中的LSP的摘要信息并發送相應的LSP給對方,如果一段時間內沒有收到對方發來的PSNP的確認報文則重新發送一份LSP報文給對方
4、這里的確認是隱式的確認通過PSNP報文中LSP entries(t=9,l=16)的LSP的校驗和以及序列號和LSP-ID來做相應的確認
5、如果后面鏈路數據發生變化了就直接發送LSP給對方,告訴鄰居我們的鏈路信息變化了,對方會做相應的撤銷和請求
MA網絡類型同步LSDB過程
在MA廣播網絡類型當中,所有的CSNP報文都由我們選舉出來的DIS來周期性發送,當鄰居收到DIS發送的CSNP時會比較自己的鏈路狀態數據庫,發現自己沒有的鏈路信息時會發送PSNP的請求報文給DIS
當DIS收到來自鄰居的請求報文時會發送相應的LSP給對方,這里是不會有請求報文的,如果沒收到或者丟包了,則下次DIS發送CSNP時在發出PSNP的請求相應的LSP即可。
假如這時新加入一臺路由器設備,它會發送IIH報文先建立鄰居關系隨后發送自己的LSP信息,當DIS收到這個LSP時會將LSP中的內容加入到自己的LSDB中,在發送新的CSNP報文,新加入的路由器就會根據DIS的CSNP報文來請求響應的LSP信息
二、實驗
拓撲
(1)基礎配置
AR1
system
sysname AR1
interface g0/0/0
ip add 10.0.12.1 24AR2
system
sysname AR2
interface g0/0/0
ip add 10.0.12.2 24
interface g0/0/1
ip add 10.0.23.2 24
interface g0/0/2
ip add 10.0.24.2 24AR3
system
sysname AR3
interface g0/0/0
ip add 10.0.23.3 24
interface g0/0/1
ip add 10.0.35.3 24AR4
system
sysname AR4
interface g0/0/0
ip add 10.0.24.4 24
interfacae g0/0/1
ip add 10.0.45.4 24AR5
system
sysname AR5
interface g0/0/0
ip add 10.0.35.5 24
interface g0/0/1
ip add 10.0.45.5 24
(2)ISIS配置
AR1
isis 1
is-level level-1
network-entity 48.0001.0000.0001.00
q
interface g0/0/0
isis enable 1AR2
isis 1
network-entity 48.0001.0000.0002.00
q
interface g0/0/0
isis enable 1
interface g0/0/1
isis enable 1
interface g0/0/2
isis enable 1AR3
isis 1
network-entity 49.0001.0000.0003.00
q
interface g0/0/0
isis enable 1
interface g0/0/1
isis enable 1AR4
isis 1
network-entity 49.0001.0000.0004.00
q
interface g0/0/0
isis enable 1
interface g0/0/1
isis enable 1AR5
isis 1
is-level level-1
network-entity 49.0001.0000.0005.00
q
interface g0/0/0
isis enable 1
interface g0/0/1
isis enable 1
這里我們將AR1與AR5配置為Level-1的路由器,所以它們只能建立Level-1的鄰居狀態,并且只維護本區域的LSDB數據庫,他們是沒有其他區域LSDB數據的,而AR2/3/4他們為L1/2路由器設備,他們的LSDB數據庫中會存在完整的鏈路數據信息
我們可以看到AR1上只有自己與AR2的鏈路數據,并且AR2的鏈路數據中ATT置為了,說明AR2連著其他外部區域,如果我們AR1想要去訪問外部區域網段的話就需要通過AR2來訪問,所以AR1會計算生成一條指向AR2的默認路由。
我們可以看到AR2上擁有L1的LSDB和L2的LSDB,并且通過L2中的鏈路信息學習到了R5的網段信息
這時我們在AR5上創建一個Loopback接口設置IP為1.1.1.1并且使能ISIS
這時AR3就會收到來自AR5的LSP的更新報文
AR3會把其中自己沒有LSP加入到自己的L1與L2的鏈路數據庫當中
由于AR3的L2的鏈路狀態數據庫發生了變化所以AR3會把自己更新的L2的LSP發送出去,當AR2收到這條LSP時也會將其中自己沒有的LSP放入到自己的L2的LSDB當中
當然AR1還是通過AR2下發的LSP中ATT置位所生成的默認路由去訪問AR5的1.1.1.1網段
到這里本章內容就到此結束了如果有疑問可以關注博主私聊,如果有問題歡迎私聊博主及時更改謝謝大家的觀看學習!!!?