前文我們瞭解了OSPF的特殊區域相關話題,回顧請參考https://www.cnblogs.com/qiuhom-1874/p/15236330.html;今天我們來聊一聊另一動態路由協議IS-IS相關話題;
IS-IS簡介
IS-IS(Intermediate System-to-Intermediate System,中間系統到中間系統)動態路由協議和ospf路由協議一樣,兩者都是基於鏈路狀態,使用SPF演算法計算路由內部閘道器協議(IGP);IS-IS最初是國際化標準組織ISO為它的無連線網路協議CLNP(Connection Less Network Protocol)設計的一種動態路由協議;由於IP協議的廣泛使用,為了提供對IP協議的路由支援,IETF在RFC1195中對IS-IS進行了擴充和修改,使得IS-IS協議同時能夠應用在TCP/IP和OSI的環境中,修訂後的IS-IS協議被稱為整合化的IS-IS(Integrated IS-IS或Dual IS-IS);由於IS-IS的簡便性和極強的擴充套件性,目前在大型的ISP的網路中被廣泛應用;
提示:IS-IS工作在資料鏈路層,在OSI七層模型中,它的上層協議是網路層CLNP,早期IS-IS只支援OSI七層模型環境;後來因為TCP/IP五層模型被廣泛使用,為了能夠提供對TCP/IP五層網路模型的支援,後面IS-IS協議經過修訂和改良,擴充了對TCP/IP五層網路模型環境的支援,所以我們現在用到的IS-IS協議都是整合後的IS-IS協議;它既能支援OSI七層模型的CLNP網路,同時也支援TCP/IP的五層IP網路;相對於OSPF來說,OSPF支援ip網路,不支援CLNP網路;OSPF工作在IP層,而IS-IS協議工作在資料鏈路層;
IS-IS場景應用
提示:園區網特點,主要是應用型網路,主要面向企業網使用者;路由器的數量偏少,動態路由的LSDB庫容量相對較少,三層路由域相對偏少;有出口路由的概念,對內部外部路由劃分比較敏感;地域性跨度不大,頻寬充足,鏈路狀態協議開銷對寬頻佔用比偏少;路由策略和策略路由應用頻繁多變,需要精心細化的路由操作;OSPF的多路由型別(內部/外部),多區域型別(骨幹/非骨幹/特殊),開銷規則優良(根據頻寬設定),網路型別多樣(P2P/MA/P2MP/NBMA)的特點在園區網得到了極大的發揮,所以目前ospf普遍用於園區網;對於骨幹網來說,它的特點主要是服務性網路,有ISP(網際網路服務提供商)組建,併為終端使用者提供互聯服務;路由排程佔絕對統治地位,路由器數量龐大;架構層面扁平化,要求IGP作為基礎路由為上層BGP協議服務;LSDB規模巨集大,對鏈路收斂極度敏感,線路費用昂貴;追求簡單高效,擴充套件性高,滿足公眾客戶業務需求;IS-IS的快速演算法(RPC得到加強),簡便報文機構(TLV),快速鄰居關係建立,大容量路由傳遞(基於二層開銷低)等一些特點在骨幹網有著天然的優勢,所以IS-IS在骨幹網得到廣泛應用;
IS-IS拓撲結構
提示:對於IS-IS來說,它不像OSPF中以介面來劃分區域,一個路由器可以同時屬於多個區域(ABR);在IS-IS中區域的邊界是根據路由器的型別來劃分的,這也意味著IS-IS中一個路由器只能屬於某一個區域,不能同時屬於多個區域;IS-IS為了適應中大型網路,它的拓撲結構使用了層次化結構;採用了骨幹區域和非骨幹區域兩級的分層結構;一般來說,將Level-1路由器部署在非骨幹區域,Level-2路由器和Level-1-2路由器部署在骨幹區域;每一個非骨幹區域都通過Level-1-2路由器與骨幹區域相連;
IS-IS與OSPF區域對比
提示:對於is-is來說,區域劃分是以路由器的型別來劃分,而ospf的區域劃分是以介面來劃分;is-is骨幹區域是有L2和L1/2路由器共同組成,而OSPF骨幹區域是area 0為骨幹區域;對於路由演算法,is-is計算路由使用SPF演算法,而ospf在同一個區域內使用SPF演算法,區域間路由不是SPF演算法,而是根據三類LSA傳遞(直接傳遞打包好的路由資訊,不需要再次使用SPF演算法計算);
IS-IS路由器分類
提示:is-is路由分三種類型,分別是Level-1路由器(簡寫L1);該型別路由器只能建立L1型別路由器的LSDB;L2型別路由器只能穿件L2型別路由器的LSDB;L1-2型別路由器是預設的型別,它能同時建立L1型別路由器的LSDB也能建立L2型別路由的LSDB;
IS-IS鄰居關係
提示:對於L1型別路由器來說,它只能在同區域內和L1或者L1-2型別路由器建立鄰居;所謂相同區域是指區域ID相同;對於L2型別路由器來說,它沒有區域的限制,它可和同區域或不同區域的L2或L1-2建立鄰居;對於L1-2路由器來說,它可以和相同區域或不同區域的L1或L2或L1/2型別路由建立鄰居;這裡需要注意一點的是,L1型別路由器不能與L2建立鄰接關係,不管是否在同一區域;對於不同區域的L1型別路由也是不能建立鄰接關係;
總結:L1型別路由器建立鄰居的條件是區域ID必須相同,其次不能與L2建立鄰居,不管區域ID是否相同;對於L2來說,它沒有區域id是否相同的限制,但它只能與L2或L1-2型別路由器建立鄰居,不能與L1建立鄰居,不管區域是否相同;對於L1-2,沒有區域id是否相同的限制,同時也沒有路由器型別限制,它可以和L1、L2、L1-2這三種類型路由器在不同區域或相同區域建立鄰居;
IS-IS網路型別
提示:IS-IS的網路型別只有兩種,分別是廣播網路(LAN)和點到點網路(P2P);PPP和HDLC上,介面預設網路型別就是點到點(P2P);乙太網和token-ring(令牌環網)上,介面預設網路型別為廣播網路(LAN);
點到點網路中的鄰接關係
提示:對於L1鄰接關係,它只能在相同區域內建立;對於不同區域來說,L1的鄰居是不能建立;在相同區域內,L1和L1或L1-2建立L1的鄰接關係;L1-2和L1-2即建立L1的鄰接關係同時也建立L2的鄰接關係;對於不同區域來說L1-2和L1-2只能建立L2的鄰接關係,不能建立L1的鄰接關係;L2和L2建立L2的鄰接關係;
廣播網路上的鄰接關係
提示:對於廣播網路IS-IS和ospf一樣,都要選擇DR;在IS-IS裡不叫DR而叫DIS;作用就是建立和更偽節點,以簡化拓撲減少資源消耗;同一級別的路由器之間都會形成鄰接關係;上圖中L1和L1-2、L1 DIS建立L1的鄰接關係;L1-2和L2 、L2 DIS建立L2鄰接關係;
DIS和DR對比
提示:偽節點是在廣播網路中自動生成的虛擬節點,它和其他路由之間通過虛擬鏈路連線,形成鄰接關係;主要作用是傳送CSNP,同步LSDB資料庫;CSNP我們可以理解為OSPF中的DD包,用來對比資料庫摘要;在ospf裡DR的主要作用是減少LSA泛洪;其次對於鄰接關係來講,IS-IS中的DIS是與所有路由器建立鄰接關係,而OSPF中DRother之間建立2way關係;在IS-IS裡DIS沒有備份,在OSPF裡有BDR;同時OSPF裡的DR不具有搶佔性,一旦選定只有重啟程序才能觸發DR重新選舉;而IS-IS裡DIS是具有搶佔性的;從層次性來講ospf裡沒有層次性,在IS-IS裡有L1的DIS和L2的DIS,不同型別路由之間建立不同型別的鄰接關係,生成不同型別的DIS;
IS-IS地址結構
提示:NSAP(Network Service Access Point)網路服務接入點;它是OSI中網路層的地址,提供網路層和上層應用的介面,相當於ip地址和協議號;主要由DIP和DSP組成;IDP(Initial Domain Part)相當於ip地址中的主網路號;DSP(Domain Specific Part)相當於IP地址中的子網號和主機地址;AFI(authority and Format Identifier)標識地址分配機構和地址格式;IDI(Initial Domain Identifier)標識域;HODSP(High Order DSP)分割區域;AFI+IDI+HODSP這三個欄位共同組成了區域地址;system ID區分主機,相當於OSPF裡的router id;SEL是用來標識服務型別;SEL為00表示是NET服務型別,在IP網路中,SEL的值均為00;即IP網路中NSAP服務型別為NET;
TCP/IP協議棧和OSI系統地址結構對比
提示:OSI系統的CLNP協議就類似TCP/IP協議棧裡的IP協議;NSAP地址就類似IP協議中的IP地址;對於OSI系統中的IS-IS協議來說,它的NET識別符號,就類似IP協議中的OSPF區域ID和router ID;NET是一類特殊的NSAP地址(SEL=00),在路由器上配置IS-IS時,只需要考慮NET即可;
NET地址結構
提示:NET地址由三部分組成,第一部分是區域id,由16進位制字元組成,最小1位元組,最大13位元組;區域地址主要作用既能標識路由域,同時也能表示路由域中的區域,相當於OSPF中的區域編號;兩個不同的路由域中不允許有相同的區域地址,即多個區域不允許有相同的區域編號;一般情況下,一臺路由器只需要配置一個區域地址,且同一區域中所有節點的區域地址都要相同;為了能夠支援區域的平滑合併、分割及轉換,一臺路由器最多可配置3個區域地址;第二部分是system ID,佔6位元組,由12位16進位制字元組成,每4位一組,分三組,system ID主要用來在區域內唯一標識主機或路由器,類似OSPF中的router ID;最後是SEL,佔1位元組,由2位16進位制字元組成;在IP網路環境中,該值為固定00;NET是特殊的NSAP地址,即SEL=00的NSAP地址,最多20個位元組,最少為8位元組,一臺路由器最多可配置三個NET地址,配置多個NET地址時,需要保證他們的system ID相同;
NET生成方法
提示:為了便於管理,一般根據router ID來生成對應的system id;這只是一種生成NET地址的方式,不是強制必須這樣,我們也可以手動根據網路環境規劃,自定義NET地址;
NET地址規劃注意事項
提示:同一區域的區域id必須相同;system id必須唯一;
實驗:如下拓撲,配置IS-IS,實現R1的lo1介面和R2的lo介面互通
R1配置介面ip地址


sys
sys R1
int g0/0/0
ip add 12.0.0.1 24
int lo 1
ip add 1.1.1.1 32
R2配置介面ip地址


sys
sys R2
int g0/0/0
ip add 12.0.0.2 24
int lo 1
ip add 2.2.2.2 32
R1上配置ISIS路由器型別為L1
提示:isis命令後面的數字77表示程序號;
R2上配置ISIS路由器型別為L1
提示:預設路由器型別為L1-2;
在R1上配置NET地址
在R2上配置NET地址
在R1的g0/0/0和lo1介面啟用isis程序
在R2的g0/0/0和lo1介面啟用isis程序
提示:在介面上啟用isis操作我們可以理解為ospf中的把對應網路宣告出去;
抓包檢視isis hello 包結構
提示:從上面的抓包情況可以看到isis封裝在資料鏈路層之上,它的二層協議不是Ethernet II 協議,而是802.3 Ethernet,和STP二層協議一樣;對於ISIS的資料包來講,它和OSPF一樣也分為通用包頭和專用包頭;通用包頭主要用來描述資料包型別,isis協議,資料包長度等資訊;專用包頭用來描述對應型別的包相關資訊;
驗證:在R1上檢視isis鄰居
提示:可以看到在R1上isis和system id為0000.0000.0002建立起型別為L1的鄰居;
驗證:檢視R1的路由表,看看是否學習到R2的lo1介面路由?
提示:可以看到對應R1通過isis學習到R2的lo1介面的路由;
驗證:用R1 的lo1介面ping R2的lo介面地址,看看是否能夠正常通訊?
提示:可以看到R1的lo1介面能夠正常和R2的lo1介面通訊;