IS-IS近年來因爲Cisco的力推,獲得了比較大範圍的應用。IS-IS和OSPF做爲兩種典型的鏈路狀態路由協議,不少人但願知道他們的異同點和各自的優勢,本文對這兩種協議作了些總結,不少都是本身的觀點,僅供參考。不當之處,歡迎討論!
相同點:
IS-IS和OSPF是鏈路狀態路由協議的兩個最典型的表明,都採用SPF算法來計算路由;
因爲具備快速收斂、無環路等特色,IS-IS和OSPF都能很好地支持大型網絡,但從全球的部署來看,採用OSPF的仍是佔了多數,而IS-IS在近幾年開始獲得比較多的應用;
IS-IS和OSPF同樣採用Hello協議來維護鄰居關係,但IS-IS的Hello協議與OSPF比起來,相對簡單的多;
IS-IS和OSPF都採用分層路由的概念,都有骨幹區域,爲網絡規劃提供了比較靈活並且實際的設計方案;
爲了控制鏈路狀態數據庫的規模和複雜度,IS-IS和OSPF在廣播網絡上都選舉DR來擔任數據庫同步的主要角色,但在細節處理上仍是有較大的差異的;
對協議報文的驗證能力是全部高級路由協議所必須具有的功能,IS-IS對於協議報文的驗證處理是有些特別的,它按照Level和PDU類型來處理;
IS-IS和OSPF對路由開銷的度量(metric)都採用了接口可配置的cost,可以比較正確地反映網絡的實際狀況;
在支持大型網絡的時候,觸發更新的Update方式比周期性廣播方式要節約大量的協議報文所產生帶寬消耗;
對於每一個LSP(LSA)都有一個記時器相關聯,正常狀況下在必定時間內(較長時間)會更新從新計時,若是在規定時間內沒有收到新的更新,將從數據庫中清除該LSP(LSA),再也不用作路由計算用;
對於邊緣區域中的路由器,一是經過區域劃分,二是經過設置區域類型來減小對路由器資源的需求。IS-IS能夠將區域中的路由器設置爲level-1 only類型,OSPF能夠將整個區域設置爲stub、total-stub或NSSA來減小數據庫的大小,同時保證正確路由。
不一樣點:
IS-IS最初是爲ISO的標準協議,爲CLNS設計的,後來增長了對IP的支持;而OSPF一開始就是IETF爲IP網絡設計的;
IS-IS協議直接在鏈路層上運行,報文直接封裝在鏈路層報文中,支持CLNS、IP等多種協議;OSPF報文封裝在IP中,只支持IP協議;
IS-IS協議中整個路由器只能所有屬於一個區域,區域邊界位於兩個路由器之間,路由器的LSDB按Level來維護;而OSPF按接口來,一個路由器能夠屬於多個區域,爲每一個區域維護一個LSDB數據庫;
OSPF經過特殊的區域ID Area0區來定義骨幹區,而IS-IS是經過連續的L2路由器來組成骨幹區;
IS-IS的採用的Hello協議比較簡單,OSPF比較複雜;並且IS-IS檢查比較寬鬆,鄰居之間的Hello和Dead等間隔不必定必須同樣,不象 OSPF要求必須一致才能造成鄰居關係;IETF對IS-IS提供一個改進的3-way的Hello協議,現已有draft:draft-isis- 3way-04.txt(3-way handshake);
IS-IS的LSP生存時間是從20分鐘(可配置)往下計算到0來清除舊的LSP,而OSPF是從0往最大值漲到60分鐘(週期不可配置)來清除更新舊的LSA的;
IS-IS協議的DR選舉比較簡單,並且是搶佔式可預見的,優先級最高的是DR,優先級別爲0的也可能成爲DR;爲了保證變更比較小,OSPF協議DR選舉機制比較複雜並不可預見,優先級最高的不必定是DR,優先級爲0的不可能成爲DR,而且有BDR的概念,DR失敗,BDR當即承擔DR的職責,而IS- IS沒有BDR,DR失敗,從新選舉DR;
IS-IS不支持P-2-MP類型的網絡,而且NBMA網絡都只能設置爲子接口模擬成P2P來運行;OSPF能夠很好地支持如下各類網絡類型:Broadcast,NBMA,P-2-P,P-2-MP;
標準的IS-IS 接口cost取值爲:0-63,對鏈路層區分不夠,而且一個網絡的metric達到1024就認爲不可達;而OSPF接口cost取值範圍爲:0- 1024,一個網絡的metric達到65535才認爲不可達。IEFT在 draf-ietf-isis-traffic-02.txt中擴大了IS-IS的cost的取值範圍和最大有效路徑metric。
IS-IS的Level-1的區域只能是是OSPF中Total Stub區域樣,依賴最近的區域邊界路由器做爲全部到區域外網絡的出口,形成次優路由;而OSPF很是靈活,非骨幹普通區域便可設置爲普通區域,選擇最優路由,也能夠設置爲Stub,Total Stub,NSSA;IETF對IS-IS已經提供一個改進解決方法: RFC 2966: Domain-wide Prefix Distribution with Two-Level IS-IS;
IS-IS一個路由器在一個協議報文中插入全部它發佈的IP前綴信息,若是大於發佈鏈路MTU,將分片,當前一個IS-IS LSP最多分爲255片,限制了大約只有3000個IP地址前綴; IETF對IS-IS提供一個改進解決方法,現已有draft:draft-isis-lsp-fragmets-04.txt;
IS-IS雖然在《ISO 10589》中雖然提出了virtual-link來修復分開的骨幹區域,但目前廠商基本沒有實現,在RFC 1195中也沒有提出;OSPF能夠很好地支持virtual-link來修復分開的骨幹區域或讓遠端的普通區域鏈接骨幹區;
RFC 1195中對於Level-1引入的外部可達信息,沒有以Code 130的TLV做爲IP External Reachability Information加入到LSP中,與區域內的路由信息沒法區分開;而OSPF對於引入的外部路由統一以Type 5(NSSA的時候是Type 7再轉換成Type 5)的LSA來區分處理。該問題已經在RFC 2966: Domain-wide Prefix Distribution with Two-Level IS-IS中解決;
IS-IS歷史上是爲CLNS路由而制定的,發展比較緩慢,對於IP的支持不少地方須要改進,雖然已經提出了draft,但大部分尚未造成RFC, CNLP和IP雙環境使用的優點並不明顯,是一個不是很成熟的協議; OSPF是專門爲IP設計的,更適合IP的路由,發展成熟,標準化程度高,支持廠商多,使用多缺點暴露多,改進也多。算法