is-is
用於城域網和承載網的網路協議
IS-IS(Intermediate System-to-Intermediate System,中間系統到中間系統)路由協議最初是ISO(the International Organization for Standardization,國際標準化組織)為CLNP(Connection Less Network Protocol,無連接網路協議)設計的一種動態路由協議。
為了提供對IP路由的支持,通過對IS-IS進行擴充和修改,使IS-IS能夠同時應用在TCP/IP和OSI環境中,形成了集成化IS-IS(Integrated IS-IS或Dual IS-IS)。現在提到的IS-IS協議都是指集成化的IS-IS協議,主要用於城域網和承載網。
IS-IS屬於內部網關路由協議,用於自治系統內部。IS-IS是一種鏈路狀態協議,與TCP/IP網路中的OSPF協議非常相似,使用最短路徑優先演演算法進行路由計算。
ISO網路和IP網路的網路層地址的編址方式不同。IP網路的三層地址是常見的IPv4地址或IPv6地址,IS-IS協議將ISO網路層地址稱NSAP(Network Service Access Point,網路服務接入點),用來描述ISO模型的網路地址結構。
運行IS-IS協議的網路包含了終端系統(End System)、中間系統(Intermediate System)、區域(Area)和路由域(Routing Domain)。一個路由器是Intermediate System(IS),一個主機就是End System(ES)。主機和路由器之間運行的協議稱為ES-IS,路由器與路由器之間運行的協議稱為IS-IS。區域是路由域的細分單元,IS-IS允許將整個路由域分為多個區域,IS-IS就是用來提供路由域內或一個區域內的路由。
為了支持大規模的路由網路,IS-IS在路由域內採用兩級的分層結構。一個大的路由域被分成一個或多個區域(Areas)。並定義了路由器的三種角色:Level-1、Level-2、Level-1-2。區域內的路由通過Level-1路由器管理,區域間的路由通過Level-2路由器管理。下面簡要說明一下這三類路由器角色:
Level-1路由器負責區域內的路由,它只與屬於同一區域的Level-1和Level-1-2路由器形成鄰居關係,維護一個Level-1的鏈路狀態資料庫,該鏈路狀態資料庫包含本區域的路由信息,到區域外的報文轉發給最近的Level-1-2路由器。
Level-2路由器負責區域間的路由,可以與同一區域或者其它區域的Level-2和Level-1-2路由器形成鄰居關係,維護一個Level-2的鏈路狀態資料庫,該鏈路狀態資料庫包含區域間的路由信息。所有Level-2路由器和Level-1-2路由器組成路由域的骨幹網,負責在不同區域間通信,路由域中的Level-2路由器必須是物理連續的,以保證骨幹網的連續性。
同時屬於Level-1和Level-2的路由器稱為Level-1-2路由器,可以與同一區域的Level-1和Level-1-2路由器形成Level-1鄰居關係,也可以與同一區域或者其他區域的Level-2和Level-1-2路由器形成Level-2的鄰居關係。Level-1路由器必須通過Level-1-2路由器才能連接至其他區域。Level-1-2路由器維護兩個鏈路狀態資料庫,Level-1的鏈路狀態資料庫用於區域內路由,Level-2的鏈路狀態資料庫用於區域間路由。
每台路由器只能屬於一個區域,區域邊界在鏈路上。
在路由器之間通訊時,IS-IS使用的是ISO定義的協議數據單元(PDU)。IS-IS中使用的PDU類型主要有:IS-IS Hello PDU(IIH PDU)、鏈路狀態PDU(LSP)、完全序列號數據包(CSNP)、部分序列號數據包(PSNP)。
IIH PDU類似於OSPF協議中的hello報文,負責形成路由器間的鄰居關係,發現新的鄰居,檢測是否有鄰居退出。
LSP類似於OSPF協議中的LSA,用於描述本路由器中所有的鏈路狀態信息。
CSNP包含了網路中每一個LSP的總結性信息,當路由器收到一個CSNP時,它會將該CSNP與其鏈路狀態資料庫進行比較,如果該路由器丟失了一個在CSNP中存在的LSP時,它會發送一個組播PSNP,向網路中其它路由器索要其需要的LSP。
PSNP在點對點鏈路中用於確認接收的LSP;在點對點鏈路和廣播鏈路中用於請求最新版本或者丟失的LSP。
IS-IS利用這些PDU與周圍的路由器進行信息收集和交換,用來計算出IS-IS路由條目。
維護一個鏈路狀態資料庫,並使用SPF演演算法來計算最佳路徑;
用Hello包建立和維護鄰居關係;
使用區域來構造兩級層次化的拓撲結構;
在區域之間可以使用路由匯總來減少路由器的負擔;
支持VLSM和CIDR;
在廣播多路訪問網路通過選舉指定IS(DIS)來管理和控制網路上的泛洪擴散;
具有認證功能;
IS-IS採用Cost作為度量值;
快速收斂;
適合大型網路。
IS-IS 具有兩種地址類型:
網路服務訪問點(NSAP)– NSAP 地址用來標識網路層服務,每種服務對應一個 NSAP 地址。
網路實體標題(NET)– NET 地址用來標識網路層實體或過程,而不是服務。
每種設備可能不止含有一個地址,但是 NET 應該是唯一的並且每個系統中 NSAP 的 系統 ID 部分也必須是唯一的。
將IS-IS用作IGP時,大多數公司都是用最簡單的NSAP格式,其組成如下:
1.區域地址,至少一個位元組,有下面兩部分組成。
-----AFI設置為49:表示AFI是本地管理,因此公司有權分配各個地址。
-----區域標示符(ID):是區域地址中位於AFI後面的位元組。
同一區域中的路由器都必須使用相同的區域地址,這個地址定義了該區域。區域地址用於L2路由選擇。ES只能識別同一子網中具有相同區域地址的IS和ES。
2.系統ID:在CISCO路由器中要求使用6位元組的系統ID,且系統ID必須是唯一的,通常將路由器的MAC地址用作系統ID。然而綜合IS-IS將IP地址用作系統ID的一部分。在整個AS中,系統ID都應該是唯一的,這樣,將設備移到其他區域時,不會導致L1或L2衝突。
3.NSEL:對於路由器總是為0
協議結構
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 位元組)。
NSEL ― 選擇器(1位元組,其功能等同於網際協議中的埠號)。
相關協議 OSPF、ES-IS、CLNP、IDRP、CONP
組織來源 IS-IS 定義在 ISO 文檔10589中,校訂於 IETF 文檔的 RFC 1629中。
IS-IS的認證只限於明文口令,Cisco的IOS支持3個級別的認證:
1.鄰居認證——相互連接的路由器介面必須配置相同的口令,同時必須為L1和L2類型的鄰居關係配置各自的認證,L1鄰居認證的密碼和L2鄰居的認證的密碼可以不同。鄰居認證通過命令“isis password”配置。
2.區域認證——區域內的每台路由器必須執行認證,並且必須使用相同的口令。區域認證通過命令“area-password”配置。
3.域認證——域內的每一個L2和L1/L2類型的路由器必須執行認證,並且必須使用相同的口令。域認證通過命令“domain-password”配置。