【分享】超全!集成IS-IS知識詳解~

IS-IS路由協議簡介

IS-IS是國際標準化組織ISO為它的無連接網絡協議CLNP設計的一種動態路由協議。


隨著TCP/IP協議的流行,為了提供對IP路由的支持,IETF(Internet Engineering Task Force )在RFC1195中對IS-IS進行了擴充和修改,使它能夠同時應用在TCP/IP和OSI環境中,稱為集成IS-IS(Integrated IS-IS或Dual IS-IS)。


在IS-IS中,路由器被描述為是一箇中間系統(Intermediate System,IS),主機被描述為端系統(End System,ES)。因此提供主機和路由器之間的通信的協議即為ES-IS;而路由器之間的通信即為IS-IS。


和IP中使用Proxy ARP或IRDP,或在主機上配置默認網關不同的是,CLNP會在ES和IS之間形成ES-IS的鄰接關係。


隨著IPv6網絡的建設,同樣需要動態路由協議為IPv6報文的轉發提供準確有效的路由信息。IS-IS路由協議結合自身具有良好的擴展性的特點,實現了對IPv6網絡層協議的支持,可以發現、生成和轉發IPv6路由。


基本原理簡介

IS-IS是一種鏈路狀態路由協議,每一臺路由器都會生成一個LSP,它包含了該路由器所有使能IS-IS協議接口的鏈路狀態信息。


通過跟相鄰設備建立IS-IS鄰接關係,互相更新本地設備的LSDB,可以使得LSDB與整個IS-IS網絡的其他設備的LSDB實現同步。然後根據LSDB運用SPF算法計算出IS-IS路由。如果此IS-IS路由是到目的地址的最優路由,則此路由會下發的IP路由表中,並指導報文的轉發。


IS-IS路由器的分類

1、Level-1路由器


Level-1路由器負責區域內的路由,它只與屬於同一區域的Level-1和Level-1-2路由器形成鄰居關係,屬於不同區域的Level-1路由器不能形成鄰居關係。


Level-1路由器只負責維護Level-1的鏈路狀態數據庫LSDB(Link State Database),該LSDB包含本區域的路由信息,到本區域外的報文轉發給最近的Level-1-2路由器。


2、Level-2路由器


Level-2路由器負責區域間的路由,它可以與同一或者不同區域的Level-2路由器或者其它區域的Level-1-2路由器形成鄰居關係。Level-2路由器維護一個Level-2的LSDB,該LSDB包含區域間的路由信息。


所有Level-2級別(即形成Level-2鄰居關係)的路由器組成路由域的骨幹網,負責在不同區域間通信。路由域中Level-2級別的路由器必須是物理連續的,以保證骨幹網的連續性。只有Level-2級別的路由器才能直接與區域外的路由器交換數據報文或路由信息。


3、Level-1-2路由器


同時屬於Level-1和Level-2的路由器稱為Level-1-2路由器,它可以與同一區域的Level-1和Level-1-2路由器形成Level-1鄰居關係,也可以與其他區域的Level-2和Level-1-2路由器形成Level-2的鄰居關係。Level-1路由器必須通過Level-1-2路由器才能連接至其他區域。


Level-1-2路由器維護兩個LSDB,Level-1的LSDB用於區域內路由,Level-2的LSDB用於區域間路由。


IS-IS的網絡類型

IS-IS只支持兩種類型的網絡,根據物理鏈路不同可分為:廣播鏈路:如Ethernet、Token-Ring等;點到點鏈路:如PPP、HDLC等。


對於NBMA(Non-Broadcast Multi-Access)網絡,需對其配置子接口,並注意子接口類型應配置為P2P。IS-IS不能在點到多點鏈路P2MP(Point to MultiPoint)上運行。


IS-IS的網絡地址

在IS-IS中,可以通過Network Entity Tiyle(NET)來同時定義區域ID和系統ID。即使集成IS-IS只使用在TCP/IP的環境中,由於它是以CLNP為基礎的,所以仍然要配置OSI CLNP地址。


IS-IS報文類型

IS-IS報文有以下幾種類型:HELLO PDU(Protocol Data Unit)、LSP和SNP。


1、Hello PDU


Hello報文用於建立和維持鄰居關係,也稱為IIH(IS-to-IS Hello PDUs)。其中,廣播網中的Level-1 IS-IS使用Level-1 LAN IIH;廣播網中的Level-2 IS-IS使用Level-2 LAN IIH;非廣播網絡中則使用P2P IIH。它們的報文格式有所不同。


P2P IIH中相對於LAN IIH來說,多了一個表示本地鏈路ID的Local Circuit ID字段,缺少了表示廣播網中DIS的優先級的Priority字段以及表示DIS和偽節點System ID的LAN ID字段。


2、LSP


鏈路狀態報文LSP(Link State PDUs)用於交換鏈路狀態信息。LSP分為兩種:Level-1 LSP和Level-2 LSP。Level-1 LSP由Level-1 IS-IS傳送,Level-2 LSP由Level-2 IS-IS傳送,Level-1-2 IS-IS則可傳送以上兩種LSP。


LSP報文中主要字段的解釋如下:


ATT字段:當Level-1-2 IS-IS在Level-1區域內傳送Level-1 LSP時,如果Level-1 LSP中設置了ATT位,則表示該區域中的Level-1 IS-IS可以通過此Level-1-2 IS-IS通往外部區域。


OL(LSDB Overload)字段:過載標誌位。


設置了過載標誌位的LSP雖然還會在網絡中擴散,但是在計算通過過載路由器的路由時不會被採用。即對路由器設置過載位後,其它路由器在進行SPF計算時不會使用這臺路由器做轉發,只計算該節點上的直連路由。更多內容請參見後面介紹的-IS-IS過載位。


IS Type字段:用來指明生成此LSP的IS-IS類型是Level-1還是Level-2 IS-IS(01表示Level-1,11表示Level-2)。


3、SNP


序列號報文SNP(Sequence Number PDUs)通過描述全部或部分數據庫中的LSP來同步各LSDB(Link-State DataBase),從而維護LSDB的完整與同步。


SNP包括全序列號報文CSNP(Complete SNP)和部分序列號報文PSNP(Partial SNP),進一步又可分為Level-1 CSNP、Level-2 CSNP、Level-1 PSNP和Level-2 PSNP。


CSNP包括LSDB中所有LSP的摘要信息,從而可以在相鄰路由器間保持LSDB的同步。在廣播網絡上,CSNP由DIS定期發送(缺省的發送週期為10秒);在點到點鏈路上,CSNP只在第一次建立鄰接關係時發送。


PSNP只列舉最近收到的一個或多個LSP的序號,它能夠一次對多個LSP進行確認,當發現LSDB不同步時,也用PSNP來請求鄰居發送新的LSP。


ISIS的基礎配置步驟

1、定義區域和地址

在ISIS中,所有區域間數據流都必須穿越L2主幹區域。因此,必須規劃CLNS地址,以實現兩級的層次結構。必須確定哪些路由器將作為主幹(L2)路由器,哪些路由器將作為(L1/L2) ABR,哪些路由器作為內部區域(L1)路由器。


如果有些路由器必須同時進行L1和L2路由選擇,還應確定接口參與哪種路由選擇。


路由器的CLNS地址被稱為NET,它由3個主要部分組成:


- 區域地址(前綴):標識路由器所在的區域


- 系統ID:唯一地標識設備。在Cisco設備上為定長6字節。在每個區域中系統ID必須要保證唯一性。


- NSEL:作為NET,這個字段必須為0


2、啟用集成ISIS


router(config)#router isis [area-tag]

#在全局下啟用ISIS。還可以使用可選的名稱來標識多個ISIS進程(就像在同一臺路由器上可以存在多個OSPF進程一樣)。進程名稱只對本地有意義;如果省略,則Cisco IOS軟件將假定它為0。


如果要使用多個ISIS進程,則進行網絡規劃時應配置哪些接口分別參與哪些ISIS進程。


router(config)#clns routing


#默認情況下,IP路由選擇被啟用,而CLNS路由選擇是被禁用的。要啟用CLNS路由選擇,除了在全局模式下使用這個命令以外,還必須在每個接口上啟用CLNS路由選擇。在TCP/IP環境中可以不必要開啟這個功能。


3、配置路由器的NET


router(config-router)#net 49.0000.0000.0000.0001.00


#配置NET以標識路由器。即使只將ISIS用於IP路由選擇(沒有啟用CLNS路由選擇),也必須配置NET。因為集成ISIS依賴於CLNS路由選擇的支持。


4、在適當的接口上啟用集成ISIS。包括那些連接到末節IP網絡的接口,比如環回接口(儘管他們沒有CLNS鄰居)

router(config-if)#ip router isis [area-tag]

#在需要使用ISIS來分發其路由選擇信息的接口上進行配置。如果有多個ISIS進程,還必須使用area-tag字段指明此接口屬於哪個ISIS進程。


router(config-if)#clns router isis [area-tag]


#在接口上啟用ISIS路由選擇進程,以支持CLNS路由選擇。


優化ISIS配置

1、修改ISIS路由器的級別


router(config-router)#is-type {level-1/level-1-2/level-2-only}


#默認的ISIS配置將路由器設置為L1/L2路由器。這種配置的缺點就是路由器需要同時發送L1和L2 Hello,並需要同時維護L1和L2 LSDB。


2、修改ISIS接口級別


router(config-if)#isis circuit-type {level-1/level-1-2/level-2-only}


#儘管路由器可以配置成L1/L2路由器,但是可能並不需要在其所有接口上建立兩種類型的鄰接關係。為了讓ISIS在這些情況下效率更高,需要將接口配置成只發送必要類型的Hello報文。


3、修改ISIS度量值


router(config-if)#isis metric metric_number {level-1/level-2}


#ISIS規範定義了4種度量值。默認度量值為成本,所有路由器都支持它;延遲、花費和差錯是可選的度量值。延遲度量值指的是傳輸延遲,花費是鏈路的經濟成本,差錯度量值指的是鏈路出現錯誤的可能性。對於同一個接口,可以為L1和L2指定不同的度量值。metric取值範圍為1~63。


4、配置ISIS的IP路由彙總


router(config-router)#summary-address prefix mask [level-1/level-1-2/level-2] [tag tag-number] [metric metric_value]


#路由器將IP路由彙總為L1、L2或L1/L2,默認為L2(level-2)。可選的tag-number用於標記彙總的路由,可選的metric_value用於指定彙總路由的度量值。雖然這個命令適用於所有的ISIS路由器,但它只能彙總來至外部ISIS的L1路由(重分發到ISIS L1中的路由)。


分享到:


相關文章: