路由協議的後宮寵妃 - IS-IS大揭秘
當你點開這篇文章,我不得不說,你前途無量。
為什麽,世界杯期間誰還去學習精進那?
你果然器宇不凡。
既然進來了,就讀一下吧,讀完順便點個贊,在關註我一下,那就更好了~
好了,廢話不說,上菜。
故事背景
OSPF路由協議,相信你配置的熟練,聽得耳爛,看的厭煩。
毫無疑問,OSPF在業界是出了名的成功,無論是同一個廠家的設備,還是異廠家對接,OSPF都是一個非常不錯的選擇。
穩定的輸出,簡單的配置,豐富的功能。
可是,還有一個OSPF的孿生姐妹,功能與OSPF類似,而且輸出極其穩定,它就是今天我們要說的主角:IS-IS,這位路由界的深宮妃子。
之所以想起聊聊這位後宮美人,是因為大家對她都比較陌生,只聞其名,不見其人。剛好在我的《老司機網絡運維幹貨集錦 》專欄裏面,有朋友問道IS-IS協議的諸多細節,我覺得有必要通過一個簡單易懂的文章,同大家聊聊IS-IS的特點。
如何聊?
逐個盤點知識細節?這不是我的風格,我們就追求簡單易懂,上手即用。
所以最好的方法,就是通過一個熟悉的東西作為參照對象,從而讓你能夠快速上手。
這個對象,不用說,非OSPF莫屬。
IS-IS協議簡介
IS-IS全名並不是中東某某集團、讓你出國玩的時候很不爽的那一幫人。他們的名字中間少了一個橫杠(-)。
此處說的IS-IS,名為中間系統-中間系統。
英文名:Intermediate System to Intermediate System?(IS-IS)
名字很奇怪,之所以叫做“中間系統”,則是ISO這幫人對於網絡設備的一個稱呼,因為網絡設備是介於終端之間。所以稱之為中間設備,這就好像寫什麽文書,本來大白話可以說清的,非得一副文縐縐的樣子。
而終端,例如服務器,主機等,則稱作終端系統“End System”。
選手介紹完畢。
總覽
下圖為OSPF 和IS-IS的各項區別和相似之處:
由於篇幅有限,也不想把文章當做說教之處,本文僅僅從裏面挑出幾個比較有意思的點和你一起分享。
還是那句話,掌握思路比學到具體的知識更重要。
而且說到知識儲備,有誰拼得過百度和google呢?能搜就行了。
接下來,開始進入PK環節:
底層協議PK
OSPF:
OSPF是基於IP的路由協議,利用IPv4包頭承載OSPF的數據包。如下圖所示:
IS-IS:
IS-IS就不一樣了,IS-IS是基於ISO的OSI協議模型的。
不知道大家是否還記得常說的OSI 7層協議模型,什麽物理層,數據鏈路層,網絡層等等。
其實這就是OSI 7層模型,而這7層模型中,還存在很多各種各樣的協議,見過的沒見過的。
如下圖所示:
你可能很奇怪,比如網絡層,協議不應該是IP麽?傳輸層不應該有TCP,UDP麽?怎麽都看不到了。
其實TCP也好,IP也罷,都是基於TCP/IP協議模型,而非傳統的OSI模型。
只是隨著時間的推移,人們喜歡OSI的模型來描述網絡層級,因為它更精確。
但是同時用現今流行的網絡協議來對應到OSI層級上,所以就出現了,網絡層IP,傳輸層TCP、UDP等協議的說法。
回到正題,你會發現,IS-IS就在上圖中Network網絡層的層級裏面。
剛開始IPv4還沒占領全宇宙的時候,OSI的這些古怪協議都還有人用,自然而然,就需要一個路由協議來學習各個奇葩協議的網段,IS-IS就應運而生了。
相比OSPF使用IP地址來互相建立鄰居,IS-IS也需要一個OSI界的地址族,這就是NET(Network Entity Title:網絡實體名稱)。
一個典型的IS-IS NET的地址結構是這樣的:
最左邊的49.0001是區域號碼,中間的192xxxx8001是系統號,右邊的NSEL號碼配置為00,代表路IS-IS路由器自身的地址。
NET地址小竅門:
有沒有發現上面的1922.5112.8001很熟悉。
其實他是這樣的:192.251.128.001。這不就是一個 傳統的IPv4地址麽。
完全正確。
由於IS-IS的NET地址一臺路由器只需要配置一個,通常都配置在lo0接口上。
所以最方便的就是把Lo0的IPv4地址轉換一下變為NET地址。
例如192.168.1.1 可以轉換為:49.0001.1920.1680.1000.1000.00
最後,讓我們一起看看IS-IS的數據包結構:
區域劃分
多區域的OSPF
OSPF為了獲取網絡部署的靈活性,和各項路由功能,特定把整個OSPF域做了如下劃分:
- Area 0 骨幹區域,骨幹區域用於連接其他OSPF區域。
- Area xxx 非骨幹區域,連接到骨幹區域。非骨幹區域可以實現各種功能,以及在非骨幹和骨幹區域之間實施路由策略。
一般情況下,OSPF的多區域網絡劃分是這樣的:
上述拓撲相信大家已經司空見慣。
但是請再次註意一點,那就是兩個區域之間的連接,是通過一臺路由器相連,此路由器我們稱之為ABR。
換句話來說,一臺路由器跨越了兩個區域。
同時,OSPF可以有很多區域,你可以基於你的需求來定義區域的數量。
回過頭來看看IS-IS。
雙區域的IS-IS
傳統模式
IS-IS也有區域的概念,但是相對於OSPF,它的區域則是簡單的多。
IS-IS僅僅存在兩個區域層級:
Level 2:骨幹區域,類似於OSPF的Area 0。
Level 1:非骨幹區域,類似於OSPF的非Area 0的區域。
兩者之間的關系,如下圖所示:
上述拓撲中,level 2作為主幹,左右兩側作為分支。
但是請註意,左右兩邊沒有Area號碼這一說,都是同屬於Level 1。
同時,OSPF的ABR部分,則稱作L1/L2路由器,即把L1和L2互聯起來的路由器。
眾人大呼上當,這不是和OSPF一模一樣麽,換湯不換藥,就是把Area改為Level而已,ABR換一個名字?
真是如此嗎?
獨立模式
讓我們在看另外一個拓撲:
上圖有兩臺路由器,他們建立了IS-IS鄰居關系,而且同時在Level1和Level2層級上建立鄰居關系。
這就神奇了,你見過哪一個OSPF路由器可以同時把Area 0和Area 1重疊起來建立麽?
OSPF不可以,但是IS-IS可以。
IS-IS的Level 1和Level 2的鄰居狀態數據庫等一切信息都是互相獨立的,兩者之間不產生交集,也不共享路由信息。
除非像上述傳統模式拓撲內,存在一個L1/L2路由器,同時把兩邊銜接起來,此時L1和L2才存在互相通告路由的可能性。
IS-IS有趣的網絡結構就此結束了麽?
肯定不會,下一個。
多域模式
在看圖之前,先問個問題,你見過OSPF存在不同的域麽?
沒有吧,OSPF沒有類似於EIGRP或者BGP那樣,存在一個自治系統號。
所以你不會看到下面這樣的OSPF拓撲圖:
但是,IS-IS卻可以。
回到本文上半部分講述IS-IS NET地址時,存在一個Area id區域號碼。上述的例子是49.0001。
換句話說,IS-IS就可以存在多個域。
而域和域之間肯定存在互聯關系,自然而然就引入下面的拓撲:
上述拓撲中,存在三個IS-IS域。
他們之間必須通過L2骨幹鏈路互聯,而且互聯的方式是兩兩互聯,兩兩之間分別處於不同的域內。
這個再次和OSPF區別開來,OSPF的Area之間通過一臺ABR互聯。
DR/BDR vs DIS
既然說到域,就順帶提提DR、BDR 指定路由器,備份指定路由器。。
DR和BDR是在OSPF廣播型鏈路中,為了減少大量路由器兩兩之間交換的鏈路狀態信息,遂選舉出一個“村官”來管大家,所有同一個LAN裏面的OSPF路由器都要和村長DR聯系,同時還有一個副村長BDR,免得村長掛了。
那IS-IS裏面是否也有類似的設計呢?
答案是有的。
IS-IS裏面不叫DR,BDR。而是叫做DIS:Designated Intermediate System。
DIS是何須人也?其實非常容易理解:OSI模型裏面Router路由器 = Intermediate System中間系統。
兩邊同時加上一個Designate指定一詞,得到DR=DIS。
這就好理解了吧。
但是註意,IS-IS內沒有BDR,即BDIS一說,IS-IS不喜歡副村長。
協議特性:LSA vs TLV
LSA:OSPF的生命源泉
相信大家都知道OSPF都有哪一些常見的LSA類型,而每一個LSA都代表什麽意思。
例如一類LSA,二類LSA,3類,5類。7類等。
這些LSA匯總在一起,定義了OSPF的各種功能特性
毫不誇張的說,LSA賦予了OSPF蓬勃的生命力。
同時,正因為有了LSA,隨著時代的發展,當OSPF需要更多的功能時。
就可以通過開發新的LSA類型來滿足其功能上的需求,例如LSA9-11,負載MPLS相關的功能等。
同樣的,IS-IS也得有它的一套絕活,否則怎麽能在江湖上立足呢?
TLV:IS-IS的立命之本
TLV,全稱:Type,Length,Value,翻譯過來就是類型,長度,值。
它作為一個典型的編碼,被極其廣泛的應用在IS-IS協議內部。
通過定義不同的TLV,IS-IS也獲得了不同的功能。
常見的TLV如下所示:
Juniper 路由器 IS-IS輸出結果下的TLV對應圖:
IPv6怎麽搞定?
OSPF和IS-IS相安無事很多年,大家各司其職。
OSPF風靡全世界的企業網,而IS-IS則穩坐運營商骨幹網IGP協議的鰲頭。
可是,突然有一天,一個不速之客來了。
那就是IPv6。
就在大家都嚷嚷說要上IPv6的時候,兩個協議也需要繼續跟進。
OSPF 的困獸之鬥
先說說OSPF。
剛才說過,OSPF若需要新的協議特性和功能,就通過開發LSA類型來解決。
可是這次這方法不靈光了。
為什麽?
因為OSPF的根是在IPv4上,鄰居關系,hello包的組播地址,一切的一切都是以IPv4為基礎。
所以OSPF若要新增IPv6的功能,不是簡簡單單一個LSA就能搞定的問題了。
所有一切都得推倒重來。
於是乎,無奈之下-OSPFv3誕生了。
OSPFv3同時兼容了IPv4和IPv6,雖然很好。
但是它意味著你需要單獨在跑一個路由協議,OSPF和OSPFv3是兩個獨立的協議。
我知道,很疼。
IS-IS第二春
IS-IS,就很有意思了。
當IS-IS看到OSPF這般難受時,不禁大笑。
為何?
因為IS-IS特殊的身世。
還記得,IS-IS可是誕生於ISO的OSI模型之下,它和後來的IP一點瓜葛都沒有。
所以,這是IS-IS的根:OSI網絡模型。
後來1990年,IS-IS通過新增一個TLV的方式,把IPv4加進來了。
對他來說,新增IPv4就是一個TLV而已。
同理,新增IPv6也就是另外一個TLV而已。
就因為這樣,當你運行IS-IS的時候,你不需要開啟任何特殊功能,IS-IS同時兼容IPv4和IPv6。
運營商的同學們也沒有任何心理負擔,只需要配置IPv6地址在接口上,馬上就有了一張原生的IPv6網。
怎麽一個爽字了得。
這就印證了一句話:風水輪流轉,今年到我家
想當年OSPF就因為選擇了IPv4作為其基礎,從此走向了康莊大道。
可是,有時候你覺得,某些東西是你的絕對優勢的時候。
某一天,峰回路轉,它反而讓你寸步難行。
路由協議都是這樣。
何況人生呢?
結束語
經過一番胡侃瞎聊,相信你就算從來沒碰過IS-IS這個協議,現在也有一個大致的了解了。
我也沒打算花大篇幅一個個的給你講IS-IS的諸多細節,內容繁多不說,你看了看可能就半路撤退了,內容沒有獲取到,反而浪費你寶貴的時間。
授人以魚不如授人以漁~
好了,輪到你給小夥伴們吹噓了。。。
廣告時間 - 老司機網絡運維幹貨集錦
推廣專欄啦,我在51cto搞了一個網絡運維的專欄。
感興趣的朋友們不要錯過哈。
此專欄通過“網絡路由篇”,“網絡交換篇”,“網絡安全篇”,“QoS篇”四大典型技術模塊,分別給各位講述運維中的網絡設計思路和一些運維的技術難題。
知識不多-全是幹貨。
要不,來一份?
傳送門如下:
老司機網絡運維幹貨集錦
路由協議的後宮寵妃 - IS-IS大揭秘