CCNP路由實驗之六 動態路由協議之IS-IS
CCNP路由實驗之六動態路由協議之IS-IS
動態路由協議可以自動的發現遠端網路,只要網路拓撲結構發生了變化,路由器就會相互交換路由資訊,不僅能夠自動獲知新增加的網路,還可以在當前網路連線失敗時找出備用路徑。根據是否在一個自治域內部使用,動態路由協議分為內部閘道器協議(IGP)和(EGP)。這裡的自治域指一個具有統一管理機構、統一路由策略的網路。自治域內部採用的路由選擇協議稱為內部閘道器協議,常用的有RIP、EIGRP、OSPF、IS-IS;主要用於多個自治域之間的路由選擇,常用的是BGP和BGP-4。在一個
簡介
IS-IS:Intermediate
System to IntermediateSystem Routing Protocol即中間系統到中間系統的;IS-IS協議是由制定的ISO/IEC
10589:2002 所規範的。但是標準的IS-IS協議是(CLNS)設計的,並不直接適合於IP網路,因此制定了可以適用於IP
ISO釋出的OSI七層模型中的網路層:
CLNS:(IS-IS (Routing,IGP))
CLNP:無連線網路協議(類似IP,IPX),CLNS是為CLNP所支撐的服務
CONS(Connection Oriented Network Service)面向連線的服務
CONP:面向連線網路協議(Connection-Oriented Network Protocol),如x.25ES-IS:終端系統和中間系統路由交換協議(End System to Intermediate System Routing Exchange protocol)IDRP:域間路由選擇協議(IInter-Domain Routing Protocol)IS-IS:中間系統到中間系統協議(Intermediate System to Intermediate System)CLNP可以用於終端系統的網路實體之間或網路層中繼系統(Network Layer relay systems)中。 CLNP 主要提供無連線網路服務。CLNP的目標是用於充當子網獨立收斂協議(SNICP)的角色,其功能為在定義的一組底層服務上建立 OSI 網路服務,並支援一組相同或不同的互連子網上的 OSI無連線模式網路服務的統一性。當子網獨立收斂協議和/或子網訪問協議沒有提供在一個 NSAP到另一個 NSAP的全部或部分路徑上支援無連線網路服務所需的功能時, CLNP可以用來進行調整。除 SNICP之外, CLNP還可以實現其它協議的功能,也因此它也適用於其它子網互連方式。
術語
-
IS(Intermediate System):中間系統。相當於TCP/IP中的路由器,是IS-IS協議中生成路由和傳播路由資訊的基本單元
-
ES(End System):終端系統。相當於TCP/IP中的主機系統。ES不參與IS-IS路由協議的處理,ISO使用專門的ES-IS協議定義終端系統與中間系統間的通訊。
-
RD(Routing Domain):路由域。在一個路由域中多個IS通過相同的路由協議來交換路由資訊。
-
Area:區域,路由域的細分單元,IS-IS允許將整個路由域分為多個區域。
-
LSDB(Link State DataBase):鏈路狀態資料庫。網路內所有鏈路的狀態組成了鏈路狀態資料庫,在每一個IS中都至少有一個LSDB。IS使用SPF演算法,利用LSDB來生成自己的路由。
-
LSP(Link State Protocol Data Unit或Link State Packet):鏈路狀態協議資料單元或鏈路狀態報文。在IS-IS中,每一個IS都會生成LSP,此LSP包含了本IS的所有鏈路狀態資訊。每個IS收集本區域內所有的LSP生成自己的LSDB。
-
NPDU(Network Protocol Data Unit):網路協議資料單元,是ISO中的網路層協議報文,相當於TCP/IP中的IP報文。
-
DIS(Designated IS):廣播網路上選舉的指定路由器,也可以稱為指定IS或偽節點。選舉DIS順序:1)介面優先順序(預設64);(2)最大MAC地址。在廣播網路中,IS-IS需要在所有的路由器中選舉一個路由器作為DIS(Designated Intermediate System)。Level-1和Level-2的DIS是分別選舉的,使用者可以為不同級別的DIS選舉設定不同的優先順序。DIS優先順序數值越高,被選中的可能性就越大。如果優先順序最高的路由器有多臺,則其中SNPA(Subnetwork Point of Attachment,子網連線點)地址(廣播網路中的SNPA地址是MAC地址)最大的路由器會被選中。不同級別的DIS可以是同一臺路由器,也可以是不同的路由器。在IS-IS廣播網中,同一網段上的同一級別的路由器之間都會形成鄰接關係,包括所有的非DIS路由器之間也會形成鄰接關係。DIS用來建立和更新偽節點(Pseudonodes),並負責生成偽節點的LSP,用來描述這個網路上有哪些路由器。偽節點是用來模擬廣播網路的一個虛擬節點,並非真實的路由器。在IS-IS中,偽節點用DIS的SystemID和一個位元組的Circuit ID(非0值)標識。使用偽節點可以簡化網路拓撲,使產生的LSP數量較少,減少SPF的資源消耗。IS-IS廣播網路上所有的路由器之間都形成鄰接關係,但LSDB的同步仍然依靠DIS來保證。
-
NSAP(Network Service Access Point):網路服務接入點,即ISO中網路層的地址,用來標識一個抽象的網路服務訪問點,每種服務對應一個 NSAP地址,描述ISO模型的網路地址結構。NSAP由IDP(Initial Domain Part)和DSP(Domain Specific Part)組成。IDP相當於IP地址中的主網路號,DSP相當於IP地址中的子網號和主機地址。IDP部分是ISO規定的,它由AFI(Authority and Format Identifier)與IDI(Initial Domain Identifier)組成,AFI表示地址分配機構和地址格式,IDI用來標識域。DSP由HODSP(High Order DSP)、SystemID和SEL三個部分組成。HODSP用來分割區域,SystemID用來區分主機,SEL指示服務型別。IDP和DSP的長度都是可變的,NSAP總長最多是20個位元組,最少8個位元組。
-
區域地址:IDP和DSP中的HODSP(High Order DSP)一起,既能夠標識路由域,也能夠標識路由域中的區域,因此,它們一起被稱為區域地址(Area Address)。兩個不同的路由域中不允許有相同的區域地址。同一區域中的路由器都必須使用相同的區域地址,這個地址定義了該區域。區域地址用於L2路由選擇。ES只能識別同一子網中具有相同區域地址的IS和ES。。為了支援區域的平滑合併、分割及轉換,一臺路由器最多可配置3個區域地址。
-
System ID用來在區域內唯一標識主機或路由器。它的長度固定為48bit(6位元組)。實際System ID的指定可以有不同的方法,但要保證能夠唯一標識主機或路由器,實際應用中,一般使用Router ID與System ID進行對應。假設一臺路由器使用介面Loopback0的IP地址168.10.1.1作為Router ID,則它在IS-IS使用的System ID可通過如下方法轉換得到:
-
將IP地址168.10.1.1的每一部分都擴充套件為3位,不足3位的在前面補0;
-
將擴充套件後的地址168.010.001.001重新劃分為3部分,每部分由4位數字組成,得到的1680.1000.1001就是System ID。
-
SEL(NSAP Selector,有時也寫成NSEL)的作用類似IP中的“協議識別符號”,不同的傳輸協議對應不同的SEL。在IP中,SEL均為00。
-
路由方式:由於這種地址結構明確地定義了區域,Level-1路由器很容易識別出發往它所在的區域之外的報文,這些報文需要轉交給具有Level-2功能的路由器去處理。Level-1路由器利用System ID進行區域內的路由,如果發現報文的目的地址不屬於自己所在的區域,就將報文轉發給最近的Level-1-2路由器。Level-2路由器根據區域地址進行區域間的路由。
-
NET(Network Entity Title,網路實體名稱)指示的是IS本身的網路層資訊,不包括傳輸層資訊(SEL=0),可以看作是一類特殊的NSAP,即SEL為0的NSAP地址。因此,NET的長度與NSAP的相同,最多為20個位元組,最少為8個位元組。通常情況下,一臺路由器配置一個NET即可,當區域需要重新劃分時,例如將多個區域合併,或者將一個區域劃分為多個區域,這種情況下配置多個NET可以在重新配置時仍然能夠保證路由的正確性。由於一臺路由器最多可配置3個區域地址,所以最多也只能配置3個NET。在配置多個NET時,必須保證它們的System ID都相同。例如NET為:ab.cdef.1234.5678.9abc.00,則其中Area為ab.cdef,SystemID為1234.5678.9abc,SEL為00。
-
IS-IS在路由域內採用兩級的分層結構。一個大的路由域被分成一個或多個區域(Areas)。區域內的路由通過Level-1路由器管理,區域間的路由通過Level-2路由器管理。
-
Level-1路由器負責區域內的路由,它只與屬於同一區域的Level-1和Level-1-2路由器形成鄰居關係,維護一個Level-1的LSDB,該LSDB包含本區域的路由資訊,到區域外的報文轉發給最近的Level-1-2路由器。類似於OSPF的內部非骨幹路由器。
-
Level-2路由器負責區域間的路由,可以與同一區域或者其它區域的Level-2和Level-1-2路由器形成鄰居關係,維護一個Level-2的LSDB,該LSDB包含區域間的路由資訊。所有Level-2路由器和Level-1-2路由器組成路由域的骨幹網,負責在不同區域間通訊,路由域中的Level-2路由器必須是物理連續的,以保證骨幹網的連續性。只有Level-2路由器才能直接與路由域外的路由器交換資料報文或路由資訊。
-
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用於區域間路由。類似於OSPF的ABR。但它不向L1路由器通告L2路由,所以L1路由器不會學到區域外的路由,這有點像OSPF的完全末節區域。
說明:於不同區域的Level-1路由器不能形成鄰居關係。Level-2路由器是否形成鄰居關係則與區域無關。
-
IS-IS路由協議中的路由資訊分為四級:
-
Level-0存在於ES與IS之間,準確的講不算路由協議,我們可以稱它為Discovery Protocol發現協議,類似於TCP/IP網路中的ARP地址解釋協議。
-
Level-1存在於同一區域內的多臺路由器之間,用於實現區域內路由,類似於OSPF的域內路由(O)。
-
Level-2存在於同一域內的多臺路由器之間,用於實現域內路由,類似於OSPF的域間路由(O IA)。
-
Level-3存在於不同的域之間,類似於TCP/IP網路中由BGP實現的AS間路由。
-
IS-IS協議認證:IS-IS的認證只限於明文口令,Cisco的IOS支援3個級別的認證:
-
鄰居認證——相互連線的路由器介面必須配置相同的口令,同時必須為L1和L2型別的鄰居關係配置各自的認證,L1鄰居認證的密碼和L2鄰居的認證的密碼可以不同。鄰居認證通過命令“isis password”配置。
-
區域認證——區域內的每臺路由器必須執行認證,並且必須使用相同的口令。區域認證通過命令“area-password”配置。
-
域認證——域內的每一個L2和L1/L2型別的路由器必須執行認證,並且必須使用相同的口令。域認證通過命令“domain-password”配置。
-
介面的路由層次型別:對於型別是Level-1-2的路由器,可能需要與某個對端只建立Level-1的鄰接關係,與另一個對端只建立Level-2的鄰接關係。可以通過設定相應介面的路由層次型別來限制介面上所能建立的鄰接關係,如Level-1的介面只能建立Level-1的鄰接關係,Level-2的介面只能建立Level-2的鄰接關係。對於Level-1-2的路由器,通過將某些介面配置為Level-2,還可以防止將Level-1的Hello報文傳送到Level-2骨幹網上,從而節省頻寬。
路由滲透(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網路型別只支援兩種根據物理鏈路不同可分為:
-
廣播鏈路:如Ethernet、Token-Ring等。以多播形式傳送LSPs。
-
點到點鏈路:如PPP、HDLC等。以單播形式傳送LSPs
-
對於NBMA(Non-Broadcast Multi-Access)網路,如ATM,需對其配置子介面,並將子介面型別配置為點到點網路或廣播網路。IS-IS不能在點到多點(Point to MultiPoint,P2MP)鏈路上執行。
IS-IS報文格式:
-
PDU頭格式:網路層的PDU稱之為資料報或包(Datagram or Packet),資料鏈路層的PDU稱之為幀(Frame)。IS-IS報文是直接封裝在資料鏈路層的幀結構中的。