魏 紅 韓 冰
[摘要]IS-IS是一種等級式的、鏈路狀態式的路由通訊規程。它是通過向整個網絡廣播連路狀態信息,以此建立一個完整的網絡結構信息。要設計、操作一個IS系統,IS-IS分為第一級和第二級系統。第一級系統將只與同一區域內的其它第一級系統通訊。而第二級系統將把屬于不同區域的路由器連接起來。IS-IS與OSPF非常類似,例如,它們都屬于鏈路狀態,使用不同的區域,分級式路由通訊規程。OSPF已經被使用的非常廣泛。幾年前,IS-IS還沒有受到如此廣泛的重視,最近以來,越來越多的英特網服務提供商,以及IPV6的應用都對IS-IS這項功能提出要求。對IS-IS和OSPF的功能、為什么要引入IS-IS及其優點進行論述。
[關鍵詞]路由通訊規程 IS-IS OSPF IPv4 IPv6
中圖分類號:TN91文獻標識碼:A文章編號:1671-7597(2009)0310007-02
一、引言
Intermediate System-to-Intermediate System(IS-IS)是一種鏈路狀態的分級式路由規程。它是廣播網路鏈路狀態信息到整個網絡,從而建立一個完整的一致網絡拓撲結構數據庫。為了路由器的設計和操作,IS-IS分為第一級和第二級。第一級路由器只與同一區域內其他第一級路由器通訊。第二級路由器用于連接不同區域的第一級路由器。IS-IS與OSPF兩者有眾多相似之處,如:同屬于鏈路狀態式路由通訊規程,都是使用不同的分區,分級式路由通訊規程。由于OSPF已經獲得了極為廣泛的應用,而IS-IS在以前較少為人們所用,尤其是在IPV4領域。但隨著近期較多來自ISP(Internet Service Provider)的要求,尤其是IPV6的越來越廣泛的應用,使得IS-IS逐漸引起了人們的注意。本文作者想就IS-IS的一些特點,以及它與OSPF的比較論述一下自己的觀點。
二、IS-IS不像OSPF那樣需要設定邊界
所有的消息由特殊類型標題加上type/length/value(TLV)的這種結構組成。這樣一來,就帶來了結構上的靈活性、可擴展性、兼容性方面的優勢。但也帶來了運算上的復雜性,給CPU帶來了較多的負擔。
三、IS-IS路由規程是工作在數據鏈路之上而不是工作在IP層之上
所以來自于外部的基于IP基礎上的攻擊對于IS-IS是無能為力的。但是這也引入了另一個問題--信號傳輸的優先順序選擇。在擁塞的情況下,當信息包不能被馬上傳遞時,路由器會將它們先放在隊列上。很明顯尋路規程的信息包應該得到最高的優先級。這對于OSPF來說,因為它使用IP來進行路由規程的通訊,所以是沒有問題的。但對于使用數據鏈路層的IS-IS路由規程來說,優化這種信息比較復雜了。
四、相對應于OSPF的AID(區域ID),RID(路由器ID)這兩項是被分開表述的。而IS-IS AID和SysID(系統ID)則是被統一表述在NET(Net working Entity Title)一項下。
五、IS-IS使用三種Hello消息,而OSPF后則使用一種Hello消息
首先,IS-IS在始發于點對點,和廣播鏈路上是使用不同的Hello信息的。在廣播鏈路上Hello類別的不同是建立在“一個潛在的鄰居”是否在同一個區域或在不同的區域。在某種局域網鏈路上傳送哪一種Hello是取決于該路由器接口的不同配置。
六、IS-IS“鄰接”的建立
當IS-IS雙向通訊建立起來以后,IS-IS鄰居就認為他們進入了“鄰接”狀態。這是發生在數據庫同步之前,而此之后就可以同步它們的數據庫了。IS-IS數據庫的同步是一個相對簡單、靈活的過程。OSPF使用復雜的狀態機來同步它的數據庫,受嚴格的狀態機來控制。
七、IS-IS DIS(Designated Intermediate System)系統
IS-IS的DIS(Designated Intermediate Systems)與OSPF DR有以下明顯的區別:
1.沒有備份DIS。
2.一個有高優先級的IS將會直接換掉已有的DIS。
3.設置優先級為“0”并不意味著此路由器不可能成為DIS。
4.是一個廣播網絡的網狀網“彼鄰”連接,而不是只與DIS發生連接。
5.在一個廣播網絡上,不同的DIS能夠同時擁有L1和L2“鄰接”。
八、IS-IS區域和路由器類別
同OSPF一樣,IS-IS使用兩極式結構。所有的區域之間的交通量必須經由更高一級區域來連接,以避免環路。較高一級稱作L2(LEVEL 2),較低一級被稱為L1(LEVEL 1)。沒有預留的骨干區域(0.0.0.0)。這點與OSPF是不同的。
九、IS-IS 數據庫的同步
在OSPF和IS-IS之間,數據庫同步唯一的相似點是:在一個廣播網絡上,所有的OSPF 的路由器將與DR來同步;而IS-IS的路由器將與DIS來同步。一個最大的不同點是:OSPF在DR、BDR和DROTHER上是使用不同的組播地址的。而IS-IS只是在L1和L2的“鄰接”信號類別上加以區別。而CSNP、PSNP、和LSP都是用組播加以傳送,并且所有在廣播網絡上的路由器都會收到同樣的這些信號。
十、區域的設計
為了在兩個區域(L1,L2)之間傳送路由信息,至少需要一個路由器來連接兩個區域,并保留每個區域的鏈路狀態數據庫,同時在每一個區域運行分立的SPF運算。OSPF把這種路由器稱為ABR(區域邊界路由器)。在IS-IS中,L1/L2就類似于OSPF的ABR。
通常情況IS-IS的L1區域是“totally stubby”區域。不會從L2區域傳播路由信息到L1區域(但也有例外,請看下文11、L2 to L1路由的滲透)。L1/L2路由器將它所連接的L1區域路由信息傳入到與它相連的L2區域。
十一、地址的匯集(Address Summarization)
IS-IS可以在一個L1區域內匯集路由,以簡化L2 LS數據庫。同時,L1-only路由器不能總結自己的路由,因為這樣一來將會引起L1區域內數據庫的不穩定。這點和OSPF一樣。只有L1/L2路由器可以總結L1區域的路由,然后傳送到鄰接的L2鄰居。
十二、L2 to L1路由的滲透
假如一個L1區域只有一個L1/L2出口路由器,那么就會只有一條缺省出去的道路。這不會引起問題。但假如有多個L1/L2路由器,而可供L1-only路由器使用的信息是有限的,就會限制它們選擇最好的出去的道路。所以這時最好從L2區域滲透一些特殊信息到L1區域。RFC 1195是禁止這樣做的。所以又制定出了RFC2966,用于新增功能,以允許這樣做。
十三、IS-IS虛擬鏈路
在OSPF中,虛擬鏈路是用于通過非主干區域,修復被分開的主干區域。IS-IS正好相反,使用虛擬鏈路是用于修復被分開的L1區域,而這卻要通過L2主干區域。IS-IS是主要應用于ISP的,而ISP要么根本不需要L1區域,要么即便有L1區域,L1區域也是完整設計的,所以也許根本就沒有用戶需要這項功能。
十四、同等費用多條路由(ECMP)
假如有多條路由到一個終點,所有路由費用相等,這叫ECMP,那么像OSPF一樣,IS-IS支持ECMP。這時,將會停止工作SPF的運算。
十五、抗攻擊性
IS-IS是可以被很多種網絡攻擊手段攻擊的,例如:
1.惡意的改變某些Hello消息中的數據,可以用于斷開或欺騙鏈路那邊的IS-IS 路由器。
2.送出哄騙式的LSP消息,例如,假裝是從某個已存在的域里發過來的,這樣可以引起巨大的交通量、運算量。
3.一個假的或無效的Hello消息,并設置為高優先級,可以引起DIS的重新選擇,甚至接受一個根本不存在的DIS。
等等,都可以對之造成攻擊。但是我們再仔細想想,這些攻擊必須來自于網絡內部。因為,IS-IS信令消息是工作在數據鏈路層的,所以IS-IS是免疫于任何外部網絡的IP式的攻擊的。而OSPF在這方面卻是望塵莫及的。
十六、身份鑒別
IS-IS的身份鑒別類型、數據是被封裝在TLV(type/length/value)。TLV類型是10。而后TLV可以被裝載在所有種類的IS-IS PDU中。ISO 10589只申明了明文傳送密碼鑒別方式。其它可用的域值還屬于預留區,將來可用。現在已有很多路由器廠家使用這些區域了。有些已經支持下MD5功能了。
十七、平滑重啟動
在RFC 3847中,IS-IS平滑重啟動使用一個新的TLV,被稱做成“啟動TLV”,裝在Hello消息中傳輸,這與OSPF相似。
十八、IS-IS 可擴展性
事實上,新功能的引入只需加入新的TLV到一個LSP中,因此IS-IS比OSPF更容易擴展,而LSP自身的結構保持不變。這就比給OSPF定義一個新的LSA簡單。而且,當IS-IS碰到一個新的、不知道的TLV時,只是不改變它,繼續傳送。而OSPF卻是將它扔掉。這樣一來,在IS-IS網絡中引入新功能時,尤其是在一個子網中,就很方便有效了。
十九、向IPv6的擴展、升級
IS-IS向IPV6擴展時,只需在現存的規程中加入兩個新的TLV。它們是:IPV6 Reachability,IPV6 interface Address TLV。當一個路由器支持IPV6時,它需要將“Protocols Supported TLV”的IPv6 NLPID的值設置為“142(0x8E)”。
參考文獻:
[1]捷夫多 艾多,路由TCP/IP,第一卷:CCIE專業最終版[M].美國:Cisco出版社出版,2005.
[2]湯姆 托馬斯,OSPF網絡設計解決方案[M].美國:Cisco出版社出版,硬皮本,第二版,2003年4月,ISBN:1587050323.
[3]汗奈斯 格來德勒、沃爾特 高若斯基,完全的IS-IS路由規程[M].美國:斯普林格出版社,2004年12月出版.ISBN:1852338229.