1. 程式人生 > 其它 >IS-IS路由協議詳解(三)

IS-IS路由協議詳解(三)

目錄

DIS 和 DR 的區別

下面表格講述的是 IS-IS 協議的 DIS 和 OSPF 協議的 DR 的區別

型別 DIS DR
參與選舉 DIS所有的優先順序都參與選舉 優先順序為 0 不參與選舉
選舉等待時間 兩個 Hello 包時間 40S
備份 無備份 備份裝置有 BDR
鄰接關係 所有裝置都是鄰接關係 只有DR 和 BDR 與其他裝置建立鄰接關係
搶佔性 會搶佔 不會搶佔
作用 週期性傳送 CSNP 報文,保證資料庫同步 主要為了減少 LSA 泛洪


IS-IS 的網路型別

IS-IS 的網路型別分為兩種:點到點鏈路廣播鏈路


點到點鏈路

點到點鏈路的鄰接關係建立分為 兩次握手三次握手


兩次握手:對端路由器傳送 Hello 單方向的 UP 建立鄰居,容易存在單通道的風險


三次握手:類似於廣播鄰居的建立,唯一不同的是廣播網路鄰居里面攜帶的是 MAC 而點到帶你裡面攜帶的是 SYS ID


修改握手型別

型別 命令 備註
2-way isis ppp-negotiation 2-way 3-way 可以相容 2-way
3-way isis ppp-negotiation 3-way(預設) 後面加上 Only 就不會相容 2-way 了

廣播鏈路

IS-IS 的廣播鏈路鄰居建立和 OSPF 的鄰居建立基本相似,只不過 OSPF 鄰居建立收到的是對端的 RID ,IS-IS 的鄰居建立收到的是鄰居的 MAC

因為是廣播網路,需要建立 DIS 所以在鄰居建立完成,路由器會等待兩個 Hello 報文間隔再進行 DIS 的選舉

  • 只有在廣播網路中才會有 DIS (偽節點)


  • DIS 支援搶佔,因為 DIS 和所有的裝置之間都是建立鄰接關係,誰當 DIS 都可以


  • 如果沒有 DIS IS-IS 的資料庫有可能同步,只是 LSDB 資料庫的同步需要 DIS 的保證


  • DIS 的 Hello 報文是三分之一秒傳送一次(確認 DIS 的)


  • DIS 十秒鐘傳送 CSNP 報文,對該網段的 LSDB 表進行更新(保證資料庫的同步)


  • 在廣播網路中 IS-IS 需要在路由器中選舉一個路由器作為 DIS


  • level-1 / level-2 的 DIS 是分別選舉的


  • DIS 負責生成偽節點的鏈路狀態協議單元 LSP,用來描述網路存在的哪些裝置


  • 在 IS-IS 的 LSDB 資料庫中 DIS 會生成兩條 LSP


  • LSDB 表項中的 LSP 有 01-00 就是 DIS 產生的

    01 為 IS-IS 的鏈路資訊,相當於 OSPF 的二類 LSA

    00 為 IS-IS 的鏈路資訊,相當於 OSPF 的一類 LSA


DIS 的作用

  • 在廣播網路中作為一種確認機制


  • 保證資料庫的同步


DIS 的選舉規則

  • 首先比較優先順序越大越優,預設為 64(範圍是 0~127)


  • 如果優先順序相同比較 MAC 地址


  • 優先順序為 0 的裝置也具有選擇權



IS-IS 的 LSDB 更新過程


廣播網路

廣播網路 DIS 的 LSDB 更新


序列號

沒有收到過序列號:DIS 收到 LSP ,會在資料庫中對應相應的記錄 ,如果沒有則加入 資料庫 ,並組播新的資料庫內容

收到過序列號:若收到的 LSP 的序列號大於本地的序列號 ,就替換為新報文 ,並組播 傳送資料庫內容

​ 若收到的 LSP 的序列號小於本地的序列號 ,就從入埠傳送本地的 LSP


剩餘時間

若序列號相同則比較剩餘時間,若收到的 LSP 的剩餘時間小於本地的 LSP 的剩餘時間 ,就替換為新報文 ,並廣播資料庫內容

若收到的 LSP 的剩餘時間大於本地的 LSP 的剩餘時間 ,就從入埠傳送本地的 LSP


checksum(校驗值)

若兩個序列號和剩餘時間都相等,則比較 checksum 若收到的 LSP 的 checksum 大於本地的 LSP 的 checksum ,則替換為新報文 ,並組播發生資料庫內容

若收到的 LSP 的 checksum 小於本地的 LSP 的 checksum ,就從入埠傳送本地的 LSP

若兩個序列號、剩餘時間、checksum 都相等,則不轉發該報文


點到點網路

點到點網路的 LSDB 更新


序列號

若收到 LSP 的序列號比自己本地的 LSP 序列號大 ,則將這個新的 LSP 放進自己的 LSDB 資料庫 ,在通過一個 PSNP 確認自己收到此條 LSP --------最後會將此條 LSP 傳送給除傳送該 LSP 的其他鄰居

若收到 LSP 的序列號比自己本地的 LSP 序列號小 ,則直接給對端傳送本地的 LSP ,並等待一個對方給自己傳送 PSNP 報文確認


剩餘時間

若收到的 LSP 的序列號與本地的 LSP 的序列號相同 ,則比較剩餘時間 ,若收到的 LSP 的剩餘時間小於本地的 LSP 的剩餘時間 ,則將該 LSP 存入到 LSDB 併發送PSNP 確認收到過 LSP--------然後會將此條 LSP 傳送給除傳送該 LSP 的其他鄰居

若收到的 LSP 的剩餘時間大於本地的 LSP 的剩餘時間 ,則直接給對方傳送本地的 LSP ,然後等待對端傳送一個 PSNP 確認


checksum(校驗值)

若兩個序列號和剩餘時間都相等,則比較 checksum 若收到的 LSP 的 checksum 大於本地的 LSP 的 checksum ,則將該 LSP 存入到 LSDB 併發送 PSNP 確認收到此報文--------然後會將此條 LSP 傳送給除傳送該 LSP 的其他鄰居

若收到的 LSP 的 checksum 小於本地的 LSP 的 checksum ,則直接給對端傳送本地的 LSP ,然後等待對端傳送一個 PSNP 確認

若兩個序列號、剩餘時間、checksum 都相等,則不轉發該報文



作者:Joker