IS-IS技術介紹


IS-IS

IS-ISIntermediate System-to-Intermediate System intra-domain routing information exchange protocolIS-IS路由協議)最初是國際標準化組織ISOthe International Organization for Standardization)為它的無連接網絡協議CLNPConnectionLess Network Protocol)設計的一種動態路由協議。

為了提供對IP的路由支持,IETFRFC 1195中對IS-IS進行了擴充和修改,使它能夠同時應用在TCP/IPOSI環境中,稱為集成化IS-ISIntegrated IS-ISDual IS-IS)。

IS-IS屬於內部網關協議(Interior Gateway ProtocolIGP),用於自治係統內部。IS-IS是一種鏈路狀態協議,使用最短路徑優先(Shortest Path FirstSPF)算法進行路由計算。

基本概念

1. IS-IS路由協議的基本術語

l              ISIntermediate System):中間係統。相當於TCP/IP中的路由器,是IS-IS協議中生成路由和傳播路由信息的基本單元。在下文中IS和路由器具有相同的含義。

l              ESEnd System):終端係統。相當於TCP/IP中的主機係統。ES不參與IS-IS路由協議的處理,ISO使用專門的ES-IS協議定義終端係統與中間係統間的通信。

l              RDRouting Domain):路由域。在一個路由域中多個IS通過相同的路由協議來交換路由信息。

l              Area:區域,路由域的細分單元,IS-IS允許將整個路由域分為多個區域

l              LSDBLink State DataBase):鏈路狀態數據庫。網絡內所有鏈路的狀態組成了鏈路狀態數據庫,在每一個IS中都至少有一個LSDBIS使用SPF算法,利用LSDB來生成自己的路由。

l              LSPLink State Protocol Data UnitLink State Packet):鏈路狀態協議數據單元或鏈路狀態報文。在IS-IS中,每一個IS都會生成LSP,此LSP包含了本IS的所有鏈路狀態信息。每個IS收集本區域內所有的LSP生成自己的LSDB

l              NPDUNetwork Protocol Data Unit):網絡協議數據單元,是ISO中的網絡層協議報文,相當於TCP/IP中的IP報文。

l              DISDesignated IS):廣播網絡上選舉的指定路由器,也可以稱為指定IS或偽節點。

l              NSAPNetwork Service Access Point):網絡服務接入點,即ISO中網絡層的地址,用來標識一個抽象的網絡服務訪問點,描述ISO模型的網絡地址結構。

2. IS-IS地址結構

(1)        NSAP

1所示,NSAPIDPInitial Domain Part)和DSPDomain Specific Part)組成。IDP相當於IP地址中的主網絡號,DSP相當於IP地址中的子網號和主機地址。

IDP部分是ISO規定的,它由AFIAuthority and Format Identifier)與IDIInitial Domain Identifier)組成,AFI表示地址分配機構和地址格式,IDI用來標識域。

DSPHODSPHigh Order DSP)、SystemIDSEL三個部分組成。HODSP用來分割區域,SystemID用來區分主機,SEL指示服務類型。

IDPDSP的長度都是可變的,NSAP總長最多是20個字節,最少8個字節。

圖1 IS-IS協議的地址結構示意圖

(2)        區域地址

IDPDSP中的HODSPHigh Order DSP)一起,既能夠標識路由域,也能夠標識路由域中的區域,因此,它們一起被稱為區域地址(Area Address)。兩個不同的路由域中不允許有相同的區域地址。

一般情況下,一台路由器隻需要配置一個區域地址,且同一區域中所有節點的區域地址都要相同。為了支持區域的平滑合並、分割及轉換,一台路由器最多可配置3個區域地址。

(3)        System ID

System ID用來在區域內唯一標識主機或路由器。它的長度固定為48bit6字節)。

在實際應用中,一般使用Router IDSystem ID進行對應。假設一台路由器使用接口Loopback0IP地址168.10.1.1作為Router ID,則它在IS-IS使用的System ID可通過如下方法轉換得到:

l              IP地址168.10.1.1的每一部分都擴展為3位,不足3位的在前麵補0

l              將擴展後的地址168.010.001.001重新劃分為3部分,每部分由4位數字組成,得到的1680.1000.1001就是System ID

實際System ID的指定可以有不同的方法,但要保證能夠唯一標識主機或路由器。

(4)        SEL

SELNSAP Selector,有時也寫成N-SEL)的作用類似IP中的“協議標識符”,不同的傳輸協議對應不同的SEL。在IP中,SEL均為00

(5)        路由方式

由於這種地址結構明確地定義了區域,Level-1路由器很容易識別出發往它所在的區域之外的報文,這些報文需要轉交給具有Level-2功能的路由器去處理。

Level-1路由器利用System ID進行區域內的路由,如果發現報文的目的地址不屬於自己所在的區域,就將報文轉發給最近的Level-1-2路由器。

Level-2路由器根據區域地址進行區域間的路由。

3. NET

NETNetwork Entity Title,網絡實體名稱)指示的是IS本身的網絡層信息,不包括傳輸層信息(SEL0),可以看作是一類特殊的NSAP,即SEL0NSAP地址。因此,NET的長度與NSAP的相同,最多為20個字節,最少為8個字節。

通常情況下,一台路由器配置一個NET即可,當區域需要重新劃分時,例如將多個區域合並,或者將一個區域劃分為多個區域,這種情況下配置多個NET可以在重新配置時仍然能夠保證路由的正確性。由於一台路由器最多可配置3個區域地址,所以最多也隻能配置3NET。在配置多個NET時,必須保證它們的System ID都相同。

例如NET為:ab.cdef.1234.5678.9abc.00,則其中Areaab.cdefSystem ID1234.5678.9abcSEL00

IS-IS區域

1. 兩級結構

為了支持大規模的路由網絡,IS-IS在路由域內采用兩級的分層結構。一個大的路由域被分成一個或多個區域(Areas)。區域內的路由通過Level-1路由器管理,區域間的路由通過Level-2路由器管理。

2. Level-1Level-2

(1)        Level-1路由器

Level-1路由器負責區域內的路由,它隻與屬於同一區域的Level-1Level-1-2路由器形成鄰居關係,維護一個Level-1LSDB,該LSDB包含本區域的路由信息,到區域外的報文轉發給最近的Level-1-2路由器。

(2)        Level-2路由器

Level-2路由器負責區域間的路由,可以與同一區域或者其它區域的Level-2Level-1-2路由器形成鄰居關係,維護一個Level-2LSDB,該LSDB包含區域間的路由信息。所有Level-2路由器和Level-1-2路由器組成路由域的骨幹網,負責在不同區域間通信,路由域中的Level-2路由器必須是物理連續的,以保證骨幹網的連續性。隻有Level-2路由器才能直接與路由域外的路由器交換數據報文或路由信息。

(3)        Level-1-2路由器

同時屬於Level-1Level-2的路由器稱為Level-1-2路由器,可以與同一區域的Level-1Level-1-2路由器形成Level-1鄰居關係,也可以與同一區域或者其他區域的Level-2Level-1-2路由器形成Level-2的鄰居關係。Level-1路由器必須通過Level-1-2路由器才能連接至其他區域。Level-1-2路由器維護兩個LSDBLevel-1LSDB用於區域內路由,Level-2LSDB用於區域間路由。

&  說明:

l      屬於不同區域的Level-1路由器不能形成鄰居關係。

l      Level-2路由器是否形成鄰居關係則與區域無關。

 

2為一個運行IS-IS協議的網絡,其中Area1是骨幹區域,該區域中的所有路由器均是Level-2路由器。另外4個區域為非骨幹區域,它們都通過Level-1-2路由器與骨幹路由器相連。

圖2 IS-IS拓撲結構圖之一

3IS-IS的另外一種拓撲結構圖。其中Level-1-2路由器不僅僅用來連接Level-1Level-2路由器,而且還與其他Level-2路由器一起構成了IS-IS的骨幹網。在這個拓撲中,並沒有規定哪個區域是骨幹區域。所有Level-2路由器和Level-1-2路由器構成了IS-IS的骨幹網,他們可以屬於不同的區域,但必須是物理連續的。

圖3 IS-IS拓撲結構圖之二

&  說明:

IS-IS的骨幹網(Backbone)指的不是一個特定的區域。

 

IS-IS不論是Level-1還是Level-2路由,都采用SPF算法,分別生成最短路徑樹(Shortest Path TreeSPT)。

3. 接口的路由層次類型

對於類型是Level-1-2的路由器,可能需要與某個對端隻建立Level-1的鄰接關係,與另一個對端隻建立Level-2的鄰接關係。可以通過設置相應接口的路由層次類型來限製接口上所能建立的鄰接關係,如Level-1的接口隻能建立Level-1的鄰接關係,Level-2的接口隻能建立Level-2的鄰接關係。

對於Level-1-2的路由器,通過將某些接口配置為Level-2,還可以防止將Level-1Hello報文發送到Level-2骨幹網上,從而節省帶寬。

4. 路由滲透(Route Leaking

通常情況下,IS-IS的區域也稱為Level-1區域,區域內的路由通過Level-1的路由器進行管理。所有的Level-2路由器構成一個Level-2區域。因此,一個IS-IS的路由域可以包含多個Level-1區域,但隻有一個Level-2區域。

Level-1區域必須且隻能與Level-2區域相連,不同的Level-1區域之間並不相連。

Level-1區域內的路由信息通過Level-1-2路由器發布到Level-2區域,因此,Level-2路由器知道整個IS-IS路由域的路由信息。但是,在缺省情況下,Level-2路由器並不將自己知道的其他Level-1區域以及Level-2區域的路由信息發布到Level-1區域。這樣,Level-1路由器將不了解本區域以外的路由信息,Level-1路由器隻將去往其它區域的報文發送到最近的Level-1-2路由器,所以可能導致對本區域之外的目的地址無法選擇最佳的路由。

為解決上述問題,IS-IS提供了路由滲透功能,使Level-1-2路由器可以將己知的其他Level-1區域以及Level-2區域的路由信息發布到指定的Level-1區域。

IS-IS的網絡類型

1. 網絡類型

IS-IS隻支持兩種類型的網絡,根據物理鏈路不同可分為:

l              廣播鏈路:如EthernetToken-Ring等。

l              點到點鏈路:如PPPHDLC等。

&  說明:

對於NBMANon-Broadcast Multi-Access)網絡,如ATM,需對其配置子接口,並將子接口類型配置為點到點網絡或廣播網絡。IS-IS不能在點到多點(Point to MultiPointP2MP)鏈路上運行。

 

2. DIS和偽節點

在廣播網絡中,IS-IS需要在所有的路由器中選舉一個路由器作為DISDesignated Intermediate System)。

Level-1Level-2DIS是分別選舉的,用戶可以為不同級別的DIS選舉設置不同的優先級。DIS優先級數值越高,被選中的可能性就越大。如果優先級最高的路由器有多台,則其中SNPASubnetwork Point of Attachment,子網連接點)地址(廣播網絡中的SNPA地址是MAC地址)最大的路由器會被選中。不同級別的DIS可以是同一台路由器,也可以是不同的路由器。

IS-IS廣播網中,同一網段上的同一級別的路由器之間都會形成鄰接關係,包括所有的非DIS路由器之間也會形成鄰接關係。如4所示。

圖4 IS-IS廣播網的DIS和鄰接關係

DIS用來創建和更新偽節點(Pseudonodes),並負責生成偽節點的LSP,用來描述這個網絡上有哪些路由器。

偽節點是用來模擬廣播網絡的一個虛擬節點,並非真實的路由器。在IS-IS中,偽節點用DISSystem ID和一個字節的Circuit ID(非0值)標識。

使用偽節點可以簡化網絡拓撲,使產生的LSP數量較少,減少SPF的資源消耗。

&  說明:

IS-IS廣播網絡上所有的路由器之間都形成鄰接關係,但LSDB的同步仍然依靠DIS來保證。

 

IS-ISPDU格式

1. PDU頭格式

IS-IS報文是直接封裝在數據鏈路層的幀結構中的。PDUProtocol Data Unit,協議數據單元)可以分為兩個部分,報文頭和變長字段部分。其中報文頭又可分為通用報頭和專用報頭。對於所有PDU來說,通用報頭都是相同的,但專用報頭根據PDU類型不同而有所差別,如5所示。

圖5 PDU格式

2. 通用報頭格式

所有的PDU都有相同的通用報頭格式,如6所示。

圖6 PDU頭格式

主要字段的解釋如下:

l              Intradomain Routeing Protocol Discriminator(域內路由協議鑒別符):設置為0x83

l              Length Indicator(長度標識符):PDU頭部的長度(包括通用報頭和專用報頭),以字節為單位。

l              Version/Protocol ID Extension(版本/協議標識擴展):設置為10x01)。

l              ID Length(標識長度):NSAP地址和NETID長度。

l              RReserved,保留):設置為0

l              Version(版本):設置為10x01)。

l              Maximum Area Address(最大區域地址數):支持的最大區域個數。

3. Hello

Hello報文用於建立和維持鄰居關係,也稱為IIHIS-to-IS Hello PDUs)。其中,廣播網中的Level-1路由器使用Level-1 LAN IIH,廣播網中的Level-2路由器使用Level-2 LAN IIH,點到點網絡中的路由器則使用P2P IIH

它們的報文格式有所不同。廣播網中的Hello報文格式如7所示(灰色部分是通用報文頭)。

圖7 L1/L2 LAN IIH格式

主要字段的解釋如下:

l              Reserved/Circuit Type:高位的6比特保留,值為0。低位的2比特表示路由器的類型(00保留,01表示L110表示L211表示L1/2)。

l              Source ID:發送Hello報文的路由器的System ID

l              Holding Time:保持時間。在此時間內如果沒有收到鄰居發來的Hello報文,則中止已建立的鄰居關係。

l              PDU LengthPDU的總長度,以字節為單位。

l              Priority:選舉DIS的優先級。

l              LAN ID:包括System ID和一字節的偽節點ID

點到點網絡中的Hello報文格式如8所示(灰色部分是通用報文頭)。

圖8 P2P IIH格式

從圖中可以看出,P2P IIH中的多數字段與LAN IIH相同。不同的是沒有PriorityLAN ID字段,而多了一個Local Circuit ID字段,表示本地鏈路ID

4. LSP報文格式

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

兩類LSP有相同的報文格式,如9所示(灰色部分是通用報文頭)。

圖9 L1/L2 LSP格式

主要字段的解釋如下:

l              PDU LengthPDU的總長度,以字節為單位。

l              Remaining LifetimeLSP的存活時間,以秒為單位。

l              LSP ID:由三部分組成,System ID、偽節點ID(一字節)和LSP的分片號(一字節)。

l              Sequence NumerLSP的序列號。

l              ChecksumLSP的校驗和。

l              PPartition Repair):僅與L2 LSP有關,表示路由器是否支持自動修複區域分割。

l              ATTAttachment):由L1/L2路由器產生,但僅與L1 LSP有關,表示產生此LSP的路由器(L1/L2路由器)與多個區域相連接。

l              OLLSDB Overload):表示本路由器因內存不足而導致LSDB不完整。其他路由器在得知這一信息後,就不會把需要此路由器轉發的報文發給它,但到此路由器直連地址的報文仍然可以被轉發。如10所示,假設正常情況下RouterARouterC的報文都是經過RouterB轉發,但如果RouterBOL位置1,則RouterA會認為RouterB的路由不完整,從而將報文通過RouterDRouterE轉發給RouterC,但到RouterB直連地址的報文不受影響。

圖10 LSDB Overload示意圖

l              IS Type:生成LSP的路由器的類型。

5. SNP格式

時序報文SNPSequence Number PDUs)用於確認鄰居之間最新接收的LSP,作用類似於確認(Acknowledge)報文,但更有效。

SNP包括CSNPComplete SNP,全時序報文)和PSNPPartial SNP,部分時序報文),進一步又可分為Level-1 CSNPLevel-2 CSNPLevel-1 PSNPLevel-2 PSNP

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

CSNP的報文格式如11所示(灰色部分是通用報文頭)。

圖11 L1/L2 CSNP格式

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

PSNP的報文格式如12所示:

圖12 L1/L2 PSNP格式

6. TLV

PDU中的變長字段部分是多個TLVType-Length-Value)三元組。其格式如13所示:

圖13 TLV格式

不同PDU類型所包含的TLV是不同的。其中,Code值從110TLVISO 10589中定義(有2類未在上表中列出),其他幾種TLVRFC 1195中定義。

附件下載

聯係我們