華爲 IS-IS協議學習筆記

動態路由協議按照算法的不同可以分爲兩類:一類是基於鏈路狀態(典型代表是OSPF、IS-IS),還有一類是距離矢量(典型代表是rip、bgp),和OSPF一樣,IS-IS也是一種基於鏈路狀態並使用最短路徑優先算法進行路由計算的一種IGP協議。
本次博客主要是介紹ISIS協議原理以及配置。

歷史起源

IS-IS中間系統到中間系統,Intermediate system to intermediate system,意爲“中間系統到中間系統”)

IS-IS最初是針對OSI七層模型去設計的路由協議,是國際化標準組織ISO爲它的無連接網絡協議CLNP(這裏的CLNP可以類比TCP/IP五層協議棧裏面的ip網絡)設計的一種動態路由協議。但是由於CLNP網絡現在已經不用了,爲了能夠讓ISIS提供對IP的路由支持,IETF(國際互聯網工程任務組)在RFC1195中對IS-IS進行了擴充和修改,使它能夠同時應用在TCP/IPOSI環境中,修訂後的IS-IS協議被稱爲集成化的IS-IS。由於IS-IS的簡便性及擴展性強的特點,目前在大型ISP(互聯網服務提供商)的網絡中被廣泛地部署,ISIS工作在數據鏈路層,不僅支持CLNP網絡,還支持IP網絡,OSPF工作在IP層,且支持IP網絡。

應用場景

網絡可以根據不同的客戶需求分成園區網和骨幹網絡,這兩種網絡的特點,以及採用的協議類型,如下圖所示,

園區網特點:
應用型網絡,主要面向企業網用戶。
路由器數量偏少,動態路由的LSDB庫容量相對偏少,三層路由域相對偏少。
有出口路由的概念,對內部外部路由劃分敏感。
地域性跨度不大,帶寬充足,鏈路狀態協議開銷對帶寬佔用比偏少。
路由策略和策略路由應用頻繁多變,需要精細化的路由操作。
OSPF的多路由類型(內部/外部),多區域類型(骨幹/普通/特殊),開銷規則優良(根據帶寬設定),網絡類型多樣(最多五種類型)的特點在園區網得到了極大的發揮。
骨幹網特點:
服務型網絡,由ISP(互聯網服務提供商)組建,併爲終端用戶提供互聯服務。
路由調度佔據絕對統治地位,路由器數量龐大。
架構層面扁平化,要求IGP作爲基礎路由爲上層BGP協議服務。
LSDB規模宏大,對鏈路收斂極度敏感,線路費用高昂。
追求簡單高效,擴展性高,滿足各種客戶業務需求(IPV6/IPX)。
IS-IS的快速算法(PRC得到加強),簡便報文結構(TLV),快速鄰居關係建立,大容量路由傳遞(基於二層開銷低)等一系列特點在骨幹網有着天然的優勢。
 
ISIS一般應用於大型網絡
 

路由計算過程

ISIS路由計算的過程:先建立鄰居關係,建立起鄰居關係之後,進行鏈路信息交換,接着開始計算路由。

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

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

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

 

地址結構

先根據比較熟悉的OSPF來類比ISIS 裏面會用到的標識符,如下表所示,

TCP/IP協議棧

IP協議

IP地址

OSPF

Area ID+Router ID

OSI系統

CLNP協議

NSAP地址

IS-IS

NET標識符

 

在OSI裏面的NSAP地址可以類比IP地址,作用是差不多的,在OSPF協議裏面,在配置的時候,需要劃分區域,分配路由器ID,但是在ISIS裏面,可以通過一個NET標識符來發揮劃分區域和配置路由器id的作用。

首先來看一下NSAP地址的結構,如下圖所示,

NSAP地址由兩大塊組成,一塊是IDP,另一塊是DSP。
IDP相當於IP地址中的主網絡號。它是由ISO規定,並由AFIIDI兩部分組成。AFI表示地址分配機構和地址格式,IDI用來標識域。
 
DSP相當於IP地址中的子網號和主機地址。它由High Order DSPSystem IDSEL三個部分組成。High Order DSP用來分割區域,System ID用來區分主機,SEL用來指示服務類型。
 
以上的AFI就好比是我們的國家名稱,IDI就類似與省的名稱,High Order DSP就類似於市名稱,這三者共同組成了Area ID,就好比身份證上的地址屬於哪個國家的哪個省的哪個市,
 
Area AddressArea ID)由IDPDSP中的High Order DSP組成,既能夠標識路由域,也能夠標識路由域中的區域。因此,它們一起被稱爲區域地址,相當於OSPF中的區域編號,在這裏需要注意的是,Area id的字節範圍是1-13個字節,有長有短。但是System id和sel的長度是固定的,如果給了一個NSAP的地址,需要計算Area id的話,可以從後面往前推,去查看Area ID。
 
System ID用來在區域內唯一標識主機或路由器。在設備的實現中,它的長度固定爲48bit6字節)。
 
SEL的作用類似IP中的“協議標識符”,不同的傳輸協議對應不同的SEL。在IPSEL均爲00。然後把SEL標爲00的地址成爲NET,是一種特殊的NASP地址,(SEL=00),在路由器上配置ISIS的時候,只需要考慮NET就ok,如下圖所示,是一個規範的NSAP的地址。
NET:
網絡實體名稱NET指的是設備本身的網絡層信息,可以看作是一類特殊的NSAP(SEL=00),NET的長度與NSAP的相同,最多爲20個字節,最少爲8個字節。在路由器上配置IS-IS時,只需要考慮NET即可,NSAP可不必去關注。
 
在配置IS-IS過程中,NET最多也只能配3個。在配置多個NET時,必須保證它們的System ID都相同。
 

路由器分類

 
在ISIS裏面,路由器分爲三種類型,分別是Level-1路由器(只能創建level-1的LSDB),Level-2路由器(只能創建level-2的LSDB),Level-1-2路由器(路由器默認的類型,能同時創建level-1和level-2的LSDB )。
Level-1路由器:
Level-1只能與屬於同一區域的Level-1Level-1-2路由器形成鄰居關係,只負責維護Level-1的鏈路狀態數據庫,該LSDB包含本區域內的路由信息,到本區域外的報文轉發給最近的Level-1-2路由器。Level-1路由器只可能建立Level-1的鄰接關係。
Level-2路由器:
Level-2路由器負責區域間的路由,它可以與相同或者不同區域的Level-2路由器或者不同區域的Level-1-2路由器形成鄰居關係。Level-2路由器維護一個Level-2LSDB,該LSDB包含區域間的路由信息。Level-2路由器只可能建立Level-2的鄰接關係。
Level-1-2路由器:
同時屬於Level-1Level-2的路由器稱爲Level-1-2路由器。Level-1-2路由器維護兩個LSDBLevel-1LSDB用於區域內路由,Level-2LSDB用於區域間路由。
Level-1-2路由器可以與同一區域的Level-1形成Level-1鄰居關係,也可以與其他區域的Level-2Level-1-2路由器形成Level-2的鄰居關係。
不同區域間,只能建立Level-2的鄰接關係:
Level-2路由器可以與Level-2路由器建立鄰接關係。
Level-1-2路由器可以與Level-2路由器建立鄰接關係。
Level-1-2路由器可以與Level-1-2路由器建立鄰接關係。
 
Level-1路由器和Level-2路由器不能直接建立鄰接關係,就算兩種路由器處於同一個區域也不能建立鄰接關係,所以中間需要Level-1-2路由器作爲中間人,通過Level -1 lsdb去和Level-1路由器去建立鄰居關係,通過通過Level -2 lsdb去和Level-2路由器去建立鄰居關係,
 

HELLO報文

在ISIS中,路由器在建立鄰接關係的時候,會用到HELLO報文,這裏的hello報文被稱之爲IIH(IS-IS-Hello),HELLO報文的作用是鄰居發現,協商參數並建立鄰居關係,後期充當保活報文。IS-IS建立鄰居關係和OSPF一樣,通過hello報文的交互來完成。
但是會根據場景分爲三種類型的hello報文,廣播網中的Level-1 IS-IS使用Level-1 LAN IIHLevel-1 LAN IS-IS Hello),目的組播MAC爲:0180-c200-0014廣播網中的Level-2 IS-IS使用Level-2 LAN IIHLevel-2 LAN IS-IS Hello),目的組播MAC爲:0180-c200-0015非廣播網絡中則使用P2P IIHpoint to point IS-IS Hello)。但是其沒有表示DIS(虛節點)的相關字段。
IIH報文需要通過填充字段用於鄰居兩端協商發送報文的大小。
 

IS-IS支持的網絡類型:

 點對點網絡類型(P2P)。

廣播多路訪問網絡類型(Broadcast Multiple Access)。

在幀中繼等特殊環境下,可以通過創建子接口支持P2P的網絡類型。

 鄰接關係建立

在點到點鏈路上,鄰接關係的建立分爲兩次握手和三次握手ISO10589使用兩次握手,RFC3373定義了P2P三次握手機制。

 

 兩次握手只要路由器收到對端發來的Hello報文,就單方面宣佈鄰居爲up狀態,建立鄰居關係,不過容易存在單通風險。通過三次發送P2PIS-IS Hello PDU最終建立起鄰居關係,與廣播鏈路鄰居關係的建立情況相同。

在廣播鏈路上,使用LAN IIH報文執行三次握手建立鄰居關係,如下圖所示,當收到鄰居發送的Hello PDU報文裏面沒有自己的system ID的時候,狀態機進入initialized。只有收到鄰居發過來的Hello PDU有自己的system ID纔會up,排除了鏈路單通的風險。廣播網絡中鄰居up後會選舉DIS(虛節點),DIS的功能類似OSPF的DR(指定路由器)

 

 DIS及DIS與DR的類比

 在運行ISIS協議的網絡裏,在中間系統(路由器)裏競選出一個DIS(指定中間系統)的角色,和在運行OSPF協議的網絡裏會競選出來的DR有些類似,在廣播網絡中,DIS會創建一個虛擬路由器,被稱之爲僞節點,如下圖所示,

 DIS的特點:在廣播網絡,需要選舉DIS,所以在鄰居關係建立後,路由器會等待兩個Hello報文間隔再進行DIS的選舉。Hello報文中包含Priority 字段,Priority值最大的將被選舉爲該廣播網的DIS。若優先級相同,接口MAC地址較大的被選舉爲DISIS-ISDIS發送Hello時間間隔默認爲10/3秒,而其他非DIS路由器發送Hello間隔爲10秒。

DIS與DR的類比:選舉時優選級的比較,DIS的優先級爲0也可以參與選舉。OSPF中優先級爲0不參與選舉DR。選舉的過程需要一定的時間,OSPF選舉DR/BDR需要waiting time40秒,過程也較爲複雜,而ISIS選舉DIS等待兩個Hello報文間隔就可以,簡單快捷,DR和DIS的類比如下表所示。

類比點

ISIS-DIS

OSPF-DR

選舉優先級

所有優先級都參與選舉

0優先級不參與選舉

選舉等待時間

2Hello報文間隔

40s

備份

有(BDR

鄰接關係

所有路由器互相都是鄰接關係

DRother之間是2-way關係

搶佔性

會搶佔

不會搶佔

作用

週期發送CSNP保障MA網絡LSDB同步

主要爲了減少LSA泛洪

 
 
ISIS 使用的是TLV結構構建的報文
TLV的含義是:類型(TYPE),長度(LENGTH),值(VALUE)。實際上是一個數據結構,這個結構包含了這三個字段,如下圖所示,
使用TLV結構構建報文的好處是靈活性和擴展性好。採用TLV使得報文的整體結構固定,增加新特點只需要增加新TLV即可。不需要改變整個報文的整體結構。網絡拓撲結構和路由信息用TLV結構表現使得報文的靈活性和擴展性得到了極大的發揮。
 

在ISIS裏面用來承載鏈路狀態信息的是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 PDU——用於交換鏈路狀態信息。

 實節點LSP

僞節點LSP(只在廣播鏈路存在)

 除了LSP用來承載鏈路狀態信息以外,還有SNP PDU——用於維護LSDB 的完整與同步,且爲摘要信息。

 SNP PDU(Sequence Number PDU):

 CSNP(Complete Sequence Number PDU)包括LSDB中所有LSP的摘要信息,從而可以在相鄰路由器間保持LSDB的同步。

 PSNP(Partial Sequence Number PDU)包含部分LSDB中的LSP摘要信息,能夠對LSP進行請求和確認

 CSNP 類似於OSPFDD報文,傳遞的是LSDB裏所有鏈路信息摘要。PSNP類似於OSPFLSRLSAck報文用於請求和確認部分鏈路信息.

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

Level-1地址爲:0180-C200-0014

Level-2地址爲:0180-C200-0015

 

鏈路狀態信息的交互 

P2P網絡LSDB同步過程,如下圖所示,

 建立鄰居關係之後,RTA與RTB會先發送CSNP給對端設備。如果對端的LSDBCSNP沒有同步,則發送PSNP請求索取相應的LSP

假定RTB向RTA索取相應的LSP,此時向RTA發送PSNPRTA發送RTB請求的LSP的同時啓動LSP重傳定時器,並等待RTB發送PSNP作爲收到LSP的確認。如果在接口LSP重傳定時器超時後,RTA還沒有收到RTB發送的PSNP報文作爲應答,則重新發送該LSP直至收到RTBPSNP報文作爲確認。

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

MA網絡中新加入的路由器與DIS 的LSDB同步交互過程,如下圖所示:

 
假設新加入的路由器RTC已經與RTBDIS)和RTA建立了鄰居關係。

 建立鄰居關係之後,RTC將自己的LSP發往組播地址(Level-101-80-C2-00-00-14Level-201-80-C2-00-00-15)。這樣網絡上所有的鄰居都將收到該LSP

該網段中的DIS會把收到RTCLSP加入到LSDB中,並等待CSNP報文定時器超時(DIS每隔10秒發送CSNP報文)併發送CSNP 報文,進行該網絡內的LSDB同步。RTC收到DIS發來的CSNP報文,對比自己的LSDB數據庫,然後向DIS發送PSNP報文請求自己沒有的LSP(如RTARTBLSP就沒有)。

RTB作爲DIS收到該PSNP報文請求後向RTC發送對應的LSP進行LSDB 的同步。

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

路由算法

ISIS路由計算開銷方式:設備默認接口開銷值都是10
SPF計算過程:單區域LSDB同步完成,2.生成全網拓撲結構圖,3.以本節點爲根生成最短路徑樹,4.默認跨越每個節點開銷一樣。
IS-IS的計算特點:
在本區域內路由器第一次啓動的時候執行的是Full-SPF算法。
後續收到的LSP更新,如果是部分拓撲的變化執行的iSPF計算。
如果只是路由信息的變化,執行的就是PRC計算。
由於採用拓撲與網絡分離的算法,路由收斂速度得到了加強。
 
ISIS路由計算的開銷方式:
Narrow模式(設備默認模式開銷都是10,手工配置接口開銷取值範圍爲163)。
Wide模式(設備默認模式開銷都是10,手工配置接口開銷取值範圍是116777215)。
進程下加入auto-cost enable命令,Narrow模式和Wide模式都會參考接口帶寬大小計算開銷值,只是參考準則有少許差異。
 
網絡分層路由域

 

爲了支持大規模的路由網絡,IS-IS在自治系統內採用骨幹區域與非骨幹區域兩級的分層結構。一般來說,將Level-1路由器部署在非骨幹區域,Level-2路由器和Level-1-2路由器部署在骨幹區域。每一個非骨幹區域都通過Level-1-2路由器與骨幹區域相連。
拓撲中爲一個運行IS-IS協議的網絡,它與OSPF的多區域網絡拓撲結構非常相似。整個骨幹區域不僅包括Level-2的所有路由器,還包括Level-1-2路由器。Level-1-2級別的路由器可以屬於不同的區域,在Level-1區域,維護Level-1LSDB,在Level-2區域,維護Level-2LSDB
如下圖所示

 

 在OSPF中,每個鏈路只屬於一個區域;而在IS-IS中,每個鏈路可以屬於不同的區域;在IS-IS中,單個區域沒有物理的骨幹與非骨幹區域的概念;而在OSPF中,Area0被定義爲骨幹區域;在IS-IS中,Level-1Level-2級別的路由器分別採用SPF算法,分別生成最短路徑樹SPT;在OSPF中,只有在同一個區域內才使用SPF算法,區域之間的路由需要通過骨幹區域來轉發。

 Level-1路由器的路由特點:

只擁有Level-1的鏈路狀態數據庫。

其鏈路狀態數據庫中只有本區域路由器LSP

其路由表裏沒有其他區域的路由信息。

其路由表裏都有一條默認路由,下一條是指向到Level-1-2路由器。

Level-2路由器的路由特點:

Level-2路由器只有Level-2的鏈路狀態數據庫。

其LSDB中有骨幹區域路由器的LSP,但是沒有Level-1路由器產生的LSP

路由表裏面有整個網絡的路由信息。

Level-1-2路由器的路由特點:

Level-1-2路由器同時擁有Level-2Level-1的鏈路狀態數據庫。

Level-1數據庫包含本區域的LSPLevel-2數據庫包含骨幹區域LSP

在自己產生的Level-1LSP中設置了ATT比特位爲1

路由表裏面有整個網絡的路由信息。

 如上圖所示,Level 1路由器和Level 1-2路由器處於同一個area49.0001區域,level 2路由器處在 area 49.0002,很明顯不在同一個區域裏,但是level 1-2路由器和level 2路由器共同組成了骨幹區域。

區域49.0001訪問區域49.0002的時候,L1/2路由器RTA產生ATT置位爲1LSP,L1路由器收到ATT1LSP會產生下一跳指向L1/2路由器的默認路由

當區域49.0002訪問區域49.0001的時候,L1/2路由器RTA會把區域49.0001的明細路由以葉子節點方式掛載在L2級別的LSP上面並處在Level-2LSDB中,L2路由器通過自己SPF計算得出訪問Area49.0001的明細路由

配置:

 

 

 實驗要求:

如圖所示,客戶網絡所有路由器路由協議要求啓用IS-IS,使全網路由可達。全部IS-IS進程號統一爲100,其中AR1在Area49.0001區域爲DIS,AR4與AR5之間要求採用P2P網絡類型,AR5引入直連鏈路192.168.X.X,要求AR1訪問Area49.0002走最優路徑。根據上述描述,進行正確配置,使網絡路由達到客戶需求。

NET地址編號:
RTA49.0001.0000.0000.0001.00
RTB49.0001.0000.0000.0002.00
RTC49.0001.0000.0000.0003.00
RTD49.0002.0000.0000.0004.00
RTE49.0002.0000.0000.0005.00
 
 

 實驗步驟:

1.在各個路由器上配置ISIS 100,並配置好規定的NET地址編號,

2.在接口下使能isis 100

3.修改鏈路類型

4.更改接口開銷值,進行最優選路

5.AR1的鏈路接口修改其DIS的優先級爲最高,讓其成爲DIS

6.進行路由滲透:如果一個level-1區域有兩個以上Level-1-2路由器,則區域內Level-1路由器訪問其他區域會選擇最近的Level-1-2路由器,但是計算的開銷值只計算本區域內的,如果最近的Level-1-2路由器在Level-2區域到達目的網絡的開銷相對比較大,實際會造成業務次優路徑。在這種場景下需要做路由滲透操作,把Level-2區域的明細路由(包括開銷)引入到Level-1區域,由Level-1路由器自行計算選擇最優的路徑訪問跨區域網絡。

7.進入路由器AR5引入直連鏈路。

 sysname AR1

isis 100  配置ISIS 100
 is-level level-1 修改路由器的類型爲Leve1 1,如果不做修改則默認爲Level 1-2
 network-entity 49.0001.0000.0000.0001.00  配置規定的NET地址編號,
#
interface GigabitEthernet0/0/0
 ip address 10.0.123.1 255.255.255.0 
 isis enable 100 在接口下使能isis 100
 isis dis-priority 127 配置接口的isis優先級最高,讓它成爲DIS

 

其他路由器上的配置如下:(只展示相關配置)

<AR2>
#
 sysname AR2
#
isis 100
 network-entity 49.0001.0000.0000.0002.00
 import-route isis level-2 into level-1 在Level 1中注入Level 2的路由信息,讓level 1的路由器能夠瞭解到去往別的網段的明細信息
#
interface GigabitEthernet0/0/0
 ip address 10.0.123.2 255.255.255.0 
 isis enable 100
#
interface GigabitEthernet0/0/1
 ip address 10.0.24.2 255.255.255.0 
 isis enable 100

在沒有注入level 2的路由信息的時候,isis的路由表如下圖所示

通過缺省路由去訪問未知網絡,包括訪問ISIS裏面的Level 2的路由表

注入level 2的路由信息之後,isis路由表就變成了如下圖所示,

就有了明細路由,這是注入路由的好處。

 

<AR3>
 sysname AR3
#
isis 100
 network-entity 49.0001.0000.0000.0003.00
 import-route isis level-2 into level-1 同樣的還是注入路由
#
interface Serial4/0/0
 link-protocol ppp
 ip address 10.0.34.3 255.255.255.0 
 isis enable 100
 isis cost 15 修改開銷值,選擇最優的路徑
#
interface GigabitEthernet0/0/0
 ip address 10.0.123.3 255.255.255.0 
 isis enable 100


<AR4>
#
 sysname AR4
#
isis 100
 is-level level-2
 network-entity 49.0002.0000.0000.0004.00
#
interface Serial4/0/0
 link-protocol ppp
 ip address 10.0.34.4 255.255.255.0 
 isis enable 100
#
interface GigabitEthernet0/0/0
 ip address 10.0.24.4 255.255.255.0 
 isis enable 100
#
interface GigabitEthernet0/0/1
 ip address 10.0.45.4 255.255.255.0 
 isis enable 100
 isis circuit-type p2p 修改鏈路類型爲點到點
#
<AR5>
#
 sysname AR5
#
isis 100
 is-level level-2
 network-entity 49.0002.0000.0000.0005.00
 import-route direct  引入直連路由
#
interface GigabitEthernet0/0/0
 ip address 10.0.45.5 255.255.255.0 
 isis enable 100
 isis circuit-type p2p
#
interface LoopBack0
 ip address 192.168.25.1 255.255.255.0 
#
interface LoopBack1
 ip address 192.168.15.1 255.255.255.0 

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