夏晶
(黃岡職業技術學院,湖北 黃岡 438002)
內部網關協議IS-IS(Intermediate System to Intermediate System),即中間系統到中間系統,是內部網關協議的一種,它與OSPF 協議都是鏈路狀態協議。由于運用環境的不同,人們往往對OSPF 協議非常熟悉,但對IS-IS 研究較少,特別是對于鏈路狀態數據庫(LSDB)同步與路由計算研究的就更少了,因此,在運用IS-IS 協議的時候,弄清楚鏈路狀態數據庫同步和路由計算的原理與過程是非常有必要的。
IS-IS路由協議基于數據鏈路層,它的擴展性非常強,可以擴展到任意網絡層協議,比如IPv4、Ipv6、CLNP、IPX等,因為IS-IS 是基于TLV 的架構,支持多種網絡層協議。IS-IS的路由器類型有三種,分別是L1 level路由器,只能與L1或L1/L2路由器建立L1的鄰居關系,維護L1的LSDB;L2 level,只能與L2 或L1/L2 路由器建立L2 的鄰居關系,維護L2 的LSDB;L1/2,既屬于L1,也屬于L2,配置IS-IS 路由協議的路由器類型默認為L1/2,L1/2維護L1和L2的LSDB,非常類似于OSPF的ABR[1]。
在研究鏈路狀態數據庫同步之前,先要對鄰居關系的建立有所了解,IS-IS 協議的鄰居關系建立與OSPF 區別較大,建立過程中關鍵點如下:
(1)三次握手建立鄰居關系(3-way),路由器要求收到的IIH 中有自身的鄰居關系標記,所以需要得到對端的協商確認,這樣更加穩定、可靠。廣播多路訪問和點對點的網絡中默認的建立鄰居的方式都是三次握手。主要狀態是先DOWN,再到INIT,再到UP,當收到了鄰居的IIH 則進入INIT 狀態,當收到鄰居的IIH 中有自身的標記(MAC 地址或是System-ID)就會進入UP 狀態,其中在廣播多路訪問網絡中使用MAC 地址來標識鄰居關系,在點對點網絡中使用System-ID標識鄰居[2]。
(2)兩次握手建立鄰居關系(2-way),路由器如果只要收到了IIH就單方面認為鄰居關系建立,但這樣可能形成單身的鄰居,所以只能將點對點網絡配置為2-way,但點對點網絡的3-way默認向下兼容2-way。這樣就使3-way可以和2-way建立鄰居關系。如果要在點對點上建立穩定可靠的鄰居,可以在路由器上配置3-way only命令。
(3)影響鄰居關系建立的因素主要有:兩個路由器的System-ID 必須不一致、如果要建立L1 的鄰居關系,必須在同一個區域、只在廣播多路訪問網絡中要比較是否在同一網段、網絡的類型要一致、路由器級別要一致(考慮接口級別)、接口認證的類型和密鑰要一致。
IS-IS的物理區域劃分是基于配置NET地址中的area-id實現,其劃分區域的邊界在鏈路上,以路由器為單位劃分區域,其作用為標識路由器所在位置信息;骨干區域的劃分,即路由域的劃分是基于路由器類型實現,L2 的鄰居關系組成L2的區域為骨干區域,L1的鄰居組成L1的區域為非骨干區域,所以L1路由器必須通過L1/2路由器和L2路由器互通[3]。
IS-IS 的中路由器生成的每個LSP 都有一個LSP 標識符,即LSP-ID,格式為0000.0000.0002.00-00,其中前三段是指System-ID,即發送該LSP 的路由器的System-ID,類似于OSPF 中的ADV router。第一個00 表示偽節點標識符,如果該值為0,表示為實節點LSP;如果不為0,表示為偽節點LSP。最后一個00 表示分片標識符,它對LSP 進行分片,一個路由器可以將一條LSP分256個分片,一臺路由器可以配置最多50個虛擬系統,以及一個路由器本身的初始系統,每一系統可以配置256 個分片,最多就可以得到51*256 的分片,所以IS-IS具有非常強的路由承載能力。
(1)點對點網絡鏈路的兩端設備在進入UP之后會互相發送CSNP 報文,該報文描述LSDB 的全部摘要信息(LSPID,序列號,校驗和,剩余存活時間),并且只在開啟后發送一次。在CSNP 報文中攜帶起始LSP-ID 和終結LSP-ID,為了保證鏈路狀態數據庫的摘要信息如果不能在一個CSNP中描述則以多個發送出去,對端通過起始和終結的LSP-ID 信息得知LSP-ID信息得知CSNP報文的發送方式。
(2)對端通過CSNP報文可以得到自身的鏈路狀態數據庫的摘要信息,從而確定缺少哪些LSP,通過發送PSNP報文請求自身缺少的LSP,仍然攜帶LSP的摘要信息。
(3)當收到PSNP 之后會響應LSP 進行LSP 的更新,一個LSP 報文攜帶一條LSP 信息,對于收到的LSP 會發送PSNP進行確認,如果沒有收到PSNP確認,則重傳LSP,直到收到確認為止。
(1)選舉DIS,廣播多路訪問網絡網段的路由器會將自身所有的LSP發送出來,每臺路由器可以根據收到LSP自行同步,DIS也會得到整個網絡中所有的LSP,便會周期10S發送CSNP 報文用于向網段內所有的路由器通行整個網絡的LSDB的摘要信息。
(2)當有路由器沒有同步,就可以根據CSNP 報文中描述的LSDB摘要信息通過PSNP請求自身缺少的LSP。
(3)當有路由器是新加入路由器,會直接將自身的LSP發送出來,此時其他路由器包括DIS可以根據新的LSP進行同步,該路由器會根據周期的CSNP發送PSNP請求LSP。
(4)DIS收到PSNP之后就響應相應的LSP,如果路由器沒有收到LSP,則根據下一次CSNP 繼續請求,直到收到為止[4]。
每個L1和L2的區域使用單獨的SPF算法計算,將區域間路由放在實節點LSP中傳遞,使用NBR-ID描述所有的鄰居關系。如果屬于完整的拓撲信息,可以根據NBR-ID繪制網絡中的節點和節點之間的最短路徑,將使用IP-Internet描述域內節點上的路由信息,將路由信息掛在節點上形成帶有路由的最短路徑樹,根據該樹再進行每個網絡的最短路徑計算。
(1)L2 區域如何訪問L1 區域的路由:L1 區域的路由會被L1/2路由器默認滲透進L2區域;
(2)L1 區域如何訪問L2 區域的路由:L2 區域的路由不會被L1/2路由器滲透進L1區域,L1區域訪問L2區域的路由不能通過明細路由訪問。L1/2路由器在L1區域產生的路由器LSP 會將ATT bit 位置為1,當L1 路由器學到后,會根據ATT置位的情況生成缺省路由,下一跳指向L1/2路由器。
需要在L1/2路由器上進行配置,在ISIS進程下執行:Import-route isis level-2 into level-1(將L2 路由滲透進L1 區域);Attached-bit advertise never(配置L1/2 路由器產生的L1的LSP不通告ATT=1)[5]。
默認在路由器上引入外部路由是以L2 的形式引入,所以如果要在L1路由器上引入外部路由需要選擇引入類型為L1。如果在L1/2 路由器上將外部路由引入L1 區域,那么該L1/2 路由器不會將這條外部路由再泄露L2 區域。如果在L1/2 路由器上將外部路由引入L2 區域,那么該L1/2 路由器不會將這條外部路由再泄露L1區域,但是L1區域路由器可以使用L1/2 產生的ATT=1 的LSP 計算機缺省路由訪問該外部路由。可以將外部路由在L1/2 路由器上引入L1/2 區域,這樣L1和L2都會使用明細路由訪問外部路由。
IS-IS 協議中有開銷值有兩種網絡,分別是Narrow 和Wide,不同的開銷值風格不影響鄰居關系建立,但是會影響路由的學習。默認路由器開銷值網絡為Narrow,所以路由可攜帶的開銷值以及接口開銷的配置都受限制,比較小,如果希望IS-IS 能夠支持更大的開銷,可以將開銷值風格改為Wide,通過新的Extended IP Reachability 和Extended IS NBR攜帶更大開銷的路由和鄰居關系,而且這些TLV 提供了SUB TLV 的支持,可以在TLV 范圍內通過SUB TLV 提供對TLV 的擴展,比如,增加了TAG 的功能,在Narrow 中路由并不具備TAG 標記的功能,所以如果要實現TAG 的標記則需要配置Wide開銷值風格。
OSPF與IS-IS都是鏈路狀態路由協議,在鏈路狀態數據庫同步和路由計算上有一定相似,但區別非常大,主要區別如下:
(1)鏈路狀態數據庫同步
在鏈路狀態數據庫同步方面,OSPF 的DD Sequence 只有主路由器隨機產生,后續從路由器都使用主路由器的序列號,主路由器每發一個DD 報文序列號加一,而IS-IS 協議沒有這樣類似的機制;IS-IS 協議中有分片標識符,它主要對LSP進行分片,一個路由器可以將一條LSP分256個分片,主要的作用是使IS-IS協議具有更強的路由承載能力,而OSPF協議沒有類似的機制;OSPF 協議對點對點網絡和廣播多路訪問網絡的狀態數據庫同步的處理區別不大,而IS-IS 協議對這兩類網絡的處理區別比較大,工作機制也有很大不同[6]。
(2)路由計算
在路由計算方面,OSPF 協議采用LSA,而IS-IS 采用的是LSP,報文字段中LS Type 表示OSPF 的LSA 的類型,而IS Type 則用來表示IS-IS 的level 路由器;OSPF 的LSA 的老化時間是從0 遞增,刷新時間是1800 秒,最大3600 秒,而IS-IS的LSP 的老化時間是從1200 秒開始遞減,刷新周期是900秒,減少到0 為止;OSPF 的一條LSA 所攜帶1/2 類LSA 是描述區域內部的鏈路狀態信息,3/4/5/7 類LSA 并非是鏈路狀態,實際上是距離矢量信息,而IS-IS 的一條LSP 只是一臺DIS的鏈路狀態信息。
通過對IS-IS鏈路狀態數據庫同步與路由計算的深入研究,能了解IS-IS 協議工作的原理和過程,特別是與OSPF 協議進行對比,能更加深刻地掌握鏈路狀態路由協議的特點,以便我們在運用鏈路狀態路由協議搭建網絡、故障排除時做到得心應手、事半功倍。