ISIS簡(jiǎn)介
中間系統(tǒng)到中間系統(tǒng)IS-IS(Intermediate System to Intermediate System)屬于內(nèi)部網(wǎng)關(guān) 協(xié)議IGP(Interior Gateway Protocol),用于自治系統(tǒng)內(nèi)部。IS-IS也是一種鏈路狀態(tài)協(xié)議,使用最短路徑優(yōu)先SPF(Shortest Path First)算法進(jìn)行路由計(jì)算。
目的:
IS-IS是國際標(biāo)準(zhǔn)化組織ISO(the International Organization for Standardization)為它的無連接網(wǎng)絡(luò)協(xié)議CLNP(ConnectionLess Network Protocol)設(shè)計(jì)的一種動(dòng)態(tài)路由協(xié)議。
隨著TCP/IP協(xié)議的流行,為了提供對(duì)IP路由的支持,IETF(Internet Engineering Task Force )在RFC1195中對(duì)IS-IS進(jìn)行了擴(kuò)充和修改,使它能夠同時(shí)應(yīng)用在TCP/IP和OSI(Open System Interconnection)環(huán)境中,稱為集成IS-IS(Integrated IS-IS或Dual IS-IS)。
IS-IS原理描述
ISIS基本概念:
IS-IS的拓?fù)浣Y(jié)構(gòu):
為了支持大規(guī)模的路由網(wǎng)絡(luò),IS-IS在自治系統(tǒng)內(nèi)采用骨干區(qū)域與非骨干區(qū)域兩級(jí)的分層結(jié)構(gòu)。一般來說,將Level-1路由器部署在非骨干區(qū)域,Level-2路由器和Level-1-2路由器部署在骨干區(qū)域。每一個(gè)非骨干區(qū)域都通過Level-1-2路由器與骨干區(qū)域相連。
OSPF與ISIS的拓?fù)洳煌c(diǎn):
在IS-IS中,每個(gè)路由器都只屬于一個(gè)區(qū)域;而在OSPF中,一個(gè)路由器的不同接口可以屬于不同的區(qū)域。 在IS-IS中,單個(gè)區(qū)域沒有骨干與非骨干區(qū)域的概念;而在OSPF中,Area0被定義為骨干區(qū)域。 在IS-IS中,Level-1和Level-2級(jí)別的路由都采用SPF算法,分別生成最短路徑樹SPT(Shortest Path Tree);而在OSPF中,只有在同一個(gè)區(qū)域內(nèi)才使用SPF算法,區(qū)域之間的路由需要通過骨干區(qū)域來轉(zhuǎn)發(fā)。
IS-IS路由器的分類:
Level-1路由器
Level-1路由器負(fù)責(zé)區(qū)域內(nèi)的路由,它只與屬于同一區(qū)域的Level-1和Level-1-2路由器形成鄰居關(guān)系,屬于不同區(qū)域的Level-1路由器不能形成鄰居關(guān)系。Level-1路由器只負(fù)責(zé)維護(hù)Level-1的鏈路狀態(tài)數(shù)據(jù)庫LSDB(Link State Database),該LSDB包含本區(qū)域的路由信息,到本區(qū)域外的報(bào)文轉(zhuǎn)發(fā)給最近的Level-1-2路由器。
Level-2路由器
Level-2路由器負(fù)責(zé)區(qū)域間的路由,它可以與同一或者不同區(qū)域的Level-2路由器或者其它區(qū)域的Level-1-2路由器形成鄰居關(guān)系。Level-2路由器維護(hù)一個(gè)Level-2的LSDB,該LSDB包含區(qū)域間的路由信息。
所有Level-2級(jí)別(即形成Level-2鄰居關(guān)系)的路由器組成路由域的骨干網(wǎng),負(fù)責(zé)在不同區(qū)域間通信。路由域中Level-2級(jí)別的路由器必須是物理連續(xù)的,以保證骨干網(wǎng)的連續(xù)性。只有Level-2級(jí)別的路由器才能直接與區(qū)域外的路由器交換數(shù)據(jù)報(bào)文或路由信息。
Level-1-2路由器
同時(shí)屬于Level-1和Level-2的路由器稱為L(zhǎng)evel-1-2路由器,它可以與同一區(qū)域的Level-1和Level-1-2路由器形成Level-1鄰居關(guān)系,也可以與其他區(qū)域的Level-2和Level-1-2路由器形成Level-2的鄰居關(guān)系。Level-1路由器必須通過Level-1-2路由器才能連接至其他區(qū)域。
Level-1-2路由器維護(hù)兩個(gè)LSDB,Level-1的LSDB用于區(qū)域內(nèi)路由,Level-2的LSDB用于區(qū)域間路由。
IS-IS的網(wǎng)絡(luò)類型:
IS-IS只支持兩種類型的網(wǎng)絡(luò),根據(jù)物理鏈路不同可分為:
廣播鏈路:如Ethernet、Token-Ring等。 點(diǎn)到點(diǎn)鏈路:如PPP、HDLC等。
對(duì)于NBMA(Non-Broadcast Multi-Access)網(wǎng)絡(luò),如ATM,需對(duì)其配置子接口,并注意子接口類型應(yīng)配置為P2P。
IS-IS不能在點(diǎn)到多點(diǎn)鏈路P2MP(Point to MultiPoint)上運(yùn)行。
DIS和偽節(jié)點(diǎn):
在廣播網(wǎng)絡(luò)中,IS-IS需要在所有的路由器中選舉一個(gè)路由器作為DIS(Designated Intermediate System)。DIS用來創(chuàng)建和更新偽節(jié)點(diǎn)(Pseudonodes),并負(fù)責(zé)生成偽節(jié)點(diǎn)的鏈路狀態(tài)協(xié)議數(shù)據(jù)單元LSP(Link state Protocol Data Unit),用來描述這個(gè)網(wǎng)絡(luò)上有哪些網(wǎng)絡(luò)設(shè)備。
偽節(jié)點(diǎn)是用來模擬廣播網(wǎng)絡(luò)的一個(gè)虛擬節(jié)點(diǎn),并非真實(shí)的路由器。在IS-IS中,偽節(jié)點(diǎn)用DIS的System ID和一個(gè)字節(jié)的Circuit ID(非0值)標(biāo)識(shí)。
Level-1和Level-2的DIS是分別選舉的,用戶可以為不同級(jí)別的DIS選舉設(shè)置不同的優(yōu)先級(jí)。DIS優(yōu)先級(jí)數(shù)值最大的被選為DIS。如果優(yōu)先級(jí)數(shù)值最大的路由器有多臺(tái),則其中MAC地址最大的路由器會(huì)被選中。不同級(jí)別的DIS可以是同一臺(tái)路由器,也可以是不同的路由器。
IS-IS協(xié)議中DIS與OSPF協(xié)議中DR(Designated Router)的區(qū)別:
在IS-IS廣播網(wǎng)中,優(yōu)先級(jí)為0的路由器也參與DIS的選舉,而在OSPF中優(yōu)先級(jí)為0的路由器則不參與DR的選舉。
在IS-IS廣播網(wǎng)中,當(dāng)有新的路由器加入,并符合成為DIS的條件時(shí),這個(gè)路由器會(huì)被選中成為新的DIS,原有的偽節(jié)點(diǎn)被刪除。此更改會(huì)引起一組新的LSP泛洪。而在OSPF中,當(dāng)一臺(tái)新路由器加入后,即使它的DR優(yōu)先級(jí)值最大,也不會(huì)立即成為該網(wǎng)段中的DR。
在IS-IS廣播網(wǎng)中,同一網(wǎng)段上的同一級(jí)別的路由器之間都會(huì)形成鄰接關(guān)系,包括所有的非DIS路由器之間也會(huì)形成鄰接關(guān)系。而在OSPF中,路由器只與DR和BDR建立鄰接關(guān)系。
IS-IS廣播網(wǎng)上所有的路由器之間都形成鄰接關(guān)系,但LSDB的同步仍然依靠DIS來保證。
IS-IS的地址結(jié)構(gòu):
網(wǎng)絡(luò)服務(wù)訪問點(diǎn)NSAP(Network Service Access Point)是OSI協(xié)議中用于定位資源的地址。NSAP的地址結(jié)構(gòu)如下圖所示,它由IDP(Initial Domain Part)和DSP(Domain Specific Part)組成。IDP和DSP的長(zhǎng)度都是可變的,NSAP總廠最多是20個(gè)字節(jié),最少8個(gè)字節(jié)。
圖:ISIS協(xié)議的地址結(jié)構(gòu)示意圖
IDP相當(dāng)于IP地址中的主網(wǎng)絡(luò)號(hào)。它是由ISO規(guī)定,并由AFI(Authority and Format Identifier)與IDI(Initial Domain Identifier)兩部分組成。AFI表示地址分配機(jī)構(gòu)和地址格式,IDI用來標(biāo)識(shí)域。
DSP相當(dāng)于IP地址中的子網(wǎng)號(hào)和主機(jī)地址。它由High Order DSP、System ID和SEL三個(gè)部分組成。High Order DSP用來分割區(qū)域,System ID用來區(qū)分主機(jī),SEL(NSAP Selector)用來指示服務(wù)類型。
Area Address
IDP和DSP中的High Order DSP一起,既能夠標(biāo)識(shí)路由域,也能夠標(biāo)識(shí)路由域中的區(qū)域,因此,它們一起被稱為區(qū)域地址(Area Address),相當(dāng)于OSPF中的區(qū)域編號(hào)。同一Level-1區(qū)域內(nèi)的所有路由器必須具有相同的區(qū)域地址,Level-2區(qū)域內(nèi)的路由器可以具有不同的區(qū)域地址。
一般情況下,一個(gè)路由器只需要配置一個(gè)區(qū)域地址,且同一區(qū)域中所有節(jié)點(diǎn)的區(qū)域地址都要相同。為了支持區(qū)域的平滑合并、分割及轉(zhuǎn)換,在設(shè)備的實(shí)現(xiàn)中,一個(gè)IS-IS進(jìn)程下最多可配置3個(gè)區(qū)域地址。
System ID
System ID用來在區(qū)域內(nèi)唯一標(biāo)識(shí)主機(jī)或路由器。在設(shè)備的實(shí)現(xiàn)中,它的長(zhǎng)度固定為48bit(6字節(jié))。
將IP地址168.10.1.1的每個(gè)十進(jìn)制數(shù)都擴(kuò)展為3位,不足3位的在前面補(bǔ)0,得到168.010.001.001。 將擴(kuò)展后的地址分為3部分,每部分由4位數(shù)字組成,得到1680.1000.1001。重新組合的1680.1000.1001就是System ID。 實(shí)際System ID的指定可以有不同的方法,但要保證能夠唯一標(biāo)識(shí)主機(jī)或路由器。
SEL
SEL的作用類似IP中的“協(xié)議標(biāo)識(shí)符”,不同的傳輸協(xié)議對(duì)應(yīng)不同的SEL。在IP上SEL均為00。
網(wǎng)絡(luò)實(shí)體名稱NET(Network Entity Title)指的是設(shè)備本身的網(wǎng)絡(luò)層信息,可以看作是一類特殊的NSAP(SEL=00)。NET的長(zhǎng)度與NSAP的相同,最多為20個(gè)字節(jié),最少為8個(gè)字節(jié)。在路由器上配置IS-IS時(shí),只需要考慮NET即可,NSAP可不必去關(guān)注。
例如有NET為:ab.cdef.1234.5678.9abc.00,則其中Area Address為ab.cdef,System ID為1234.5678.9abc,SEL為00。
IS-IS基本原理:
IS-IS是一種鏈路狀態(tài)路由協(xié)議,每一臺(tái)路由器都會(huì)生成一個(gè)LSP,它包含了該路由器所有使能IS-IS協(xié)議接口的鏈路狀態(tài)信息。通過跟相鄰設(shè)備建立IS-IS鄰接關(guān)系,互相更新本地設(shè)備的LSDB,可以使得LSDB與整個(gè)IS-IS網(wǎng)絡(luò)的其他設(shè)備的LSDB實(shí)現(xiàn)同步。然后根據(jù)LSDB運(yùn)用SPF算法計(jì)算出IS-IS路由。如果此IS-IS路由是到目的地址的最優(yōu)路由,則此路由會(huì)下發(fā)到IP路由表中,并指導(dǎo)報(bào)文的轉(zhuǎn)發(fā)。
IS-IS鄰居關(guān)系的建立:
兩臺(tái)運(yùn)行IS-IS的路由器在交互協(xié)議報(bào)文實(shí)現(xiàn)路由功能之前必須首先建立鄰居關(guān)系。在不同類型的網(wǎng)絡(luò)上,IS-IS的鄰居建立方式并不相同。
廣播鏈路鄰居關(guān)系的建立:
下圖以Level-2路由器為例,描述了廣播鏈路中建立鄰接的過程。Level-1路由器之間建立鄰居與此相同。
圖:廣播鏈路鄰居關(guān)系的建立過程
RouterA廣播發(fā)送Level-2 LAN IIH,此報(bào)文中無鄰居標(biāo)識(shí)。 RouterB收到此報(bào)文后,將自己和RouterA的鄰居狀態(tài)標(biāo)識(shí)為Initial。然后,RouterB再向RouterA回復(fù)Level-2 LAN IIH,此報(bào)文中標(biāo)識(shí)RouterA為RouterB的鄰居。 RouterA收到此報(bào)文后,將自己與RouterB的鄰居狀態(tài)標(biāo)識(shí)為Up。然后RouterA再向RouterB發(fā)送一個(gè)標(biāo)識(shí)RouterB為RouterA鄰居的Level-2 LAN IIH。 RouterB收到此報(bào)文后,將自己與RouterA的鄰居狀態(tài)標(biāo)識(shí)為Up。這樣,兩個(gè)路由器成功建立了鄰居關(guān)系。
因?yàn)槭菑V播網(wǎng)絡(luò),需要選舉DIS,所以在鄰居關(guān)系建立后,路由器會(huì)等待兩個(gè)Hello報(bào)文間隔,再進(jìn)行DIS的選舉。Hello報(bào)文中包含Priority字段,Priority值最大的將被選舉為該廣播網(wǎng)的DIS。若優(yōu)先級(jí)相同,接口MAC地址較大的被選舉為DIS。
P2P鏈路鄰居關(guān)系的建立:
在P2P鏈路上,鄰居關(guān)系的建立不同于廣播鏈路。分為兩次握手機(jī)制和三次握手機(jī)制。
兩次握手機(jī)制存在明顯的缺陷。當(dāng)路由器間存在兩條及以上的鏈路時(shí),如果某條鏈路上到達(dá)對(duì)端的單向狀態(tài)為Down,而另一條鏈路同方向的狀態(tài)為Up,路由器之間還是能建立起鄰接關(guān)系。SPF在計(jì)算時(shí)會(huì)使用狀態(tài)為UP的鏈路上的參數(shù),這就導(dǎo)致沒有檢測(cè)到故障的路由器在轉(zhuǎn)發(fā)報(bào)文時(shí)仍然試圖通過狀態(tài)為Down的鏈路。三次握手機(jī)制解決了上述不可靠點(diǎn)到點(diǎn)鏈路中存在的問題。這種方式下,路由器只有在知道鄰居路由器也接收到它的報(bào)文時(shí),才宣布鄰居路由器處于Up狀態(tài),從而建立鄰居關(guān)系。
IS-IS按如下原則建立鄰居關(guān)系:
只有同一層次的相鄰路由器才有可能成為鄰居。
對(duì)于Level-1路由器來說,區(qū)域號(hào)必須一致。
鏈路兩端IS-IS接口的網(wǎng)絡(luò)類型必須一致。
鏈路兩端IS-IS接口的地址必須處于同一網(wǎng)段。
由于IS-IS是直接運(yùn)行在數(shù)據(jù)鏈路層上的協(xié)議,并且最早設(shè)計(jì)是給CLNP使用的,IS-IS鄰居關(guān)系的形成與IP地址無關(guān)。但在實(shí)際的實(shí)現(xiàn)中,由于只在IP上運(yùn)行IS-IS,所以是要檢查對(duì)方的IP地址的。如果接口配置了從IP,那么只要雙方有某個(gè)IP(主IP或者從IP)在同一網(wǎng)段,就能建立鄰居,不一定要主IP相同。
當(dāng)鏈路兩端IS-IS接口的地址不在同一網(wǎng)段時(shí),如果配置接口對(duì)接收的Hello報(bào)文不作IP地址檢查,也可以建立鄰居關(guān)系。對(duì)于P2P接口,可以配置接口忽略IP地址檢查;對(duì)于以太網(wǎng)接口,需要將以太網(wǎng)接口模擬成P2P接口,然后才可以配置接口忽略IP地址檢查。
IS-IS的LSP交互過程:
LSP產(chǎn)生的原因:
IS-IS路由域內(nèi)的所有路由器都會(huì)產(chǎn)生LSP,以下事件會(huì)觸發(fā)一個(gè)新的LSP:
鄰居Up或Down IS-IS相關(guān)接口Up或Down 引入的IP路由發(fā)生變化 區(qū)域間的IP路由發(fā)生變化 接口被賦了新的metric值 周期性更新
收到鄰居新的LSP的處理過程:
將接收的新的LSP合入到自己的LSDB數(shù)據(jù)庫中,并標(biāo)記為flooding。 發(fā)送新的LSP到除了收到該LSP的接口之外的接口。 鄰居再擴(kuò)散到其他鄰居。
LSP的"泛洪":
LSP報(bào)文的“泛洪”(flooding)是指當(dāng)一個(gè)路由器向相鄰路由器通告自己的LSP后,相鄰路由器再將同樣的LSP報(bào)文傳送到除發(fā)送該LSP的路由器外的其它鄰居,并這樣逐級(jí)將LSP傳送到整個(gè)層次內(nèi)所有路由器的一種方式。通過這種“泛洪”,整個(gè)層次內(nèi)的每一個(gè)路由器就都可以擁有相同的LSP信息,并保持LSDB的同步。
每一個(gè)LSP都擁有一個(gè)標(biāo)識(shí)自己的4字節(jié)的序列號(hào)。在路由器啟動(dòng)時(shí)所發(fā)送的第一個(gè)LSP報(bào)文中的序列號(hào)為1,以后當(dāng)需要生成新的LSP時(shí),新LSP的序列號(hào)在前一個(gè)LSP序列號(hào)的基礎(chǔ)上加1。更高的序列號(hào)意味著更新的LSP。
廣播鏈路中新加入路由器與DIS同步LSDB數(shù)據(jù)庫的過程:
圖:廣播鏈路數(shù)據(jù)庫更新過程
如上圖所示,新加入的路由器RouterC首先發(fā)送Hello報(bào)文,與該廣播域中的路由器建立鄰居關(guān)系。 建立鄰居關(guān)系之后,RouterC等待LSP刷新定時(shí)器超時(shí),然后將自己的LSP發(fā)往組播地址(Level-1:01-80-C2-00-00-14;Level-2:01-80-C2-00-00-15)。這樣網(wǎng)絡(luò)上所有的鄰居都將收到該LSP。 該網(wǎng)段中的DIS會(huì)把收到RouterC的LSP加入到LSDB中,并等待CSNP報(bào)文定時(shí)器超時(shí)并發(fā)送CSNP報(bào)文,進(jìn)行該網(wǎng)絡(luò)內(nèi)的LSDB同步。 RouterC收到DIS發(fā)來的CSNP報(bào)文,對(duì)比自己的LSDB數(shù)據(jù)庫,然后向DIS發(fā)送PSNP報(bào)文請(qǐng)求自己沒有的LSP。 DIS收到該P(yáng)SNP報(bào)文請(qǐng)求后向RouterC發(fā)送對(duì)應(yīng)的LSP進(jìn)行LSDB的同步。
在上述過程中DIS的LSDB更新過程如下:
DIS接收到LSP,在數(shù)據(jù)庫中搜索對(duì)應(yīng)的記錄。若沒有該LSP,則將其加入數(shù)據(jù)庫,并廣播新數(shù)據(jù)庫內(nèi)容。 若收到的LSP序列號(hào)大于本地LSP的序列號(hào),就替換為新報(bào)文,并廣播新數(shù)據(jù)庫內(nèi)容;若收到的LSP序列號(hào)小本地LSP的序列號(hào),就向入端接口發(fā)送本地LSP報(bào)文。 若收到的LSP和本地LSP的序列號(hào)相等,則比較Remaining Lifetime。若收到的LSP報(bào)文的Remaining Lifetime為0,則將本地的報(bào)文替換為新報(bào)文,并廣播新數(shù)據(jù)庫內(nèi)容;若收到的LSP報(bào)文的Remaining Lifetime不為0而本地LSP報(bào)文的Remaining Lifetime為0,就向入端接口發(fā)送本地LSP報(bào)文。 若兩個(gè)序列號(hào)和Remaining Lifetime都相等,則比較Checksum。若收到的LSP的Checksum大于本地LSP的Checksum,就替換為新報(bào)文,并廣播新數(shù)據(jù)庫內(nèi)容;若收到的LSP的Checksum小于本地LSP的Checksum,就向入端接口發(fā)送本地LSP報(bào)文。 若兩個(gè)序列號(hào)、Remaining Lifetime和Checksum都相等,則不轉(zhuǎn)發(fā)該報(bào)文。
P2P鏈路上LSDB數(shù)據(jù)庫同步過程:
圖:P2P鏈路數(shù)據(jù)庫更新過程
RouterA先與RouterB建立鄰居關(guān)系。 建立鄰居關(guān)系之后,RouterA與RouterB會(huì)先發(fā)送CSNP給對(duì)端設(shè)備。如果對(duì)端的LSDB與CSNP沒有同步,則發(fā)送PSNP請(qǐng)求索取相應(yīng)的LSP。 如上圖所示假定RouterB向RouterA索取相應(yīng)的LSP。RouterA發(fā)送RouterB請(qǐng)求的LSP的同時(shí)啟動(dòng)LSP重傳定時(shí)器,并等待RouterB發(fā)送的PSNP作為收到LSP的確認(rèn)。 如果在接口LSP重傳定時(shí)器超時(shí)后,RouterA還沒有收到RouterB發(fā)送的PSNP報(bào)文作為應(yīng)答,則重新發(fā)送該LSP直至收到PSNP報(bào)文。
在P2P鏈路上PSNP有兩種作用:
作為Ack應(yīng)答以確認(rèn)收到的LSP。 用來請(qǐng)求所需的LSP。
在P2P鏈路中設(shè)備的LSDB更新過程如下:
若收到的LSP比本地的序列號(hào)更小,則直接給對(duì)方發(fā)送本地的LSP,然后等待對(duì)方給自己一個(gè)PSNP報(bào)文作為確認(rèn);若收到的LSP比本地的序列號(hào)更大,則將這個(gè)新的LSP存入自己的LSDB,再通過一個(gè)PSNP報(bào)文來確認(rèn)收到此LSP,最后再將這個(gè)新LSP發(fā)送給除了發(fā)送該LSP的鄰居以外的鄰居。 若收到的LSP序列號(hào)和本地相同,則比較Remaining Lifetime,若收到的LSP報(bào)文的Remaining Lifetime為0,則將收到的LSP存入LSDB中并發(fā)送PSNP報(bào)文來確認(rèn)收到此LSP,然后將該LSP發(fā)送給除了發(fā)送該LSP的鄰居以外的鄰居;若收到的LSP報(bào)文的Remaining Lifetime不為0而本地LSP報(bào)文的Remaining Lifetime為0,則直接給對(duì)方發(fā)送本地的LSP,然后等待對(duì)方給自己一個(gè)PSNP報(bào)文作為確認(rèn)。 若收到的LSP和本地LSP的序列號(hào)相同且Remaining Lifetime都不為0,則比較Checksum,若收到LSP的Checksum大于本地LSP的Checksum,則將收到的LSP存入LSDB中并發(fā)送PSNP報(bào)文來確認(rèn)收到此LSP,然后將該LSP發(fā)送給除了發(fā)送該LSP的鄰居以外的鄰居;若收到LSP的Checksum小于本地LSP的Checksum,則直接給對(duì)方發(fā)送本地的LSP,然后等待對(duì)方給自己一個(gè)PSNP報(bào)文作為確認(rèn)。 若收到的LSP和本地LSP的序列號(hào)、Remaining Lifetime和Checksum都相同,則不轉(zhuǎn)發(fā)該報(bào)文。
#ISIS高級(jí)特性
IS-IS認(rèn)證:
IS-IS認(rèn)證是基于網(wǎng)絡(luò)安全性的要求而實(shí)現(xiàn)的一種認(rèn)證手段,通過在IS-IS報(bào)文中增加認(rèn)證字段對(duì)報(bào)文進(jìn)行認(rèn)證。當(dāng)本地路由器接收到遠(yuǎn)端路由器發(fā)送過來的IS-IS報(bào)文,如果發(fā)現(xiàn)認(rèn)證密碼不匹配,則將收到的報(bào)文進(jìn)行丟棄,達(dá)到自我保護(hù)的目的。
認(rèn)證的分類:
根據(jù)報(bào)文的種類,認(rèn)證可以分為以下三類:
接口認(rèn)證:是指使能IS-IS協(xié)議的接口以指定方式和密碼對(duì)Level-1和Level-2的Hello報(bào)文進(jìn)行認(rèn)證。
區(qū)域認(rèn)證:是指運(yùn)行IS-IS的區(qū)域以指定方式和密碼對(duì)Level-1的SNP和LSP報(bào)文進(jìn)行認(rèn)證。
路由域認(rèn)證:是指運(yùn)行IS-IS的路由域以指定方式和密碼對(duì)Level-2的SNP和LSP報(bào)文進(jìn)行認(rèn)證。
對(duì)于接口認(rèn)證,有以下兩種設(shè)置:
發(fā)送帶認(rèn)證TLV的認(rèn)證報(bào)文,本地對(duì)收到的報(bào)文也進(jìn)行認(rèn)證檢查。 發(fā)送帶認(rèn)證TLV的認(rèn)證報(bào)文,但是本地對(duì)收到的報(bào)文不進(jìn)行認(rèn)證檢查。
對(duì)于區(qū)域和路由域認(rèn)證,可以設(shè)置為SNP和LSP分開認(rèn)證。
本地發(fā)送的LSP報(bào)文和SNP報(bào)文都攜帶認(rèn)證TLV,對(duì)收到的LSP報(bào)文和SNP報(bào)文都進(jìn)行認(rèn)證檢查。 本地發(fā)送的LSP報(bào)文攜帶認(rèn)證TLV,對(duì)收到的LSP報(bào)文進(jìn)行認(rèn)證檢查;發(fā)送的SNP報(bào)文攜帶認(rèn)證TLV,但不對(duì)收到的SNP報(bào)文進(jìn)行檢查。 本地發(fā)送的LSP報(bào)文攜帶認(rèn)證TLV,對(duì)收到的LSP報(bào)文進(jìn)行認(rèn)證檢查;發(fā)送的SNP報(bào)文不攜帶認(rèn)證TLV,也不對(duì)收到的SNP報(bào)文進(jìn)行認(rèn)證檢查。 本地發(fā)送的LSP報(bào)文和SNP報(bào)文都攜帶認(rèn)證TLV,對(duì)收到的LSP報(bào)文和SNP報(bào)文都不進(jìn)行認(rèn)證檢查。
根據(jù)報(bào)文的認(rèn)證方式,可以分為以下三類:
明文認(rèn)證:一種簡(jiǎn)單的認(rèn)證方式,將配置的密碼直接加入報(bào)文中,這種認(rèn)證方式安全性不夠。 MD5認(rèn)證:通過將配置的密碼進(jìn)行MD5算法之后再加入報(bào)文中,這樣提高了密碼的安全性。 Keychian認(rèn)證:通過配置隨時(shí)間變化的密碼鏈表來進(jìn)一步提升網(wǎng)絡(luò)的安全性。
認(rèn)證信息的攜帶形式:
IS-IS通過TLV的形式攜帶認(rèn)證信息,認(rèn)證TLV的類型為10,具體格式如下:
Type:ISO定義認(rèn)證報(bào)文的類型值為10,長(zhǎng)度為1字節(jié)。
Length:指定認(rèn)證TLV值的長(zhǎng)度,長(zhǎng)度1字節(jié)。
Value:指定認(rèn)證的具體內(nèi)容,其中包括了認(rèn)證的類型和認(rèn)證的密碼,長(zhǎng)度為1~254字節(jié)。
其中認(rèn)證的類型為1字節(jié),具體定義如下:
0:保留的類型 1:明文認(rèn)證 54:MD5認(rèn)證 255:路由域私有認(rèn)證方式
ISIS路由滲透:
通常情況下,Level-1區(qū)域內(nèi)的路由通過Level-1路由器進(jìn)行管理。所有的Level-2和Level-1-2路由器構(gòu)成一個(gè)連續(xù)的骨干區(qū)域。Level-1區(qū)域必須且只能與骨干區(qū)域相連,不同的Level-1區(qū)域之間并不相連。
Level-1-2路由器將學(xué)習(xí)到的Level-1路由信息裝進(jìn)Level-2 LSP,再泛洪L(zhǎng)SP給其他Level-2和Level-1-2路由器。因此,Level-1-2和Level-2路由器知道整個(gè)IS-IS路由域的路由信息。但是,為了有效減小路由表的規(guī)模,在缺省情況下,Level-1-2路由器并不將自己知道的其他Level-1區(qū)域以及骨干區(qū)域的路由信息通報(bào)給它所在的Level-1區(qū)域。這樣,Level-1路由器將不了解本區(qū)域以外的路由信息,可能導(dǎo)致與本區(qū)域之外的目的地址通信時(shí)無法選擇最佳的路由。
為解決上述問題,IS-IS提供了路由滲透功能。通過在Level-1-2路由器上定義ACL(Access Control List)、路由策略、Tag標(biāo)記等方式,將符合條件的路由篩選出來,實(shí)現(xiàn)將其他Level-1區(qū)域和骨干區(qū)域的部分路由信息通報(bào)給自己所在的Level-1區(qū)域。
ISIS Overload:
IS-IS OverLoad使用IS-IS過載標(biāo)記位來標(biāo)識(shí)過載狀態(tài)。IS-IS過載標(biāo)志位是指IS-IS LSP報(bào)文中的OL字段。對(duì)設(shè)備設(shè)置過載標(biāo)志位后,其它設(shè)備在進(jìn)行SPF計(jì)算時(shí)不會(huì)使用這臺(tái)設(shè)備做轉(zhuǎn)發(fā),只計(jì)算該設(shè)備上的直連路由。
當(dāng)系統(tǒng)因?yàn)楦鞣N原因無法保存新的LSP,以致無法維持正常的LSDB同步時(shí),該系統(tǒng)計(jì)算出的路由信息將出現(xiàn)錯(cuò)誤。在這種情況下,系統(tǒng)就可以自動(dòng)進(jìn)入過載狀態(tài),即通過該設(shè)備到達(dá)的路由不計(jì)算,但該設(shè)備的直連路由不會(huì)被忽略。
除了設(shè)備異常可導(dǎo)致自動(dòng)進(jìn)入過載狀態(tài),也可以通過手動(dòng)配置使系統(tǒng)進(jìn)入過載狀態(tài)。當(dāng)網(wǎng)絡(luò)中的某些IS-IS設(shè)備需要升級(jí)或維護(hù)時(shí),需要暫時(shí)將該設(shè)備從網(wǎng)絡(luò)中隔離。此時(shí)可以給該設(shè)備設(shè)置過載標(biāo)志位,這樣就可以避免其他設(shè)備通過該節(jié)點(diǎn)來轉(zhuǎn)發(fā)流量。
ISIS網(wǎng)絡(luò)收斂:
為了提高IS-IS網(wǎng)絡(luò)的收斂,有快速收斂和按優(yōu)先級(jí)收斂?jī)煞N方式??焖偈諗總?cè)重于從路由的計(jì)算角度加快收斂速度;按優(yōu)先級(jí)收斂側(cè)重于從路由優(yōu)先級(jí)角度提高網(wǎng)絡(luò)性能。
快速收斂:
IS-IS快速收斂是為了提高路由的收斂速度而做的擴(kuò)展特性。它包括以下幾個(gè)功能:
增量最短路徑 優(yōu)先算法I-SPF(Incremental SPF):是指當(dāng)網(wǎng)絡(luò)拓?fù)涓淖兊臅r(shí)候,只對(duì)受影響的節(jié)點(diǎn)進(jìn)行路由計(jì)算,而不是對(duì)全部節(jié)點(diǎn)重新進(jìn)行路由計(jì)算,從而加快了路由的計(jì)算。
在ISO10589中定義使用SPF算法進(jìn)行路由計(jì)算。當(dāng)網(wǎng)絡(luò)拓?fù)渲杏幸粋€(gè)節(jié)點(diǎn)發(fā)生變化時(shí),這種算法需要重新計(jì)算網(wǎng)絡(luò)中的所有節(jié)點(diǎn),計(jì)算時(shí)間長(zhǎng),占用過多的CPU資源,影響整個(gè)網(wǎng)絡(luò)的收斂速度。
I-SPF改進(jìn)了這個(gè)算法,除了第一次計(jì)算時(shí)需要計(jì)算全部節(jié)點(diǎn)外,每次只計(jì)算受到影響的節(jié)點(diǎn),而最后生成的最短路徑樹SPT與原來的算法所計(jì)算的結(jié)果相同,大大降低了CPU的占用率,提高了網(wǎng)絡(luò)收斂速度。
部分路由計(jì)算PRC(Partial Route Calculation):是指當(dāng)網(wǎng)絡(luò)上路由發(fā)生變化的時(shí)候,只對(duì)發(fā)生變化的路由進(jìn)行重新計(jì)算。
PRC的原理與I-SPF相同,都是只對(duì)發(fā)生變化的路由進(jìn)行重新計(jì)算。不同的是,PRC不需要計(jì)算節(jié)點(diǎn)路徑,而是根據(jù)I-SPF算出來的SPT來更新路由。
在路由計(jì)算中,葉子代表路由,節(jié)點(diǎn)則代表路由器。如果I-SPF計(jì)算后的SPT改變,PRC會(huì)只處理那個(gè)變化的節(jié)點(diǎn)上的所有葉子;如果經(jīng)過I-SPF計(jì)算后的SPT并沒有變化,則PRC只處理變化的葉子信息。比如一個(gè)節(jié)點(diǎn)使能一個(gè)IS-IS接口,則整個(gè)網(wǎng)絡(luò)拓?fù)涞腟PT是不變的,這時(shí)PRC只更新這個(gè)節(jié)點(diǎn)的接口路由,從而節(jié)省CPU占用率。
PRC和I-SPF配合使用可以將網(wǎng)絡(luò)的收斂性能進(jìn)一步提高,它是原始SPF算法的改進(jìn),已經(jīng)代替了原有的算法。
智能定時(shí)器:在進(jìn)行SPF計(jì)算和產(chǎn)生LSP的時(shí)候用到的一種智能定時(shí)器。該定時(shí)器首次超時(shí)時(shí)間是一個(gè)固定的時(shí)間。如果在定時(shí)器超時(shí)前,又有觸發(fā)定時(shí)器的事件發(fā)生,則該定時(shí)器下一次的超時(shí)時(shí)間會(huì)增加。
改進(jìn)了路由算法后,如果觸發(fā)路由計(jì)算的時(shí)間間隔較長(zhǎng),同樣會(huì)影響網(wǎng)絡(luò)的收斂速度。使用毫秒級(jí)定時(shí)器可以縮短這個(gè)間隔時(shí)間,但如果網(wǎng)絡(luò)變化比較頻繁,又會(huì)造成過度占用CPU資源。SPF智能定時(shí)器既可以對(duì)少量的外界突發(fā)事件進(jìn)行快速響應(yīng),又可以避免過度的占用CPU。通常情況下,一個(gè)正常運(yùn)行的IS-IS網(wǎng)絡(luò)是穩(wěn)定的,發(fā)生大量的網(wǎng)絡(luò)變動(dòng)的幾率很小,IS-IS不會(huì)頻繁的進(jìn)行路由計(jì)算,所以第一次觸發(fā)的時(shí)間可以設(shè)置的非常短(毫秒級(jí))。如果拓?fù)渥兓容^頻繁,智能定時(shí)器會(huì)隨著計(jì)算次數(shù)的增加,間隔時(shí)間也會(huì)逐漸延長(zhǎng),從而避免占用大量的CPU資源。
與SPF智能定時(shí)器類似的還有LSP生成智能定時(shí)器。在IS-IS協(xié)議中,當(dāng)LSP生成定時(shí)器到期時(shí),系統(tǒng)會(huì)根據(jù)當(dāng)前拓?fù)渲匦律梢粋€(gè)自己的LSP。原有的實(shí)現(xiàn)機(jī)制是采用間隔時(shí)間固定的定時(shí)器,這樣就不能同時(shí)滿足快速收斂和低CPU占用率的需要。為此將LSP生成定時(shí)器也設(shè)計(jì)成智能定時(shí)器,使其可以對(duì)于突發(fā)事件(如接口Up/Down)快速響應(yīng),加快網(wǎng)絡(luò)的收斂速度。同時(shí),當(dāng)網(wǎng)絡(luò)變化頻繁時(shí),智能定時(shí)器的間隔時(shí)間會(huì)自動(dòng)延長(zhǎng),避免過度占用CPU資源。
LSP快速擴(kuò)散:此特性可以加快LSP的擴(kuò)散速度。
正常情況下,當(dāng)IS-IS收到其它路由器發(fā)來的LSP時(shí),如果此LSP比本地LSDB中相應(yīng)的LSP要新,則更新LSDB中的LSP,并用一個(gè)定時(shí)器定期將LSDB內(nèi)已更新的LSP擴(kuò)散出去。
LSP快速擴(kuò)散特性改進(jìn)了這種方式,使能了此特性的設(shè)備收到一個(gè)或多個(gè)較新的LSP時(shí),在路由計(jì)算之前,先將小于指定數(shù)目的LSP擴(kuò)散出去,加快LSDB的同步過程。這種方式在很大程度上可以提高整個(gè)網(wǎng)絡(luò)的收斂速度。
按優(yōu)先級(jí)收斂:
IS-IS按優(yōu)先級(jí)收斂是指在大量路由情況下,能夠讓某些特定的路由(例如匹配指定IP前綴的路由)優(yōu)先收斂的一種技術(shù)。因此用戶可以把和關(guān)鍵業(yè)務(wù)相關(guān)的路由配置成相對(duì)較高的優(yōu)先級(jí),使這些路由更快的收斂,從而使關(guān)鍵的業(yè)務(wù)收到的影響減小。通過對(duì)不同的路由配置不同的收斂?jī)?yōu)先級(jí),達(dá)到重要的路由先收斂的目的,提高網(wǎng)絡(luò)的可靠性。
ISIS管理標(biāo)記:
管理標(biāo)記特性允許在IS-IS域中通過管理標(biāo)記對(duì)IP地址前綴進(jìn)行控制,可以達(dá)到簡(jiǎn)化管理。其用途包括控制不同級(jí)別和不同區(qū)域間的路由引入,以及在同一路由器上運(yùn)行的IS-IS多實(shí)例。
管理標(biāo)記值與某些屬性相關(guān)聯(lián)。當(dāng)cost-sytle為wide、wide-compatible或compatible時(shí),如果發(fā)布可達(dá)的IP地址前綴具有該屬性,IS-IS會(huì)將管理標(biāo)記加入到該前綴的IP可達(dá)信息TLV中。這樣,管理標(biāo)記就會(huì)隨著前綴發(fā)布到整個(gè)路由域。
ISIS Wide Metric:
在早期的ISO10589中,使能IS-IS協(xié)議的接口下最大只能配置值為63的開銷值,此時(shí)認(rèn)為IS-IS開銷類型為narrow。但是在大型網(wǎng)絡(luò)設(shè)計(jì)中,較小的度量范圍不能滿足實(shí)際需求。所以在RFC3784中規(guī)定,使能IS-IS協(xié)議的接口開銷值可以擴(kuò)展到16777215,IS-IS路由開銷值可以達(dá)到4261412864,此時(shí)IS-IS的開銷類型為wide。
narrow類型下使用的TLV:
128號(hào)TLV(IP Internal Reachability TLV):用來攜帶路由域內(nèi)的IS-IS路由信息。 130號(hào)TLV(IP External Reachability TLV):用來攜帶路由域外的IS-IS路由信息。 2號(hào)TLV(IS Neighbors TLV):用來攜帶鄰居信息。 wide類型下使用的TLV:
135號(hào)TLV(Extended IP Reachability TLV):用來替換原有的IP reachability TLV,攜帶IS-IS路由信息,它擴(kuò)展了路由開銷值的范圍,并可以攜帶sub TLV。 22號(hào)TLV(IS Extended Neighbors TLV):用來攜帶鄰居信息。
不同開銷類型接收和發(fā)送ISIS信息的類型詳細(xì)列表:
開銷類型 接收 發(fā)送 narrow narrow narrow narrow-compatible narrow&wide narrow compatible narrow&wide narrow&wide wide-compatible narrow&wide wide wide wide wide
當(dāng)配置開銷類型為compatible的時(shí)候,會(huì)按照narrow類型和wide類型分別發(fā)送一份信息。 wide類型下的IS-IS和narrow類型下的IS-IS不可實(shí)現(xiàn)互通。如果需要互通,就必須設(shè)置成一致的開銷類型,讓網(wǎng)絡(luò)上所有路由器都可以接收其他路由器發(fā)的所有報(bào)文。
ISIS LSP分片擴(kuò)展:
當(dāng)IS-IS要發(fā)布的鏈路狀態(tài)協(xié)議數(shù)據(jù)報(bào)文PDU(Protocol Data Unit)中的信息量太大時(shí),IS-IS路由器將會(huì)生成多個(gè)LSP分片,用來攜帶更多的IS-IS信息。
IS-IS LSP分片由LSP ID中的LSP Number字段進(jìn)行標(biāo)識(shí),這個(gè)字段的長(zhǎng)度是1字節(jié)。因此,一個(gè)IS-IS進(jìn)程最多可產(chǎn)生256個(gè)LSP分片,攜帶的信息量有限。在RFC3786中規(guī)定,IS-IS可以配置虛擬的SystemID ,并生成虛擬IS-IS的LSP報(bào)文來攜帶路由等信息。
基本概念:
初始系統(tǒng)(Originating System):初始系統(tǒng)是實(shí)際運(yùn)行IS-IS協(xié)議的路由器。允許一個(gè)單獨(dú)的IS-IS進(jìn)程像多個(gè)虛擬路由器一樣發(fā)布LSP,而“Originating System”指的是那個(gè)“真正”的IS-IS進(jìn)程。
系統(tǒng)ID(Normal System-ID):初始系統(tǒng)的系統(tǒng)ID。
虛擬系統(tǒng)(Virtual System):由附加系統(tǒng)ID標(biāo)識(shí)的系統(tǒng),用來生成擴(kuò)展LSP分片。這些分片在其LSP ID中攜帶附加系統(tǒng)ID。
附加系統(tǒng)ID(Additional System-ID):虛擬系統(tǒng)的系統(tǒng)ID,由網(wǎng)絡(luò)管理器統(tǒng)一分配。每個(gè)附加系統(tǒng)ID都允許生成256個(gè)擴(kuò)展的LSP分片。
24號(hào)TLV(IS Alias ID TLV):用來表示初始系統(tǒng)與虛擬系統(tǒng)的關(guān)系。
工作原理:
在IS-IS中,每個(gè)系統(tǒng)ID都標(biāo)識(shí)一個(gè)系統(tǒng),每個(gè)系統(tǒng)都最多可生成256個(gè)LSP分片。通過增加附加系統(tǒng)ID,可以最多配置50個(gè)虛擬系統(tǒng),從而使得IS-IS進(jìn)程最多可生成13056個(gè)LSP分片。
使能分片擴(kuò)展功能之后,如果存在由于報(bào)文裝滿而丟失的信息,系統(tǒng)會(huì)提醒重啟IS-IS。重啟之后,初始系統(tǒng)會(huì)盡最大能力裝載路由信息,裝不下的信息將放入虛擬系統(tǒng)的LSP中發(fā)送出去,并通過24號(hào)TLV來告知其他路由器此虛擬系統(tǒng)和自己的關(guān)系。
工作模式:
IS-IS路由器可以在兩種模式下運(yùn)行LSP分片擴(kuò)展特性:
模式一:
應(yīng)用場(chǎng)景:
用于網(wǎng)絡(luò)中的部分路由器不支持LSP分片擴(kuò)展特性的情況。
工作原理:
虛擬系統(tǒng)參與路由SPF計(jì)算,初始系統(tǒng)發(fā)布的LSP中攜帶了到每個(gè)虛擬系統(tǒng)的鏈路信息。類似地,虛擬系統(tǒng)發(fā)布的LSP也包含到初始系統(tǒng)的鏈路信息。這樣,在網(wǎng)絡(luò)中虛擬系統(tǒng)看起來與初始系統(tǒng)相連的真實(shí)路由器是一樣的。 這種方式是為了兼容不支持分片擴(kuò)展的老版本所做的一個(gè)過渡模式。在老版本中,IS-IS無法識(shí)別IS Alias ID TLV,所以虛擬系統(tǒng)的LSP必須表現(xiàn)的像一個(gè)普通IS-IS發(fā)出的報(bào)文。
注意事項(xiàng):
虛擬系統(tǒng)的LSP中包含和原LSP中相同的區(qū)域地址和過載標(biāo)志位。如果還有其它特性的TLV,也必須保持一致。 虛擬系統(tǒng)所攜帶的鄰居信息指向初始系統(tǒng),metric為最大值減1;初始系統(tǒng)所攜帶的鄰居信息指向虛擬系統(tǒng),metric必須為0。這樣就保證了其它路由器在進(jìn)行路由計(jì)算的時(shí)候,虛擬系統(tǒng)一定會(huì)成為初始系統(tǒng)的下游節(jié)點(diǎn)。
模式二:
注:無論在哪種方式下,初始系統(tǒng)和虛擬系統(tǒng)的LSP零分片中,都必須包含IS Alias ID TLV來表示初始系統(tǒng)是誰。
ISIS主機(jī)名映射:
IS-IS主機(jī)名映射機(jī)制為運(yùn)行IS-IS協(xié)議的設(shè)備提供了一種從主機(jī)名到System ID映射的服務(wù),它包括動(dòng)態(tài)主機(jī)名映射和靜態(tài)主機(jī)名映射。動(dòng)態(tài)主機(jī)名映射的優(yōu)先級(jí)高于靜態(tài)主機(jī)名映射。當(dāng)兩者同時(shí)存在時(shí),由動(dòng)態(tài)主機(jī)名代替靜態(tài)主機(jī)名。
在沒有使能主機(jī)名交換特性的運(yùn)行IS-IS協(xié)議的設(shè)備上,查看IS-IS鄰居和鏈路狀態(tài)數(shù)據(jù)庫等信息時(shí),IS-IS域中的各設(shè)備都是用由12位十六進(jìn)制數(shù)組成的System ID來表示的,例如:aaaa.eeee.1234。這種表示方法比較繁瑣,而且易用性不好。主機(jī)名交換機(jī)制就是為了方便對(duì)IS-IS網(wǎng)絡(luò)的維護(hù)和管理而引入的。
顯示IS-IS鄰居時(shí),將IS-IS鄰居的System ID替換為主機(jī)名。如果該鄰居為DIS,則DIS的System ID也替換為該鄰居的主機(jī)名。 顯示IS-IS鏈路狀態(tài)數(shù)據(jù)庫中的LSP時(shí),將LSP ID中的System ID替換為發(fā)布該LSP的設(shè)備的主機(jī)名。 顯示IS-IS鏈路狀態(tài)數(shù)據(jù)庫的詳細(xì)信息時(shí),對(duì)于使能了動(dòng)態(tài)主機(jī)名交換的設(shè)備發(fā)送的LSP報(bào)文會(huì)增加顯示Host Name字段,而此字段顯示內(nèi)容中的System ID也將替換為發(fā)送此LSP的設(shè)備的動(dòng)態(tài)主機(jī)名。
動(dòng)態(tài)主機(jī)名映射:
在使能了動(dòng)態(tài)主機(jī)名映射的設(shè)備上,IS-IS動(dòng)態(tài)主機(jī)名的信息在LSP中以137號(hào)TLV(Dynamic Hostname TLV)的形式發(fā)布給其他IS-IS設(shè)備。在其他設(shè)備上使用IS-IS相關(guān)顯示命令查看IS-IS信息時(shí),本地設(shè)備的System ID將被設(shè)置的主機(jī)名所代替,這樣更直觀,也更容易記憶。
動(dòng)態(tài)主機(jī)名的TLV是可選的,它可以存在于LSP中的任何位置。其中TLV的value值不能為空。設(shè)備在發(fā)送LSP的時(shí)候可以決定是否攜帶該TLV,接收端的設(shè)備也可以決定是否忽略該TLV,或者提取該TLV的內(nèi)容放在自己的映射表中。
靜態(tài)主機(jī)映射:
靜態(tài)主機(jī)名映射是指在本地設(shè)備上對(duì)其他運(yùn)行IS-IS協(xié)議的設(shè)備設(shè)置主機(jī)名與System ID的映射。靜態(tài)主機(jī)名映射僅在本地設(shè)備生效,并不會(huì)通過LSP報(bào)文發(fā)送出去。
IS-IS擴(kuò)展知識(shí)
ISIS GR:
IS-IS GR(Graceful Restart)是一種支持GR能力的高可靠性技術(shù),可以實(shí)現(xiàn)數(shù)據(jù)的不間斷轉(zhuǎn)發(fā)。
設(shè)備發(fā)生主備倒換后,由于沒有保存任何重啟前的鄰居信息,因此一開始發(fā)送的Hello報(bào)文中不包含鄰居列表。此時(shí)鄰居設(shè)備收到后,執(zhí)行兩次握手機(jī)制鄰居關(guān)系檢查,發(fā)現(xiàn)在重啟設(shè)備的Hello報(bào)文的鄰居列表中沒有自己,這樣鄰居關(guān)系將會(huì)斷掉。同時(shí),鄰居設(shè)備通過生成新的LSP報(bào)文,將拓?fù)渥兓男畔⒎汉榻o區(qū)域內(nèi)的其它設(shè)備。區(qū)域內(nèi)的其他設(shè)備會(huì)基于新的鏈路狀態(tài)數(shù)據(jù)庫進(jìn)行路由計(jì)算,從而造成路由中斷或者路由環(huán)路。
IETF針對(duì)這種情況為IS-IS制定了GR規(guī)范(RFC3847),對(duì)保留FIB表和不保留FIB表的協(xié)議重啟都進(jìn)行了處理,避免協(xié)議重啟帶來的路由震蕩和流量轉(zhuǎn)發(fā)中斷的現(xiàn)象。
基本概念:
IS-IS GR過程由GR-Restarter和GR-Helper配合完成。
GR-Restarter:具備GR能力,且要進(jìn)行GR的設(shè)備。 GR-Helper:具備GR能力,輔助GR設(shè)備完成GR功能的設(shè)備。GR-Restarter一定具有GR-Helper的能力。
為了實(shí)現(xiàn)GR,IS-IS引入211號(hào)TLV(Restart TLV)和T1、T2、T3三個(gè)定時(shí)器。
Restart TLV:
Restart TLV是包含在IIH(IS-to-IS Hello PDUs)報(bào)文中的擴(kuò)展部分。支持IS-IS GR能力的設(shè)備的所有IIH報(bào)文都包含Restart TLV。Restart TLV中攜帶了協(xié)議重啟的一些參數(shù)。其報(bào)文格式如下圖所示:
圖:Restart TLV格式
報(bào)文字段解釋如下:
字段名 長(zhǎng)度 含義 Type 1字節(jié) TLV的類型。值為211表示是Restart TLV。 Length 1字節(jié) TLV值的長(zhǎng)度。 RR 1比特 重啟請(qǐng)求位(Restart Request)。設(shè)備發(fā)送的RR置位的Hello報(bào)文用于通告鄰居自己發(fā)生Restarting/Starting,請(qǐng)求鄰居保留當(dāng)前的IS-IS鄰接關(guān)系并返回CSNP報(bào)文。 RA 1比特 重啟應(yīng)答位(Restart Acknowledgement)。設(shè)備發(fā)送的RA置位的Hello報(bào)文用于通告鄰居確認(rèn)收到了RR置位的報(bào)文。 SA 1比特 抑制發(fā)布鄰接關(guān)系位(Suppress adjacency advertisement)。用于發(fā)生Starting的設(shè)備請(qǐng)求鄰居抑制與自己相關(guān)的鄰居關(guān)系的廣播,以避免路由黑洞。 Remaining Time 2字節(jié) 鄰居保持鄰接關(guān)系不重置的時(shí)間。長(zhǎng)度是2字節(jié),單位是秒。當(dāng)RA置位時(shí),這個(gè)值是必需的。
定時(shí)器:
IS-IS的GR能力擴(kuò)展中,引入了三個(gè)定時(shí)器,分別是T1、T2和T3。
T1定時(shí)器:如果GR Restarter已發(fā)送RR置位的IIH報(bào)文,但直到T1定時(shí)器超時(shí)還沒有收到GR Helper的包含Restart TLV且RA置位的IIH報(bào)文的確認(rèn)消息時(shí),會(huì)重置T1定時(shí)器并繼續(xù)發(fā)送包含Restart TLV的IIH報(bào)文。當(dāng)收到確認(rèn)報(bào)文或者T1定時(shí)器已超時(shí)3次時(shí),取消T1定時(shí)器。T1定時(shí)器缺省設(shè)置為3秒。
使能了IS-IS GR特性的進(jìn)程,在每個(gè)接口都會(huì)維護(hù)一個(gè)T1定時(shí)器。在Level-1-2路由器上,廣播網(wǎng)接口為每個(gè)Level維護(hù)一個(gè)T1定時(shí)器。
T2定時(shí)器:GR Restarter從重啟開始到本Level所有設(shè)備LSDB完成同步的時(shí)間。T2定時(shí)器是系統(tǒng)等待各層LSDB同步的最長(zhǎng)時(shí)間,一般情況下為60秒。
Level-1和Level-2的LSDB各維護(hù)一個(gè)T2定時(shí)器。
T3定時(shí)器:GR Restarter成功完成GR所允許的最大時(shí)間。T3定時(shí)器的初始值為65535秒,但在收到鄰居回應(yīng)的RA置位的IIH報(bào)文后,取值會(huì)變?yōu)楦鱾€(gè)IIH報(bào)文的Remaining time字段值中的最小者。T3定時(shí)器超時(shí)表示GR失敗。
整個(gè)系統(tǒng)維護(hù)一個(gè)T3定時(shí)器。
會(huì)話機(jī)制:
為了以示區(qū)別,主備倒換和重啟IS-IS進(jìn)程觸發(fā)的GR過程稱為Restarting,F(xiàn)IB表保持不變。設(shè)備重啟觸發(fā)的GR過程稱為Starting,進(jìn)行FIB表更新。
下面分Restarting和Starting兩種情況說明IS-IS GR的詳細(xì)過程。
ISIS Restarting的過程:
圖:IS-IS Restarting過程
GR Restarter進(jìn)行協(xié)議重啟后,GR Restarter進(jìn)行如下操作:
啟動(dòng)T1、T2和T3定時(shí)器。 從所有接口發(fā)送包含Restart TLV的IIH報(bào)文,其中RR置位,RA和SA位清除。 GR Helper收到IIH報(bào)文以后,進(jìn)行如下操作:
GR Helper維持鄰居關(guān)系,刷新當(dāng)前的Holdtime。
回送一個(gè)包含Restart TLV的IIH報(bào)文(RR清除,RA置位,Remaining time是從現(xiàn)在到Holdtime超時(shí)的時(shí)間間隔)。
發(fā)送CSNP報(bào)文和所有LSP報(bào)文給GR Restarter。
在點(diǎn)到點(diǎn)鏈路上,鄰居必須發(fā)送CSNP。
在廣播鏈路上,是DIS的鄰居才發(fā)送CSNP報(bào)文,如果重啟的是DIS,則在LAN中的其它設(shè)備中選舉一個(gè)臨時(shí)的DIS。
如果鄰居設(shè)備不具備GR Helper能力,就忽略Restart TLV,按正常的IS-IS過程處理,重置和GR Restarter的鄰接關(guān)系。
GR Restarter接收到鄰居的IIH回應(yīng)報(bào)文(RR清除、RA置位),做如下處理:
把T3的當(dāng)前值和報(bào)文中Remaining time比較,取其中較小者作為T3的值。 在接口收到確認(rèn)報(bào)文和CSNP報(bào)文之后,取消該接口的T1定時(shí)器。 如果該接口沒有收到確認(rèn)報(bào)文和CSNP報(bào)文,T1會(huì)不停地重置,重發(fā)含Restart TLV的IIH報(bào)文。如果T1超時(shí)次數(shù)超過閾值,GR Restarter強(qiáng)制取消T1定時(shí)器,啟動(dòng)正常的IS-IS處理流程。 當(dāng)GR Restarter所有接口上的T1定時(shí)器都取消,CSNP列表清空并且收集全所有的LSP報(bào)文后,可以認(rèn)為和所有的鄰居都完成了同步,取消T2定時(shí)器。
T2定時(shí)器被取消,表示本Level的LSDB已經(jīng)同步。
如果是單Level系統(tǒng),則直接觸發(fā)SPF計(jì)算。 如果是Level-1-2系統(tǒng),此時(shí)判斷另一個(gè)Level的T2定時(shí)器是否也取消。如果兩個(gè)Level的T2定時(shí)器都被取消,那么觸發(fā)SPF計(jì)算,否則等待另一個(gè)Level的T2定時(shí)器超時(shí)。 各層的T2定時(shí)器都取消后,GR Restarter取消T3定時(shí)器,更新FIB表。GR Restarter可以重新生成各層的LSP并泛洪,在同步過程中收到的自己重啟前生成的LSP此時(shí)也可以被刪除。
至此,GR Restarter的IS-IS Restarting過程結(jié)束。
ISIS Starting過程:
對(duì)于Starting設(shè)備,因?yàn)闆]有保留FIB表項(xiàng),所以一方面希望在Starting之前和自己的鄰接關(guān)系為“Up”的鄰居重置和自己的鄰接關(guān)系,同時(shí)希望鄰居能在一段時(shí)間內(nèi)抑制和自己的鄰接關(guān)系的發(fā)布。其處理過程和Restarting不同,具體如下圖所示:
圖:IS-IS Starting過程
為每層LSDB的同步啟動(dòng)T2定時(shí)器。
從各個(gè)接口發(fā)送攜帶Restart TLV的IIH報(bào)文,其中RR位清除,SA位置位。 RR位清除表示是Starting完成。 SA位置位則表示希望鄰居在收到SA位清除的IIH報(bào)文之前,一直抑制和自己的鄰接關(guān)系的發(fā)布。
鄰居收到攜帶Restart TLV的IIH報(bào)文,根據(jù)設(shè)備是否支持GR,進(jìn)行如下處理。
支持GR
重新初始化鄰接關(guān)系。
在發(fā)送的LSP中取消和GR Restarter鄰接關(guān)系的描述,進(jìn)行SPF計(jì)算時(shí)也不考慮和GR Restarter相連的鏈路,直到收到SA位清除的IIH為止。
不支持GR
鄰居忽略Restart TLV,重置和GR Restarter之間的鄰接關(guān)系。
回應(yīng)一個(gè)不含Restart TLV的IIH報(bào)文,轉(zhuǎn)入正常的IS-IS處理流程。這時(shí)不會(huì)抑制和GR Restarter的鄰接關(guān)系的發(fā)布。在點(diǎn)到點(diǎn)鏈路上,還會(huì)發(fā)送一個(gè)CSNP報(bào)文。
鄰接關(guān)系重新初始化之后,在每個(gè)接口上GR Restarter都和鄰居重建鄰接關(guān)系。當(dāng)有一個(gè)鄰接關(guān)系到達(dá)Up狀態(tài)后,GR Restarter為該接口啟動(dòng)T1定時(shí)器。
在T1定時(shí)器超時(shí)之后,GR Restarter發(fā)送RR置位、SA置位的IIH報(bào)文。
鄰居收到RR置位和SA置位的IIH報(bào)文后,發(fā)送一個(gè)RR清除、RA置位的IIH報(bào)文作為確認(rèn)報(bào)文,并發(fā)送CSNP報(bào)文。
GR Restarter收到鄰居的IIH確認(rèn)報(bào)文和CSNP報(bào)文以后,取消T1定時(shí)器。
如果沒有收到IIH報(bào)文或者CSNP報(bào)文,就不停重置T1定時(shí)器,重發(fā)RR置位、SA置位的IIH報(bào)文。如果T1超時(shí)次數(shù)超過閾值,GR Restarter強(qiáng)制取消T1定時(shí)器,進(jìn)入正常的IS-IS處理流程完成LSDB同步。
GR Restarter收到Helper端的CSNP以后,開始同步LSDB。
本Level的LSDB同步完成后,GR Restarter取消T2定時(shí)器。
所有的T2定時(shí)器都取消以后,啟動(dòng)SPF計(jì)算,重新生成LSP,并泛洪。
至此,GR Restarter的IS-IS Starting過程完成。
IS-IS NSR(不間斷路由):
在網(wǎng)絡(luò)高速發(fā)展的今天,用戶對(duì)數(shù)據(jù)、視頻、語音等應(yīng)用的需求日漸增多,運(yùn)營商對(duì)IP網(wǎng)絡(luò)的可靠性也提出了更高的需求。當(dāng)網(wǎng)絡(luò)中某個(gè)節(jié)點(diǎn)發(fā)生故障,或者維護(hù)過程中人為進(jìn)行的主備倒換,都可能導(dǎo)致設(shè)備無法組建路由信息,導(dǎo)致流量丟失甚至網(wǎng)絡(luò)癱瘓。部署NSR(Non-Stop Routing)能夠解決上述問題,給用戶的關(guān)鍵業(yè)務(wù)提供不間斷轉(zhuǎn)發(fā)的高可靠性保障。
IS-IS NSR特性通過IS-IS實(shí)時(shí)數(shù)據(jù)的主備間高度同步來保證主備倒換后備板能夠快速接管原主控板的業(yè)務(wù),使鄰居不感知本設(shè)備故障。在主備倒換后,新主用主控板利用這些實(shí)時(shí)數(shù)據(jù)可以迅速地恢復(fù)協(xié)議,使鄰居設(shè)備對(duì)主備倒換不感知。IS-IS NSR主要通過備份以下數(shù)據(jù)來實(shí)現(xiàn):
配置數(shù)據(jù):用戶完成的所有配置,包括鄰居信息,定時(shí)器參數(shù)信息及進(jìn)程下的配置信息等。 動(dòng)態(tài)數(shù)據(jù):包括接口參數(shù)及狀態(tài)、鄰居、LSDB等信息。
IS-IS與BFD(雙向轉(zhuǎn)發(fā)檢測(cè))聯(lián)動(dòng):
通常情況下,IS-IS設(shè)定發(fā)送Hello報(bào)文的時(shí)間間隔為10秒,一般將宣告鄰居Down掉的時(shí)間(即鄰居的保持時(shí)間)配置為Hello報(bào)文間隔的3倍。若在相鄰路由器失效時(shí)間內(nèi)沒有收到鄰居發(fā)來的Hello報(bào)文,將會(huì)刪除鄰居。由此可見路由器能感知到鄰居故障的時(shí)間最小為秒級(jí)。這樣可能會(huì)出現(xiàn)在高速的網(wǎng)絡(luò)環(huán)境中大量報(bào)文丟失的問題。
雙向轉(zhuǎn)發(fā)檢測(cè)BFD(Bidirectional Forwarding Detection)能夠提供輕負(fù)荷、快速(毫秒級(jí))的通道故障檢測(cè),解決了IS-IS現(xiàn)有檢測(cè)機(jī)制的不足的問題。使用BFD并不是代替IS-IS協(xié)議本身的Hello機(jī)制,而是配合IS-IS協(xié)議更快的發(fā)現(xiàn)鄰接方面出現(xiàn)的故障,并及時(shí)通知IS-IS重新計(jì)算相關(guān)路由以便正確指導(dǎo)報(bào)文的轉(zhuǎn)發(fā)。
IS-IS與BFD聯(lián)動(dòng)的實(shí)現(xiàn)方式 工作原理 區(qū)別 IS-IS與靜態(tài)BFD聯(lián)動(dòng) 通過命令行手工配置BFD會(huì)話參數(shù),包括了配置本地標(biāo)識(shí)符和遠(yuǎn)端標(biāo)識(shí)符等,然后手工下發(fā)BFD會(huì)話建立請(qǐng)求。 靜態(tài)BFD的優(yōu)點(diǎn)是可以人為控制,部署比較靈活,為了節(jié)省內(nèi)存,同時(shí)又保證關(guān)鍵鏈路的可靠性,可以在某些指定鏈路部署B(yǎng)FD,而其他鏈路不部署。靜態(tài)BFD的缺點(diǎn)在于建立和刪除BFD會(huì)話時(shí)都需要手工觸發(fā),配置時(shí)缺乏靈活性。而且有可能造成人為的配置錯(cuò)誤。例如,如果配置了錯(cuò)誤的本地標(biāo)識(shí)符或者遠(yuǎn)端標(biāo)識(shí)符時(shí),BFD會(huì)話將不能正常工作。 IS-IS與動(dòng)態(tài)BFD聯(lián)動(dòng) 通過IS-IS動(dòng)態(tài)創(chuàng)建BFD的會(huì)話,不再依靠手工配置。當(dāng)BFD檢測(cè)到故障的時(shí)候,通過路由管理通知IS-IS。IS-IS進(jìn)行相應(yīng)鄰居Down處理,快速發(fā)布變化的LSP信息和進(jìn)行增量路由計(jì)算,從而實(shí)現(xiàn)路由的快速收斂。 動(dòng)態(tài)BFD比靜態(tài)BFD更具有靈活性。動(dòng)態(tài)BFD由路由協(xié)議動(dòng)態(tài)觸發(fā)BFD會(huì)話建立,避免了人為控制可能導(dǎo)致的配置錯(cuò)誤,且配置比較簡(jiǎn)單,適用在全網(wǎng)需要配置BFD的情況。
IS-IS Auto FRR(快速重路由):
隨著網(wǎng)絡(luò)的不斷發(fā)展,VoIP和在線視頻等業(yè)務(wù)對(duì)實(shí)時(shí)性的要求越來越高,而IS-IS故障恢復(fù)需要經(jīng)歷“故障感知、LSP更新、LSP泛洪、路由計(jì)算和下發(fā)FIB”這幾個(gè)過程才能讓流量切換到新的鏈路上,因此故障恢復(fù)的時(shí)間遠(yuǎn)遠(yuǎn)超過了50ms(即用戶感知流量中斷的時(shí)間),不能滿足此類網(wǎng)絡(luò)業(yè)務(wù)的實(shí)時(shí)性要求。
IS-IS Auto FRR(Fast reroute)遵循RFC 5286(Basic Specification for IP Fast Reroute Loop-Free Alternates)協(xié)議,可為流量提供鏈路和節(jié)點(diǎn)的保護(hù)。IS-IS Auto FRR能夠保證轉(zhuǎn)發(fā)系統(tǒng)快速地響應(yīng)這種故障事件并采取措施,盡快讓業(yè)務(wù)流恢復(fù)正常。
通常情況下,通過將BFD會(huì)話與IS-IS Auto FRR進(jìn)行綁定,可以使故障恢復(fù)時(shí)間降低到50ms以內(nèi)。當(dāng)BFD檢測(cè)到接口鏈路故障后,BFD會(huì)話狀態(tài)會(huì)變?yōu)镈own并觸發(fā)接口進(jìn)行快速重路由,將流量從故障鏈路切換到備份鏈路上,從而達(dá)到流量保護(hù)的目的。
工作原理:
IS-IS Auto FRR利用LFA(Loop-Free Alternates)算法預(yù)先計(jì)算好備份鏈路,并與主鏈路一起加入轉(zhuǎn)發(fā)表。當(dāng)網(wǎng)絡(luò)出現(xiàn)故障時(shí),IS-IS Auto FRR可以在控制平面路由收斂前將流量快速切換到備份鏈路上,保證流量不中斷,從而達(dá)到保護(hù)流量的目的,因此極大的提高了IS-IS網(wǎng)絡(luò)的可靠性。
LFA計(jì)算備份鏈路的基本思路是:以可提供備份鏈路的鄰居為根節(jié)點(diǎn),利用SPF算法計(jì)算出到目的節(jié)點(diǎn)的最短距離。然后,按照RFC5286規(guī)定計(jì)算出無環(huán)的備份鏈路。
IS-IS Auto FRR支持對(duì)需要加入IP路由表的備份路由進(jìn)行過濾,通過過濾策略的備份路由才會(huì)加入到IP路由表,因此,用戶可以更靈活的控制加入IP路由表的IS-IS備份路由。
IS-IS TE(流量工程):
傳統(tǒng)的路由器選擇最短的路徑作為主路由,不考慮帶寬等因素。這樣,即使某條路徑發(fā)生擁塞,也不會(huì)將流量切換到其他的路徑上。MPLS TE(Multiprotocol Label Routering Traffic Engineering)解決網(wǎng)絡(luò)擁塞問題有自己的優(yōu)勢(shì)。通過MPLS TE,用戶可以精確地控制流量流經(jīng)的路徑,從而可以避開擁塞的節(jié)點(diǎn)。同時(shí),MPLS TE在建立隧道的過程中,可以預(yù)留資源,保證服務(wù)質(zhì)量。
為了保證服務(wù)的連續(xù)性,MPLS TE還引入路由備份和快速重路由的機(jī)制,可以在鏈路出現(xiàn)問題時(shí)及時(shí)進(jìn)行切換。通過MPLS TE技術(shù),服務(wù)提供商能夠充分利用現(xiàn)有的網(wǎng)絡(luò)資源,提供多樣化的服務(wù)。同時(shí)可以優(yōu)化網(wǎng)絡(luò)資源,進(jìn)行科學(xué)的網(wǎng)絡(luò)管理。
MPLS TE為了實(shí)現(xiàn)上述目的,需要了解整個(gè)網(wǎng)絡(luò)中所有路由器的TE配置信息,但是MPLS TE缺乏這樣一個(gè)機(jī)制:每個(gè)路由器在整個(gè)網(wǎng)絡(luò)中泛洪各自的TE信息,并完成整網(wǎng)TE信息的同步。這個(gè)機(jī)制恰恰是IS-IS路由協(xié)議的一個(gè)基本特性,MPLS TE需要借助IS-IS完成TE信息的發(fā)布和同步。
IS-IS TE是IS-IS為了支持MPLS TE而做的擴(kuò)展,它遵循RFC5305和RFC4205中關(guān)于IS-IS部分?jǐn)U展的規(guī)定,通過在IS-IS LSP報(bào)文中定義新的TLV的方式,攜帶該路由器MPLS TE的配置信息,通過LSP的泛洪同步,實(shí)現(xiàn)MPLS TE信息的泛洪和同步。IS-IS TE把所有LSP中攜帶的TE信息提取出來,傳遞給MPLS的CSPF(Constraint Shortest Path First)模塊,用來計(jì)算隧道路徑。IS-IS TE在MPLS TE的流程中扮演著“搬運(yùn)工”的角色,IS-IS TE和MPLS TE、CSPF的關(guān)系可以用下圖來概括:
圖:MPLS TE、CSPF和IS-IS TE關(guān)系圖
IS-IS TE新增TLV:
IS-IS TE為了在LSP中攜帶TE信息,在RFC5305中新定義了如下四種TLV:
Extended IS reachability TLV
此TLV用來替換IS reachability TLV,并采用sub TLV的形式擴(kuò)展了原來的TLV格式。sub TLV在TLV中的實(shí)現(xiàn)方式與TLV在LSP中的實(shí)現(xiàn)方式相同。這些sub TLV用來攜帶配置在物理接口下的TE信息。
Traffic Engineering router ID TLV
此TLV type為134,包含了四字節(jié)的Router ID,在目前實(shí)現(xiàn)中就是MPLS LSR-ID。對(duì)于MPLS TE來說,Router ID用來唯一的標(biāo)識(shí)一臺(tái)路由器,它必須要和路由器一一對(duì)應(yīng)。
Extended IP reachability TLV
此TLV用來替換IP reachability TLV,用來攜帶路由信息。擴(kuò)展了路由開銷值的范圍(四個(gè)字節(jié)),并可以攜帶sub TLV。
Shared Risk Link Group TLV
此TLV type為138,用來攜帶共享風(fēng)險(xiǎn)鏈路組信息。每個(gè)共享鏈路信息為四字節(jié)的正整數(shù)值,該TLV可以攜帶多個(gè)共享鏈路信息。
Extended IS reachability TLV 已經(jīng)定義的Sub TLV:
名稱 類型 長(zhǎng)度(Byte) 值 Administrative Group 3 4 管理組 IPv4 Interface Address 6 4 本端IPv4接口地址 IPv4 Neighbour Address 8 4 鄰居的IPv4接口地址 Maximum Link Bandwidth 9 4 最大鏈路帶寬 Maximum Reserved Link Bandwidth 10 4 最大預(yù)留鏈路帶寬 Unreserved Bandwidth 11 32 未預(yù)留帶寬 Traffic Engineering Default Metric 18 3 流量工程缺省開銷值 Bandwidth Constraints sub-TLV 22 36 帶寬約束TLV
IS-IS TE工作流程:
IS-IS TE主要有兩個(gè)流程:
響應(yīng)MPLS TE的配置消息流程
只有使能了MPLS TE,IS-IS TE特性才能運(yùn)行。
根據(jù)MPLS TE的配置,更新IS-IS LSP報(bào)文中的TE信息。
將MPLS TE的配置傳遞給CSPF模塊。
處理LSP中TE信息的流程
提取收到的IS-IS LSP報(bào)文中的TE信息,傳遞給CSPF模塊。
IS-IS TE的典型應(yīng)用是協(xié)助MPLS TE建立TE隧道。
IS-IS多實(shí)例和多進(jìn)程:
對(duì)于支持VPN(Virtual Private Network)的設(shè)備,IS-IS多實(shí)例是指在同一臺(tái)路由器上,可以配置多個(gè)VPN實(shí)例與多個(gè)IS-IS進(jìn)程相關(guān)聯(lián)。IS-IS多進(jìn)程指在同一個(gè)VPN下(或者同在公網(wǎng)下)可以創(chuàng)建多個(gè)IS-IS進(jìn)程,每個(gè)進(jìn)程之間互不影響,彼此獨(dú)立。不同進(jìn)程之間的路由交互相當(dāng)于不同路由協(xié)議之間的路由交互。
每個(gè)IS-IS進(jìn)程都可以綁定一個(gè)指定的VPN實(shí)例,其典型應(yīng)用就是在VPN場(chǎng)景中PE和CE之間運(yùn)行IS-IS協(xié)議,同時(shí)VPN骨干網(wǎng)上的IGP也采用IS-IS。那么,在PE上這兩個(gè)IS-IS進(jìn)程互不影響。
IS-IS多進(jìn)程共用同一個(gè)RM路由表。而IS-IS多實(shí)例使用VPN中的RM路由表,并且每個(gè)VPN都有自己?jiǎn)为?dú)的RM路由表。 IS-IS多進(jìn)程允許為一個(gè)指定的IS-IS進(jìn)程關(guān)聯(lián)一組接口,從而保證該進(jìn)程進(jìn)行的所有協(xié)議操作都僅限于這一組接口。這樣,就可以實(shí)現(xiàn)一臺(tái)路由器有多個(gè)IS-IS協(xié)議進(jìn)程,每個(gè)進(jìn)程負(fù)責(zé)唯一的一組接口。 IS-IS進(jìn)程在創(chuàng)建時(shí)可以選擇綁定一個(gè)VPN實(shí)例,于是這個(gè)IS-IS進(jìn)程就與此VPN實(shí)例相關(guān)聯(lián),并且只接收和處理此VPN實(shí)例內(nèi)的事件。當(dāng)VPN實(shí)例刪除時(shí),IS-IS進(jìn)程也會(huì)跟著被刪除。
IS-IS鄰居震蕩抑制:
IS-IS鄰居震蕩抑制功能是一種震蕩抑制方式,通過延遲鄰居建立或調(diào)整鏈路開銷為最大值的方法達(dá)到抑制震蕩的目的。
產(chǎn)生原因:
如果承載IS-IS業(yè)務(wù)的接口狀態(tài)在Up和Down之間切換,就會(huì)引起鄰居狀態(tài)的頻繁震蕩。此時(shí),IS-IS會(huì)快速發(fā)送Hello報(bào)文重新建立鄰居,同步數(shù)據(jù)庫LSDB,觸發(fā)路由計(jì)算,會(huì)造成大量報(bào)文交互,影響現(xiàn)有鄰居的穩(wěn)定性,對(duì)IS-IS業(yè)務(wù)造成較大影響,同時(shí)也會(huì)影響依賴IS-IS的其他業(yè)務(wù)(如:LDP、BGP)的正常運(yùn)行。為了解決這個(gè)問題,IS-IS實(shí)現(xiàn)了鄰居震蕩抑制功能,即在鄰居頻繁震蕩時(shí),啟動(dòng)震蕩抑制,實(shí)現(xiàn)鄰居延遲建立,或?qū)崿F(xiàn)業(yè)務(wù)流量延遲經(jīng)過頻繁震蕩的鏈路,達(dá)到抑制震蕩的目的。
相關(guān)概念:
flapping_event :震蕩事件,接口上最后一次鄰居狀態(tài)由Up切換為Init或Down,稱之為flapping_event。flapping_event作為震蕩源輸入,用來觸發(fā)震蕩檢測(cè)機(jī)制啟動(dòng)工作。flapping_count :當(dāng)前震蕩次數(shù)。detect-interval :震蕩檢測(cè)間隔,用于判斷是否觸發(fā)一次有效震蕩事件。threshold :震蕩抑制閾值,有效震蕩事件觸發(fā)累計(jì)超過該值時(shí),進(jìn)入震蕩抑制階段。resume-interval :恢復(fù)間隔,連續(xù)兩次有效震蕩事件超過該值時(shí),退出震蕩抑制階段。
實(shí)現(xiàn)原理:
震蕩檢測(cè)
IS-IS接口啟動(dòng)一個(gè)flapping_count計(jì)數(shù)器,相鄰兩次flapping_event產(chǎn)生時(shí)間的間隔在detect-interval之內(nèi),記為一次有效震蕩事件。flapping_count計(jì)數(shù)加1,當(dāng)flapping_count計(jì)數(shù)大于threshold時(shí),系統(tǒng)判定震蕩發(fā)生,需要進(jìn)入震蕩抑制階段。進(jìn)入震蕩抑制階段后,flapping_count清0。在flapping_count大于threshold之前,如果兩次flapping_event的間隔大于resume-interval,則flapping_count清0。鄰居震蕩抑制從最后一次鄰居狀態(tài)變?yōu)镮nit或Down開始計(jì)時(shí)。
用戶可以通過命令行配置detect-interval,threshold,resume-interval三個(gè)震蕩檢測(cè)的關(guān)鍵參數(shù)。
震蕩抑制
震蕩抑制分為Hold-down和Hold-max-cost兩種模式:
Hold-down模式:針對(duì)鄰居建立過程中的頻繁泛洪和拓?fù)渥兓膯栴},在一段時(shí)間內(nèi)禁止該鄰居重新建立,避免頻繁的數(shù)據(jù)庫同步和大量的報(bào)文交互。 Hold-max-cost模式:針對(duì)用戶業(yè)務(wù)流量頻繁切換的問題,在一段時(shí)間內(nèi)將鏈路開銷值設(shè)置為最大值Max-cost(IS-IS Wide模式的Max-cost=16777214,IS-IS Narrow模式的Max-cost=63),避免用戶的業(yè)務(wù)流量經(jīng)過頻繁震蕩的鏈路。
Hold-down模式和Hold-max-cost模式可以疊加使用,同時(shí)生效時(shí),先進(jìn)入Hold-down模式,待Hold-down模式退出后,再進(jìn)入Hold-max-cost模式。
缺省情況下,IS-IS使能Hold-max-cost模式,用戶可以通過命令行修改震蕩抑制方案和震蕩抑制周期。
接口進(jìn)入震蕩抑制階段后,接口下的全部鄰居都會(huì)進(jìn)入震蕩抑制階段。
退出震蕩抑制
退出震蕩抑制有以下幾種方式:
抑制定時(shí)器超時(shí)。 復(fù)位IS-IS進(jìn)程。 用戶通過命令行強(qiáng)制退出震蕩抑制狀態(tài)。 通過連續(xù)發(fā)送三個(gè)攜帶特殊信息的Hello報(bào)文(Padding TLV攜帶一個(gè)特殊的Sub TLV=251),通知對(duì)端設(shè)備強(qiáng)制退出震蕩抑制狀態(tài)。
參考文檔:華為HedEx文檔