值班區
中間系統到中間系統的路由選擇協定
(IS-IS:Intermediate System to Intermediate System Routing Protocol)
介紹
IS-IS是鏈路狀態路由協定。每個IS-IS路由器獨立地建立了網路的拓撲資料庫,匯總被洪水淹沒的網路信息。IS-IS使用Dijkstra算法計算通過網路的最佳路徑。然後轉發數據包(數據報),根據計算的理想路徑,通過網路到目的地。
中間系統到中間系統的路由選擇協定(IS-IS)是由 ISO提出的一種路由選擇協定。它是一種鏈路狀態協定。在該協定中,IS(路由器)負責交換基於鏈路開銷的路由信息並決定網路拓撲結構。IS-IS類似於 TCP/IP 網路的開放最短路徑優先(OSPF)協定。
ISO 網路包含了終端系統、中間系統、區域(Area)和域(Domain)。終端系統指用戶設備,中間系統指路由器。路由器形成的本地組稱之為“區域”,多個區域組成一個“域”。IS-IS 被設計來提供域內或一個區域內的路由。IS-IS與 CLNP、ES-IS 和 IDRP協定相結合,為整個網路提供完整的路由選擇。
IS-IS 路由使用兩層路由體系。Level 1 路由器只知道它們本區域中的拓撲,包括所有的路由器和主機,而不知道區域以外的路由器以及目的地。Level 1 路由器將去往其它區域的所有流量都轉發給本區域內的一台 L2 路由器,該路由器知道 level 2 的拓樸,而不需要知道任何 level 1 的拓樸,除非 level 2 路由器也是該區域裡的 level 1 路由器。
適合傳送 IP 網路信息的 IS-IS 稱之為綜合 IS-IS (Integrated IS-IS)。在當前路由選擇協定中, Integrated IS-IS 具有最重要的一個特徵:它支持VLSM 和快速收斂。另外它具有可伸縮性,能夠支持大規模網路。
類型
IS-IS 具有兩種地址類型:
網路服務訪問點(nsap)– NSAP 地址用來標識網路層服務,每種服務對應一個 NSAP 地址。
網路實體標題(NET)– NET 地址用來標識網路層實體或過程,而不是服務。
每種設備可能不止含有一個地址,但是 NET 應該是唯一的並且每個系統中 NSAP 的 系統 ID 部分也必須是唯一的。
結構
協定結構
IS-IS PDU 頭結構:
8 16bit
Intradomain routing protocol discriminator Length indicator
Version/protocol ID extension ID length
R R R PDU type Version
Reserved Maximum area addresses
Intradomain Routing Protocol Discriminator ― 分配給該協定的網路層協定標識符。
Length Indicator ― 固定頭長(octet)。
Version/protocol ID Extension ― 值為1。
ID Length ― 指 NSAP 地址以及該路由域中使用的 NET 的 ID 欄位長。
R ― 預留位。
PDU Type ― PDU 類型。位6、位7和位8作為預留位。
Version ― 值為1。
Maximum Area Addresses ― 該中間系統區域所許可的區域地址號。
IS-IS 中的 NSAP 格式:
<- IDP -><- DSP ->
<- HO-DSP ->
AFI IDI Contents assigned by authority identified in IDI field
<- Area Address -><- ID -><- SEL ->
IDP ― 初始域部分(Initial Domain Part)。
AFI ― 許可權格式標識符(Authority and Format Identifier ,1位元組)。提供 IDI 和 DSP 欄位的結構和內容等信息。
IDI ― 初始域標識符(Initial Domain Identifier,可變長)。
DSP ― 域特定部分(Domain Specific Part)
HO-DSP ― 高級-特定域部分(High Order Domain Specific Part)。
區域地址(Area Address,可變長)。
ID ― 系統 ID (1- 8 位元組)。
SEL ― 選擇器(1位元組,其功能等同於網際協定中的連線埠號)。
相關協定 OSPF、ES-IS、CLNP、IDRP、CONP
組織來源 IS-IS 定義在 ISO (www.iso.org)文檔10589中,校訂於 IETF (www.ietf.org)文檔的 RFC 1629中。
相關連結 http://www.javvin.com/protocol/rfc1629.pdf: Guidelines for OSI NSAP Allocation in the Internet
數據包
IS-IS數據包都由報頭和包含特定路由選擇信息的可選變長欄位(TLV)組成。不同類型的IS-IS數據包報頭欄位的組成稍有不同,但前8個位元組的欄位在所有IS-IS數據包中相同,如圖所示:
ISIS數據包分為3類:hello數據包,鏈路狀態數據包和序列號數據包。下面詳細講述這3類數據包。
Hello數據包:用於建立和維護IS-IS鄰接關係。路由器以Hello間隔時間定期傳送Hello數據包給鄰接對等體。IS-IS路由器收到2個連續的Hello數據包的最大允許時間間隔稱為“保持間隔”,它由Hello間隔和Hello乘數定義。如果一台路由器在保持間隔時間內沒有收到任何Hello數據包,則鄰接關係失效。Hello數據包的附加報文欄位如圖所示。
電路類型――層1,層2,或者層1-2;
源ID――生成Hello數據包的系統ID;
保持間隔――路由器失效前2個連續Hello數據包的最大間隔;
PDU長度――整個PDU的長度,包括報頭;
本地電路ID――單一鏈路標識符。
鏈路狀態數據包:用於IS-IS節點間發布路由選擇信息。
剩餘生存時間――LSP到期前的生存時間。當一條LSP被源路由器產生時,其剩餘生存時間被設定為LSP最大生存時間,通過鄰接路由器開始在本區域內擴散。其值隨時間推移而減少。當LSP傳播時間到達其刷新間隔時,該LSP由源路由器重新生成,此時,剩餘生存時間被重設為最大生存時間。否則,該LSP將繼續生存下去直到剩餘生存時間減少到零,這時,它將被清除出網路;
LSP標識――由源路由器ID,偽節點(PSN)ID和LSP編號組成,是LSP的身份鑑別。路由器產生的常規LSP的PSNID為0,非零值則標識是由多路訪問鏈路中的指定中間系統DIS產生。LSP編號用於指示LSP片段,LSP可以根據需要拆分為不同的片段,第一個片段的編號為0;
序列號――LSP的序列號。從0開始,每次增加1。路由器連到網路中產生的第一個LSP的序列號為1,因網路環境變化產生的新的LSP的序列號都會加1。同一個區域中,通過序列號大小來區分LSP的新舊。當路由器發生故障後重新接入網路時會產生序列號為1的新LSP。此時,如果它產生的舊LSP的序列號較大且該LSP還沒有從網路中清除,那么該區域中的另一台路由器就會將舊LSP的拷貝傳送到恢復網路連線的路由器。接著,這台路由器收到LSP後產生一個攜帶原來LSP信息且序列號大1的新LSP,使LSP的序列號接近出故障前的序列號。
超載――標識LSP源路由器的鏈路狀態資料庫超載,記憶體空間和CPU資源已收到限制。
序列號數據包:用於控制鏈路狀態數據包的發布,提供IS-IS路由域內所有路由器的分散式鏈路狀態資料庫的同步機制。序列號數據包有兩類,完全序列號數據包CSNP和部分序列號數據包PSNP。前者攜帶了路由器的鏈路狀態資料庫中的所有已知LSP的摘要信息,後者攜帶的僅是其中的一個子集。作為CSNP的補充,PSNP在資料庫同步進程中主要實現以下兩項功能:
1)路由器使用PSNP在點對點鏈路中確認多個LSP中的一個的接收;
2)路由器通過使用PSNP來請求LSP的最新版本或者被丟失的LSP,同時適用於點對點鏈路和廣播鏈路。