IS-IS 知識點

IS-IS地址
 
NET地址 = NSAP + 00(NSEL) 例:49.0000.0000.0001.00(16進制)
 
NESL類似於IP報文中的協議位,標誌了不同的協議號,可以說是承載上層信息的字段(因爲IS-IS本身不依賴於IP協議,也就不涉及IP相應的服務,只能自己來),目前所學這裏就是00。
 
NSAP = Area ID + System ID   Area ID 定義所屬區域,System ID 定義區域內每一個節點,其中Area ID 可爲1-8 bytes,而System ID 固定爲6 bytes。
 
IS-IS是在鏈路層上直接封裝的路由協議,基於CLNS 構架,有節點概念 & 無接口概念,所以NET地址標誌的是一臺路由器,也就是名稱中提到的IS(Intermediate System 中間系統)。
 
IS-IS在鏈路層定義了Circuit 和相應的SNAP(subnetwork point of p_w_upload)。SNAP是由OSI 定義的Layer 2地址,針對不同的Circuit類型各有不同,比如在Ethernet中爲Mac地址,在Frame-Relay中爲DLCI值。
 
在Ethernet中,System ID (6 Bytes) 與Circuit ID (1 Byte) 連用來標記鏈路。比如1921.6800.0001.01(16進製表示,最後兩位至FF),最後的01就是用來區別Router的各個接口,不過在Cisco路由器中,Circuit ID與主機名組合而不是System ID,比如RouterA.01。
 
保證System ID 在區域內唯一的方法是使用接口的Mac 地址或IP 地址,出於可讀性的考慮建議使用IP地址,形式爲 192.168.0.1  -->  1921.6800.0001。
 
IS-IS 基於CLNS網絡設計,後來由於TCP/IP 協議族的興起發展爲集成IS-IS,對IP協議給予支持。不過即使是這樣,在IS-IS中給接口配IP地址仍舊像掛一片葉子一樣無足輕重,有Circuit ID 和 System ID,網絡已經可以組建起來,IP地址本身不參與SPF運算(這裏指IS-IS 本身的SPF,分支節點爲各路由器,而不是IP網段)。
 
IS-IS鏈路
 
IS-IS支持的網絡類型只有兩種:Broadcast and Point-to-Point ,沒有NBMA的概念。在NBMA主接口,點到多點子接口上IS-IS 都是發送LAN Hello,即當成廣播型鏈路來思考,如果處於同一IP子網的接口沒有形成鄰接關係,對應的下一跳網絡不會裝進路由表。
 
在NBMA上部署IS-IS時,注意在廣播模式下必須使用CLNS Map,並加上broadcast 關鍵字,拓撲爲Full-Mesh。不過還是強烈建議使用點到點模式,應用子接口使每一條PVC對應一個IP子網,否則可能會有路由丟失。
 
CLNS MAP 命令:   frame-relay  map  clns  105  broadcast
 
Broadcast鏈路中,Level-1 和Level-2 區域各選舉自己的DIS,不像Level-1區域每個Area選舉一個DIS,Level-2路由器形成鄰接關係並不受Area ID 的影響,所以選舉DIS也是如此。Level-1 & 2 的DIS也不一定相同。
 
DIS是路由器的一個接口,同OSPF比較而言沒有備份DIS,相應的解決備份問題的機制是DIS搶奪,代價是每搶奪一次會引起一組LSP的泛洪。同時IS-IS LSDB在LAN上不斷同步,即CSNP的週期性發送,其實設計成週期性發送還有一個原因,那就是CSNP不要求有確認應答。
 
IS-IS 通過接口優先級 & 最高的Mac地址選出DIS (優先級範圍 0-127,缺省爲64,比大) 。IS只與DIS形成鄰接關係,之間的通信不通過IP組播地址,這裏依然強調的是不依賴IP協議,相應的解決方案是用二層組播Mac地址,Level-1的通告都發送到0180.c200.0014,Level-2的發送到0180.c200.0015。注意:這樣的一個Mac組播地址是所有IS都監聽的,不像OSPF中DR/DRother監聽不同的組播地址,不過一個IS發出的PSNP請求只有DIS會用相應的LSP給予迴應。
 
IS-IS的LSDB同步中,SNP(Sequence Number PDU,序列號報文)分爲PSNP和CSNP,這個與OSPF的分組可以形成對應,PSNP對應的OSPF的LSR and LSAck,CSNP對應OSPF的DBD,但是針對不同的鏈路有細節上的差異。

1)Point-to-Point 鏈路上的LSDB 同步,CSNP只在點到點鏈路激活時發送一次,PSNP擔當LSR和LSAck的職責,既作爲鏈路信息查詢,又用來確認每一個LSP數據包是否收到。
 
2)Broadcast 鏈路上的LSDB 同步,LSP不需要每一臺接收它的路由器確認,DIS週期性的發送CSNP(間隔爲10s),PSNP只相當於LSR。
 
思科對於IS-IS的度量值處理十分簡單,默認接口度量(單鏈路開銷)Cost=10,可設置爲0~63之間的數值(2^6),路徑度量(路由總開銷)爲0~1023(2^10),不過這是以前的窄帶度量值,新版本的IOS已經擴展到24位的接口度量和32位的路徑度量。
 
IS-IS通過Hello來形成鄰接關係,針對鏈路類型的不同,IIH可以分爲3種,點到點IIH(週期爲10s),Level-1 LAN的IIH,Level-2 LAN的IIH(DIS發送Hello週期爲3.3s)。而Hello還可以分爲ESH(ES之間的Hello),ISH(IS與ES之間的Hello)以及IIH(IS間的Hello)。
 
IS-IS路由
 
OSI定義的IS-IS路由等級:
 
Level-0     ES與IS之間的路由,協議爲ES-IS,類似於IP網絡中的IRDP 協議。
 
Level-1 & Level-2     協議爲IS-IS,Level-1爲Area內路由,Level-2爲Area間路由。
 
Level-3    在Domian 之間進行的路由,一般不涉及。  
 
 
IS-IS 路由器類型3種:Level-1 路由器    Level-1-2 路由器    Level-2 路由器
 
IS-IS 鄰接關係3種:    Level-1 鄰接       Level-1-2 鄰接        Level-2 鄰接
 
形成鄰接關係的規則:
 
Level-1 和 Level-2 路由器       一定不能形成鄰居關係
 
如果鄰居是Level-2路由器       不管Area ID是否相同都能形成Level-2鄰接關係
 
如果鄰居是Level-1路由器       只有Area ID相同才能形成Level-1鄰接關係
 
兩臺Level-1-2路由器之間        Area ID相同則爲Level-1鄰接;不同則爲Level-2鄰接關係
 
 
IS-IS 的LSP類型2種: LSP 1 &  LSP 2
 
LSP 1通告相連的Level-1 和Level-1-2 鏈路信息  LSP 1  -->  Level-1 LSDB --> Area內 路由
 
LSP 2通告相連的Level-2 和Level-1-2 鏈路信息  LSP 2  -->  Level-2 LSDB --> Area間 路由
 
IS-IS 鏈路類型(Circuit-Type)定義了該鏈路的等級和允許處理和泛洪的PDU類型,有3種:
 
Level-1 (只允許LSP 1通告) Level-1-2  (允許LSP 1 & 2通告) Level-2-only  (只允許LSP 2通告)
 
 
同一Area內的路由器Area ID必須相同,ES與所連路由器用相同的Area ID。Area ID用於Level-2路由(區域間路由),System ID用於Level-1路由(區域內路由)所以Area內必須唯一。具體來講,Area間路由的時候,只考慮Area ID 不考慮System ID,Area內路由的時候,只考慮System ID 不考慮Area ID。
 
IS-IS在設計時應先定義好區域,骨幹區域全爲Level-2 Router,邊界爲Level-1-2 Router(最好規劃到Level-1區域),末節區域爲Level-1 Router。
 
當一個Level-2 或者Level-1-2路由器與其他Area的路由器相連時,它所發的LSP的ATT位爲會設爲1。Level-1區域作爲末節會因此有默認路由注入,並選擇最近的L1/2路由器作爲本區域的出口。
 
IS-IS的路由優先級爲:當去往同一目的地有多條路由可選時,L1路由優於L2路由。IS-IS外部路由默認以L2方式傳播,因此在L1區域不會有外部路由,在Level-1路由器上執行的重發布也是無效的,就好象在OSPF的Stub區域做重發布一樣。如果L1路由器一定要將外部路由重發布進來的話,可以用命令來實現:(config-router)# redistribute  connected  level-1 。
 
L2路由可能是Area間路由,也可能是外部路由,在IS-IS數據庫裏可以識別出來。如果達到某一目的地,同時存在L2外部路由和域間路由,那麼IS-IS會根據最短路徑來選擇,而到達外部路由的路徑以到達ASBR爲準,因此可能會出現安裝外部路由而沒有安裝域間路由的情況。這和OSPF明顯區分內部路由和外部路由不同,在OSPF中如果已存在域間路由,外部路由在重發布進的時候會被過濾掉。 
 
上述的次優選路IS-IS可以通過路由泄漏來解決,即讓L1路由器知道L2路由。配置在Leve-1區域出口上完成,在L1路由器的路由表泄漏的條目一“i ia” 表示,Metric會額外加上128:
 
(config)# access-list 101 permit ip host 1.1.10 any
 
(config-router)# redistribute  isis ip level-2 into level-1 distribute-list 101
 
在IOS操作中,IS-IS重發布進其他IGP(比如OSPF)時並不包含自己的直接接口,目前版本依然沒有解決,處理這種狀況又2種方案,要麼將IS-IS的接口同時運行OSPF,要麼在ABR上做重發布直連的配置:
 
(config)# route-map  from-isis
 
(config-route-map)# match  interface  loopback0  s1/0
 
(config)# router  ospf  10
 
(config-router)# redistribute  connected  subnets  route-map  from-isis
 
 
IS-IS特性
 
強擴展性:第一點,以路由器等級(Level)來劃分骨幹區域,沒有實際上地理位置的制約,但設計時應該考慮。
 
第二點,IS-IS的邊界在鏈路上,不像OSPF那樣以ABR作爲邊界,這樣每個Router只屬於一個Area,而且可以通過設置使一個IS屬於多個Area(默認最多爲3個),這樣在區域過度的時候不必中斷,像ISP中的IS-IS往往就是一個單一的L2區域,僅提供區域的外部出口,這樣新的Area可以作爲L1類型直接連接到已經存在的L2區域。
 
第三點,IS-IS應用TLV來進行通告,TLV可以擴展出很多信息,格式無窮無盡(TLV是Type,Length,Value的縮寫,更廠商自行設計,在編程時被翻譯爲“元組”,指的是大小固定的異構對象的集合)。
 
OL位設置:IS-IS有一個有趣的特性,如果它的設備由於內存不足無法記錄完整的鏈路狀態數據庫時,它具有通知其他路由器的能力,其動作是在所發送的LSP數據包中設置OL位(Overload),表明自己可能不能進行正確的路由選擇,所以在該路由器沒有清除OL位之前,其他路由器不會通過這臺路由器來轉發,不過需要注意的是,由於LSDB可以針對L1或者L2,所以路由器可能只是在其中一層過載,而其他層內存還正常。
 
OL位目前最常用的地方是在BGP網絡中,當一臺新的路由器添加進網絡,IGP會比BGP先收斂,如果另一臺路由器根據收斂的IGP路由確認這臺新添加進來的路由器是BGP路徑的下一跳,而這時新路由器的BGP還沒有完成收斂,就會造成路由黑洞。
 
在BGP收斂之前通過設置IS-IS的OL位,可以避免這個問題,其他路由器會繞過這臺新的路由器進行選路,一旦BGP收斂,OL位將被清除。建議使用 set-overload on-startup 指定一個秒數說明IS-IS啓動後需要設置OL位的時間(可設爲300~500s),也可以加關鍵字 wait-for-bgp 使其在BGP完成收斂的時候清除OL位(不過一旦BGP由於某些原因沒有起來,OL位就永遠不會清除,所以還是設置時間爲好)。
 

 
本文出自 “Steven.Q的學習筆記” 博客,請務必保留此出處[url]http://steven24.blog.51cto.com/346765/68559[/url]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章