IS-IS協議詳解(三)IS-IS路由計算過程:鄰居建立、鏈路信息交換、路由計算

路由計算過程

IS-IS協議的路由計算過程與OSPF非常相似,只是在細節上有所不同。
OSPF的路由計算過程可參考以前的文章:OSPF(一)OSPF協議簡介

  1. 鄰居關係建立:
    鄰居關係建立主要是通過HELLO包交互並協商各種參數,包括電路類型(level-1/level-2),Hold time,網絡類型,支持協議,區域號,系統ID,PDU長度,接口IP等。

  2. 鏈路信息交換:
    與OSPF不同,ISIS交互鏈路狀態的基本載體不是LSA(link state advertisement),而是LSP(link state PDU);交互的過程沒有OSPF協議那樣經歷了多個階段,主要是通過CSNP和PSNP兩種協議報文來同步,請求以及確認鏈路狀態信息(承載的是鏈路狀態信息摘要),而鏈路狀態信息的詳細拓撲和路由信息是由LSP報文傳遞。

  3. 路由計算:
    SPF計算和OSPF基本一樣的,但ISIS算法分離了拓撲結構和IP網段,加快了網絡收斂速度。

這裏主要介紹一下不同之處,詳細內容請看下文。
在這裏插入圖片描述

鄰居關係

IS-IS目前只支持點對點(P2P)和廣播多路訪問網絡(Broadcast Multiple Access)。
其他的網絡中需要進行額外的配置才能支持,如:在幀中繼等特殊環境下,可以通過創建子接口支持P2P的網絡類型。

鄰居HELLO報文

HELLO報文的作用是鄰居發現,協商參數並建立鄰居關係,後期充當保活報文。

IS-IS建立鄰居關係和OSPF一樣,通過hello報文的交互來完成。但是會根據場景分爲三種類型的hello報文。

HELLO報文在IS-IS中叫做:IIH(IS-IS Hello)

在P2P網絡中

使用P2P IIH(point to point IS-IS Hello)。但是其沒有表示DIS(虛節點)的相關字段。

在廣播多路訪問網絡中

廣播網中的Level-1 IS-IS使用L1 LAN IIH(Level-1 LAN IS-IS Hello),目的組播MAC爲:0180-c200-0014。
廣播網中的Level-2 IS-IS使用L2 LAN IIH(Level-2 LAN IS-IS Hello),目的組播MAC爲:0180-c200-0015。

IIH報文需要通過填充字段用於鄰居兩端協商發送報文的大小。

鄰居建立關係(交互Hello報文的過程)

同樣,在鄰居建立關係的過程中,我們還是分P2P網絡和廣播多路訪問網絡來講。

P2P網絡

在P2P網絡中,路由器建立鄰居關係步驟非常簡單,只需要進行兩次的報文交互即可(兩次握手),兩次握手只要路由器收到對端發來的Hello報文,就單方面宣佈鄰居爲up狀態,建立鄰居關係,不過容易存在單通風險。

在RFC3373中,P2P採用了三次握手的方式。通過三次發送P2P的IS-IS Hello PDU最終建立起鄰居關係,與廣播鏈路鄰居關係的建立情況相同。

在這裏插入圖片描述
廣播多路訪問網絡

在廣播鏈路上,使用LAN IIH報文執行三次握手建立鄰居關係。

如下圖:RTA發送IIH報文,報文中包含自己的系統ID,鄰居狀態爲:null(不知道鄰居是誰),RTB接收到了報文之後,發現RTA發送過來的報文裏面沒有自己的系統ID,RTB進入initialized(初始化狀態),然後給RTA發送自己IIH報文,裏面包含了自己的系統ID,並宣告鄰居是RTA,RTA收到之後進入UP狀態,並回復IIH報文,RTB收到之後進入UP狀態,此時鄰居關係建立完成。然後進行DIS選舉。

只有收到鄰居發過來的Hello PDU有自己的system ID纔會up,排除了鏈路單通的風險。

在這裏插入圖片描述

DIS

DIS(Designated IS):指定中間系統。又叫虛節點
僞節點是指在廣播網絡中由DIS創建的虛擬路由器。

廣播網絡中鄰居up後會選舉DIS(虛節點),DIS的功能類似OSPF的DR(指定路由器)。
OSPF中DR的選舉課參考DR與BDR選舉

在這裏插入圖片描述
在廣播網絡,需要選舉DIS,所以在鄰居關係建立後,路由器會等待兩個Hello報文間隔再進行DIS的選舉。

選舉依據
Hello報文中包含Priority 字段,Priority值最大的將被選舉爲該廣播網的DIS。若優先級相同,接口MAC地址較大的被選舉爲DIS。

IS-IS中DIS發送Hello時間間隔默認爲10/3秒,而其他非DIS路由器發送Hello間隔爲10秒。

DIS與OSPF中DR對比

類比點 ISIS-DIS OSPF-DR
選舉優先級 所有優先級都參與選舉 0優先級不參與選舉
選舉等待時間 2個Hello報文間隔 40s
備份 有(BDR)
鄰接關係 所有路由器互相都是鄰接關係 DRother之間是2-way關係
搶佔性 會搶佔 不會搶佔
作用 週期發送CSNP,保障MA網絡LSDB同步 主要爲了減少LSA泛洪

注意:
選舉等待時間:DIS選舉時間只有兩個HELLO報文間隔,時間短,所以不需要備份。而OSPF的DR選舉間隔爲40S,時間長,重新選舉造成網絡癱瘓時間多長,所以有BDR的存在。

鏈路狀態信息的載體

在這裏插入圖片描述
ISIS TLV:

TLV實際上是一個數據結構,這個結構包含了這三個字段:

類型(TYPE),長度(LENGTH),值(VALUE)

許多報文都採用TLV,使用TLV結構構建報文的好處是靈活性和擴展性好。採用TLV使得報文的整體結構固定,增加新特點只需要增加新TLV即可。不需要改變整個報文的整體結構。
網絡拓撲結構和路由信息用TLV結構表現使得報文的靈活性和擴展性得到了極大的發揮。

IS-IS中鏈路狀態信息的載體分爲兩類:

  1. LSP PDU(Link State Protocol PDU):(PDU就是報文的意思)
    LSP類似於OSPF的LSA,承載的是完整鏈路狀態信息,包含了拓撲結構和網絡號。

    Level-1 LSP由Level-1 路由器傳送。
    Level-2 LSP由Level-2 路由器傳送。
    Level-1-2 路由器則可傳送以上兩種LSP。

LSP 報文中包含了兩個重要字段是ATT字段、IS-Type字段:

其中ATT字段用於標識該路由是L1/L2路由器發送的,
IS-Type用來指明生成此LSP的IS-IS類型是Level-1還是Level-2 IS-IS。

LSP的刷新間隔爲15分鐘;老化時間爲20分鐘。但是一條LSP的老化除了要等待20分鐘外,還要等待60秒的零老化時延;LSP重傳時間爲5秒。

LSP報文分爲兩種:

	實節點LSP
	僞節點LSP(只在廣播鏈路存在,DIS發出)
  1. SNP PDU(Sequence Number PDU):
    SNP PDU用於維護LSDB的完整與同步,報文裏包含的是摘要信息(與LSP的完整信息對應)

SNP報文中又分兩種:

CSNP(Complete Sequence Number PDU)包括LSDB中所有LSP的摘要信息,從而可以在相鄰路由器間保持LSDB的同步。
CSNP可理解爲OSPF中的DD報文,傳遞的是LSDB裏所有的鏈路信息摘要

lPSNP(Partial Sequence Number PDU)包含部分LSDB中的LSP摘要信息,能夠對LSP進行請求和確認。
PSNP類似於OSPF的LSR或LSAck報文用於請求和確認部分鏈路信息。

注意:以上協議報文都分爲Level-1、Level-2兩種,在MA網絡中所有協議報文的目的MAC都是組地址:

Level-1地址:0180-c200-0014
Level-2地址:0180-c200-0015

鏈路狀態信息的交互

可以結合OSPF鏈路狀態信息的交互來理解。OSPF(一)OSPF協議簡介

P2P網絡信息交互

在這裏插入圖片描述
如上圖P2P網絡LSDB同步過程:

舉例說明步驟:
A、B兩個圖書館(RTA、RTB)建立了友好的合作關係(建立鄰居),兩個圖書管商量着合作,A圖書館歷史書較多,B圖書館小說較多。兩家想要互相補充一下各自所缺的書籍。這時,A圖書館首先發送給B圖書館一份書籍清單,清單上包含了A圖書館所有的書籍名稱(CSNP:摘要信息),告訴B,我圖書館所有的書都在這份清單上,你沒有的向我拿我再給你寄過來實體書。圖書館B收到之後,列出了B沒有的書,然後發送請求告訴圖書館A這些書是我沒有的(PSNP:請求)。圖書館A知道之後,就按照B發送過來的清單拿來實體書,然後打包發送給圖書館B(LSP:全部信息),圖書館B收到實體書之後,非常的開心,發送了一份感謝信給圖書館A(PSNP:確認),但是由於某些原因,感謝信丟失了。圖書館A沒有收到。過了一段時間之後(LSP重傳定時器超時),圖書館A認爲B沒有收到A送出去的實體書,出於擔心,A又重新寄了一份實體書過去(重新發送LSP),圖書館B又收到了一份實體書,再次很感謝,這時他也明白了上次的感謝信A應該是沒有收到,於是重新發送了一份感謝信給A(重傳PSNP:確認)

對應的OSPF中也可拿這個舉例,原理不變,只是報文變了一下而已

正經步驟:

建立鄰居關係之後,RTA與RTB會先發送CSNP給對端設備。如果對端的LSDB與CSNP沒有同步,則發送PSNP請求索取相應的LSP。
假定RTB向RTA索取相應的LSP,此時向RTA發送PSNP。RTA發送RTB請求的LSP的同時啓動LSP重傳定時器,並等待RTB發送PSNP作爲收到LSP的確認。
如果在接口LSP重傳定時器超時後,RTA還沒有收到RTB發送的PSNP報文作爲應答,則重新發送該LSP直至收到RTB的PSNP報文作爲確認。

***注意:P2P網絡CSNP報文只發送一次,鄰居建立之後就立刻發送。

MA網絡信息交互

在這裏插入圖片描述

MA網絡中新加入的路由器與DIS 的LSDB同步交互過程:

舉例說明步驟
A、B圖書館的合作越來越大,並確立了以圖書館B爲老大的聯盟(DIS)老大負責維護髮送書籍清單等任務,這時C圖書館也加入了進來(MA網絡)。這時圖書館A和B的圖書數據庫已經同步(LSDB同步),圖書館C加進來之後,爲了表達誠意,直接給老成員A和B送了自己獨有的實體書(LSP),老大B收到了書之後,將書籍加入到聯盟的圖書數據庫中(將RTC的LSP信息加入到LSDB中),然後圍爲了聯盟的共同穩定發展,老大定期(10s)在聯盟內部發送書籍清單(CSNP),來保證三家圖書館的書籍都是全的。由於圖書館C是剛加入進來的,他還沒有A、B的書籍,當收到老大B發送的書籍清單之後(CSNP),C看了清單,列舉了C沒有的書籍,然後給老大發送請求(PSNP),老大知道了之後,就給C寄出實體書籍(LSP:注意:這裏的是僞節點LSP)

正經步驟

假設新加入的路由器RTC已經與RTB(DIS)和RTA建立了鄰居關係。
建立鄰居關係之後,RTC將自己的LSP發往組播地址(Level-1:01-80-C2-00-00-14;Level-2:01-80-C2-00-00-15)。這樣網絡上所有的鄰居都將收到該LSP。
該網段中的DIS會把收到RTC的LSP加入到LSDB中,並等待CSNP報文定時器超時**(DIS每隔10秒發送CSNP報文)**併發送CSNP 報文,進行該網絡內的LSDB同步。
RTC收到DIS發來的CSNP報文,對比自己的LSDB數據庫,然後向DIS發送PSNP報文請求自己沒有的LSP(如RTA和RTB的LSP就沒有)。
RTB作爲DIS收到該PSNP報文請求後向RTC發送對應的LSP進行LSDB 的同步。

注意:lMA網絡CSNP報文只由DIS組播發送,時間默認爲10秒。

路由算法

IS-IS的計算特點:

在本區域內路由器第一次啓動的時候執行的是Full-SPF算法。

後續收到的LSP更新,如果是部分拓撲的變化執行的iSPF計算。

如果只是路由信息的變化,執行的就是PRC計算。

由於採用拓撲與網絡分離的算法,路由收斂速度得到了加強。

ISIS路由計算的開銷方式:

Narrow模式(設備默認模式開銷都是10,手工配置接口開銷取值範圍爲1~63)。

Wide模式(設備默認模式開銷都是10,手工配置接口開銷取值範圍是1~16777215)。

進程下加入auto-cost enable命令,Narrow模式和Wide模式都會參考接口帶寬大小計算開銷值,只 是參考準則有少許差異。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章