專(zhuān)利名稱(chēng):建立中間系統(tǒng)到中間系統(tǒng)路由協(xié)議單拓?fù)溧徑雨P(guān)系的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及IPv6網(wǎng)絡(luò)數(shù)據(jù)通訊領(lǐng)域,是使用中間系統(tǒng)到中間系統(tǒng)路由協(xié)議IS-IS的IP路由器建立IS-ISv6單拓?fù)溧徑雨P(guān)系的技術(shù)。
背景技術(shù):
隨著IPv6的應(yīng)用,中間系統(tǒng)到中間系統(tǒng)路由協(xié)議IS-IS要拓展支持IPv6協(xié)議,成為IS-ISv6。IS-ISv6分單拓?fù)浜投嗤負(fù)鋬煞N模式。關(guān)于IS-ISv6單拓?fù)涞姆桨?,?jiàn)國(guó)際互聯(lián)網(wǎng)組織IETF(The Internet Engineering Task Force)文獻(xiàn)“Routing IPv6 with IS-IS”(draft-ietf-isis-ipv6-06.txt)。關(guān)于IS-ISv6多拓?fù)洌?jiàn)IETF文獻(xiàn)“M-ISISMulti Topology(MT)Routing in IS-IS”(draft-ietf-isis-wg-multi-topology-11.txt)。
用戶(hù)要某一臺(tái)路由器運(yùn)行IS-IS路由協(xié)議,并且要路由器上的某個(gè)接口上支持IS-IS,要做兩個(gè)工作(1)配置IS-IS路由協(xié)議實(shí)體;(2)接口要配置IS-IS支持哪一種IP拓?fù)洌磁渲肐S-ISv4或/和IS-ISv6。如果配置IS-ISv4,說(shuō)明用戶(hù)要求該接口支持IPv4,該接口上所有的IPv4路由就會(huì)被IS-IS通告;如果配置IS-ISv6,說(shuō)明用戶(hù)要求該接口支持IPv6,該接口上所有的IPv6路由就會(huì)被IS-IS通告。以上這兩點(diǎn)是目前業(yè)界所有產(chǎn)品運(yùn)行IS-IS路由協(xié)議的基本配置要求。
兩臺(tái)直接相連的IS-IS路由器,互通路由之前要通過(guò)IS-IS Hello報(bào)文建立鄰接關(guān)系。如果建立鄰接關(guān)系的方法不正確,會(huì)導(dǎo)致路由黑洞的出現(xiàn)。
根據(jù)國(guó)際互聯(lián)網(wǎng)組織IETF公布的標(biāo)準(zhǔn)(RFC1142,RFC1195和RFC3373),建立鄰接關(guān)系的過(guò)程如下(1)路由器根據(jù)自己的IS-IS配置,構(gòu)建Hello報(bào)文,并且在配置了支持IS-IS的接口發(fā)送/接收Hello報(bào)文。
(2)路由器的接口原來(lái)的狀態(tài)是down的。通過(guò)接口收到了遠(yuǎn)端接口(和自己直接相連的路由器的接口)發(fā)來(lái)的Hello報(bào)文,根據(jù)自身的配置,判斷是否接受遠(yuǎn)端作為自己的鄰居。如果可以,那么本接口的狀態(tài)從down轉(zhuǎn)變?yōu)閕nit。之后再發(fā)出的Hello報(bào)文就表明了本節(jié)點(diǎn)接受遠(yuǎn)端作為自己鄰居。如果不能接受遠(yuǎn)端接口,收到Hello報(bào)文將被丟棄,接口狀態(tài)不變。
(3)如果遠(yuǎn)端接口也接受本接口的話(huà)(即遠(yuǎn)端接口狀態(tài)從down轉(zhuǎn)變?yōu)閕nit),它發(fā)出的Hello報(bào)文也表明了遠(yuǎn)端接口接受自己(本接口)作為鄰居。本接口收到這樣的Hello報(bào)文后,那么本接口的狀態(tài)從init變?yōu)閡p。同樣地,遠(yuǎn)端接口的狀態(tài)也從init會(huì)變成up。鄰接關(guān)系就這樣建立起來(lái)。
運(yùn)行IS-ISv6路由協(xié)議的直接互連路由器在通告路由之前需要形成IS-IS鄰接關(guān)系。IS-IS協(xié)議是通過(guò)發(fā)送/接收Hello報(bào)文來(lái)建立鄰接關(guān)系的。但是文獻(xiàn)“Routing IPv6 with IS-IS”沒(méi)有說(shuō)明運(yùn)行IS-ISv6單拓?fù)涞穆酚善鹘涌谠鯓痈鶕?jù)收到的Hello報(bào)文上的信息去判斷是否接受發(fā)出Hello報(bào)文的遠(yuǎn)端接口(直連路由器的接口),從而建立IS-ISv6單拓?fù)溧徑雨P(guān)系的方法?;蛘哒f(shuō),文獻(xiàn)“RoutingIPv6 with IS-IS”沒(méi)有說(shuō)明運(yùn)行IS-ISv6單拓?fù)涞穆酚善鹘涌谠鯓咏邮芘c自己直接相連的路由器接口作為自己的鄰居。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是,提出一種建立中間系統(tǒng)到中間系統(tǒng)路由協(xié)議單拓?fù)溧徑雨P(guān)系的方法,即運(yùn)行IS-ISv6單拓?fù)涞穆酚善鹘⑧徑雨P(guān)系的方法,解決了現(xiàn)有技術(shù)中沒(méi)有解決的接口怎樣接受與自己直接相連的路由器接口作為IS-ISv6單拓?fù)溧従拥膯?wèn)題。
本發(fā)明采用以下技術(shù)方案為步驟一、路由器根據(jù)自己的IS-IS配置,構(gòu)建Hello報(bào)文,并且在配置了支持IS-IS的接口發(fā)送/接收Hello報(bào)文;步驟二、路由器的接口原來(lái)的狀態(tài)是down的,收到遠(yuǎn)端接口發(fā)來(lái)的Hello報(bào)文后,根據(jù)自身的配置,判斷是否接受遠(yuǎn)端接口作為自己的鄰居;如果可以,那么本接口的狀態(tài)從down轉(zhuǎn)變?yōu)閕nit;之后發(fā)出的Hello報(bào)文表明本接口接受遠(yuǎn)端作為自己鄰居;如果不能接受遠(yuǎn)端接口,收到Hello報(bào)文將被丟棄,接口狀態(tài)不變;步驟三、如果遠(yuǎn)端接口也接受本接口,遠(yuǎn)端接口狀態(tài)從down轉(zhuǎn)變?yōu)閕nit,它發(fā)出的Hello報(bào)文也表明遠(yuǎn)端接口接受本接口作為鄰居;本接口收到這樣的Hello報(bào)文后,狀態(tài)從init變?yōu)閡p;同樣地,遠(yuǎn)端接口的狀態(tài)也從init會(huì)變成up;鄰接關(guān)系建立;在步驟二中,在本接口在遠(yuǎn)端接口支持并且只支持本接口所屬路由實(shí)體支持的IP協(xié)議的情況下接受遠(yuǎn)端接口作為自己的鄰居,同樣地,遠(yuǎn)端接口在本接口支持并且只支持遠(yuǎn)端接口所屬路由實(shí)體支持的IP協(xié)議的情況下接受本接口作為自己的鄰居;其中,IP協(xié)議包括IPv4和IPv6。
在本發(fā)明的方案中,遠(yuǎn)端接口支持并且只支持本接口所屬路由實(shí)體支持的IP協(xié)議是指(a)遠(yuǎn)端接口支持本接口所屬路由實(shí)體支持的所有IP協(xié)議;(b)遠(yuǎn)端接口只支持本接口所屬路由實(shí)體支持的IP協(xié)議;此處的(a)和(b)順序可以顛倒,即也可以先判斷(b)然后再判斷(a)。
在本發(fā)明的方案中,本接口支持并且只支持遠(yuǎn)端接口所屬路由實(shí)體支持的IP協(xié)議,是指(a)本接口支持遠(yuǎn)端接口所屬路由實(shí)體支持的所有IP協(xié)議;(b)本接口只支持遠(yuǎn)端接口所屬路由實(shí)體支持的IP協(xié)議。
此處的(a)和(b)順序可以顛倒,即也可以先判斷(b)然后再判斷(a)。
采用本發(fā)明所述方法,IS-ISv6單拓?fù)浣⒌泥徑雨P(guān)系保證了IPv4和IPv6路由通告穩(wěn)定可靠,不會(huì)出現(xiàn)路由黑洞。
如果一臺(tái)運(yùn)行IS-ISv6單拓?fù)涞穆酚善鱎1使用了本發(fā)明提出的方法,與它直接相連的路由器R2啟動(dòng)了IS-ISv6多拓?fù)?,路由器R1能夠合適地建立或者不建立鄰接關(guān)系,不會(huì)導(dǎo)致R1或R2的IS-IS計(jì)算路由異常,例如,不會(huì)出現(xiàn)路由黑洞。
如果一臺(tái)運(yùn)行IS-ISv6單拓?fù)涞穆酚善鱎1使用了本發(fā)明提出的方法,與它直接相連的路由器R2啟動(dòng)了沒(méi)有構(gòu)建支持IPv6的IS-IS,例如,沒(méi)有支持IS-ISv6的IS-IS,路由器R1也能夠合適地建立或者不建立鄰接關(guān)系,不會(huì)導(dǎo)致R1或R2的IS-IS計(jì)算路由異常,例如,不會(huì)出現(xiàn)路由黑洞。
圖1是本接口判斷遠(yuǎn)端接口是否可以建立鄰接關(guān)系的方式之一流程圖;圖2是本接口判斷遠(yuǎn)端接口是否可以建立鄰接關(guān)系的方式之二流程圖;圖3是組網(wǎng)實(shí)例之一示意圖;圖4是組網(wǎng)實(shí)例之二示意圖;圖5是組網(wǎng)實(shí)例之三示意圖。
具體實(shí)施例方式
在一臺(tái)路由器上,可以運(yùn)行多個(gè)IS-IS路由實(shí)體。為了簡(jiǎn)單起見(jiàn),在以下說(shuō)明中,在一臺(tái)路由器上只是運(yùn)行一個(gè)IS-IS路由實(shí)體,并且任何支持IS-IS的接口,都屬于該實(shí)體。
當(dāng)路由器的任何一個(gè)接口配置了IPv4地址和IS-ISv4的時(shí)候,我們認(rèn)為該路由器運(yùn)行的IS-IS路由實(shí)體支持IPv4,路由器任何一個(gè)接口所發(fā)出的Hello報(bào)文都帶有實(shí)體支持IPv4的標(biāo)記0xCC,即NLPID 0xCC;當(dāng)路由器的任何一個(gè)接口配置了啟動(dòng)IPv6和IS-ISv6的時(shí)候,我們認(rèn)為該路由器運(yùn)行的IS-IS路由實(shí)體支持IPv6,路由器任何一個(gè)接口所發(fā)出的Hello報(bào)文都帶有實(shí)體支持IPv6的標(biāo)記,即NLPID 0x8E。NLPID由TLV129攜帶(見(jiàn)IETF標(biāo)準(zhǔn)RFC1195)。
當(dāng)路由器的接口配置了IS-ISv4的時(shí)候,它所發(fā)出的Hello報(bào)文帶有該接口IPv4的地址。這接口地址由TLV132攜帶(見(jiàn)IETF標(biāo)準(zhǔn)RFC1195);當(dāng)路由器的接口配置了IS-ISv6的時(shí)候,它所發(fā)出的Hello報(bào)文帶有該接口的IPv6 linklocal地址。這linklocal地址由TLV232攜帶(見(jiàn)IETF草案“Routing IPv6 with IS-IS”,即draft-ietf-isis-ipv6-06.txt)。
以上是我們對(duì)IETF的標(biāo)準(zhǔn)RFC1142,RFC1195和草案“Routing IPv6 withIS-IS”(draft-ietf-isis-ipv6-06.txt)的理解。
如果我們收到某個(gè)Hello報(bào)文,發(fā)現(xiàn)該報(bào)文帶有NLPID 0xCC,并且?guī)в兄辽僖粋€(gè)IPv4的地址,我們說(shuō)發(fā)出該Hello報(bào)文的接口支持IPv4。如果我們收到某個(gè)Hello報(bào)文,發(fā)現(xiàn)該報(bào)文帶有NLPID 0x8E,并且?guī)в兄辽僖粋€(gè)IPv6的linklocal地址,我們說(shuō)發(fā)出該Hello報(bào)文的接口支持IPv6。
當(dāng)接收Hello報(bào)文后,本接口如何接受遠(yuǎn)端接口,讓自己的狀態(tài)從down變?yōu)閕nit?本發(fā)明提出本接口接受遠(yuǎn)端接口的條件是遠(yuǎn)端接口支持并且只支持本接口所屬路由實(shí)體支持的IP協(xié)議(IP協(xié)議包括IPv4和IPv6)。這一條件是指(a)遠(yuǎn)端接口支持本接口所屬路由實(shí)體支持的所有IP協(xié)議(b)遠(yuǎn)端接口只支持本接口所屬路由實(shí)體支持的IP協(xié)議。
當(dāng)(a)和(b)都成立時(shí),本接口才接受遠(yuǎn)端接口,本接口的狀態(tài)從down變成init。只要(a)或(b)其中一個(gè)不成立,收到的Hello報(bào)文可以丟棄,處理可以結(jié)束,本接口不接受遠(yuǎn)端接口,本接口的狀態(tài)保持不變。
當(dāng)然,在上述條件中,我們假設(shè)如果支持IPv4,那么遠(yuǎn)端接口的IPv4網(wǎng)段至少有一個(gè)和本接口的其中一個(gè)IPv4網(wǎng)段屬于同一網(wǎng)段。在這篇說(shuō)明中,除非額外說(shuō)明,否則我們這個(gè)假設(shè)都成立。
在實(shí)現(xiàn)我們這個(gè)方法的時(shí)候,(a)和(b)沒(méi)有實(shí)現(xiàn)的先后順序。即,收到Hello報(bào)文后,可以先判斷(b),后判斷(a),或者先判斷(a),后判斷(b)。
圖1是本接口判斷遠(yuǎn)端接口是否可以建立鄰接關(guān)系的方式之一流程圖。本接口根據(jù)配置,知道了自己所屬的IS-IS路由實(shí)體支持什么IP協(xié)議,對(duì)收到遠(yuǎn)端接口的Hello報(bào)文,先判斷遠(yuǎn)端接口是否支持本接口所屬路由實(shí)體支持的所有IP協(xié)議,然后判斷遠(yuǎn)端接口是否只支持本接口所屬路由實(shí)體支持的IP協(xié)議。
圖2是本接口判斷遠(yuǎn)端接口是否可以建立鄰接關(guān)系的方式之一流程圖。與圖1不同的是判斷的先后順序不同。
下面用三個(gè)例子來(lái)說(shuō)明這個(gè)判斷條件。在例子的實(shí)現(xiàn)中,我們先判斷條件(a),后判斷(b)。在下面所有例子中,接口都是up。
例子1如圖3路由器Router1和Router2運(yùn)行IS-IS,接口A和B都配置了IPv4地址而且A,B屬于同一網(wǎng)段。此外,A和B都啟動(dòng)了IPv6。
對(duì)圖3的組網(wǎng),我們這樣配置接口Ais-is v4,is-is v6接口Bis-is v4,is-is v6因?yàn)榻涌贏啟動(dòng)了is-is v4,路由器Router1的IS-IS路由實(shí)體(A所屬的路由實(shí)體)支持的IP協(xié)議包括IPv4。因?yàn)锳也啟動(dòng)了is-is v6,Router1的IS-IS路由實(shí)體支持的IP協(xié)議也包括IPv6。同樣地,Router2的IS-IS路由實(shí)體(B所屬的路由實(shí)體)支持的協(xié)議既包括IPv4,也包括IPv6。即Router 1ip,ipv6Router 2ip,ipv6當(dāng)接口B收到A發(fā)出的Hello報(bào)文后,根據(jù)我們提出的方法,B判斷(a)遠(yuǎn)端接口A支持本接口B所屬路由實(shí)體支持的所有IP協(xié)議嗎?我們知道在Router2上運(yùn)行的IS-IS路由實(shí)體支持IPv4和IPv6,所以B要判斷A是否支持IPv4和IPv6。因?yàn)锳配置了is-is v4,A發(fā)出的Hello報(bào)文帶有支持IPv4的標(biāo)記0xCC,并且?guī)в蠥的接口IPv4地址,所以B認(rèn)為A支持IPv4。因?yàn)锳配置了is-is v6,A發(fā)出的Hello報(bào)文帶有支持IPv6的標(biāo)記0x8E,并且?guī)в蠥的接口IPv6 linklocal地址,所以B認(rèn)為A也支持IPv6。而B(niǎo)所屬的路由實(shí)體支持IPv4和IPv6。這樣,B認(rèn)為A支持自己所屬路由實(shí)體支持的所有IP協(xié)議。
(b)遠(yuǎn)端接口A只支持B所屬路由實(shí)體支持的IP協(xié)議嗎?通過(guò)上述對(duì)(a)的處理,B認(rèn)為A支持IPv4和IPv6,A沒(méi)有支持除了IPv4和IPv6之外的IP協(xié)議。所以B認(rèn)為遠(yuǎn)端接口A只支持B所屬路由實(shí)體支持的IP協(xié)議。
這樣,B接受A,把自己的狀態(tài)從down變?yōu)閕nit。運(yùn)用同樣的判斷條件,A也接受B,A的狀態(tài)從down變?yōu)閕nit。之后,使用傳統(tǒng)的處理過(guò)程(見(jiàn)RFC1142,RFC1195和RFC3373),A和B最后建立鄰接關(guān)系,狀態(tài)都會(huì)變成up。
例子2如圖4路由器Router1和Router2運(yùn)行IS-IS,接口A,C和B都配置了IPv4地址而且A,B屬于同一網(wǎng)段。此外,A和B都啟動(dòng)了IPv6。
對(duì)圖4的組網(wǎng),我們這樣配置接口Ais-is v6
接口Bis-is v4,is-is v6接口Cis-is v4因?yàn)榻涌贑啟動(dòng)了is-is v4,路由器Router1的IS-IS路由實(shí)體(A和C所屬的路由實(shí)體)支持的IP協(xié)議包括IPv4。因?yàn)榻涌贏啟動(dòng)了is-is v6,Router1的IS-IS路由實(shí)體支持的IP協(xié)議也包括IPv6。
接口B啟動(dòng)了is-is v4和is-is v6,所以Router2的IS-IS路由實(shí)體(B所屬的路由實(shí)體)支持的協(xié)議既包括IPv4,也包括IPv6。即Router 1ip,ipv6Router 2ip,ipv6當(dāng)接口B收到A發(fā)出的Hello報(bào)文后,根據(jù)我們提出的方法,B判斷(a)遠(yuǎn)端接口A支持本接口B所屬路由實(shí)體支持的所有IP協(xié)議嗎?我們知道在Router2上運(yùn)行的IS-IS路由實(shí)體支持IPv4和IPv6,所以B要判斷A是否支持IPv4和IPv6。因?yàn)锳配置了IS-ISv6,A的Hello報(bào)文帶有支持IPv6的標(biāo)記0x8E,并且?guī)в蠥的接口IPv6 linklocal地址,所以B認(rèn)為A支持IPv6。B發(fā)現(xiàn)A的Hello報(bào)文帶有支持IPv4的標(biāo)記0xCC(接口C配置IS-ISv4導(dǎo)致Hello報(bào)文帶有0xCC),但是不帶有接口IPv4地址(因?yàn)锳沒(méi)有啟動(dòng)IS-ISv4),即A發(fā)出的Hello報(bào)文沒(méi)有接口IPv4地址,所以B不認(rèn)為A支持IPv4。這樣,B不認(rèn)為A支持自己所屬路由實(shí)體支持的所有IP協(xié)議。
(b)遠(yuǎn)端接口A只支持B所屬路由實(shí)體支持的IP協(xié)議嗎?通過(guò)上述對(duì)(a)的處理,B認(rèn)為A支持IPv4,A沒(méi)有支持除了IPv4和IPv6之外的IP協(xié)議。所以B認(rèn)為遠(yuǎn)端接口A只支持B所屬路由實(shí)體支持的IP協(xié)議。
條件(b)成立,但是由于條件(a)不成立,B沒(méi)有接受A,沒(méi)有把自己的狀態(tài)從down變成init。
當(dāng)接口A收到B發(fā)出的Hello報(bào)文后,根據(jù)我們提出的方法,A判斷(a)遠(yuǎn)端接口B支持本接口A所屬路由實(shí)體支持的所有IP協(xié)議嗎?我們知道在Router1上運(yùn)行的IS-IS路由實(shí)體支持IPv4和IPv6,所以A要判斷B是否支持IPv4和IPv6。B配置了IS-ISv6,B發(fā)出的Hello報(bào)文帶有支持IPv6的標(biāo)記0x8E,并且?guī)в蠦的接口IPv6 linklocal地址,所以A認(rèn)為B支持IPv6。B配置了IS-ISv4,B發(fā)出的Hello報(bào)文帶有支持IPv4的標(biāo)記0xCC,并且?guī)в薪涌诘腎Pv4地址,所以A認(rèn)為B支持IPv4。這樣,A認(rèn)為B支持自己所屬路由實(shí)體支持的所有IP協(xié)議。
(b)遠(yuǎn)端接口B只支持A所屬路由實(shí)體支持的IP協(xié)議嗎?通過(guò)上述對(duì)(a)的處理,A認(rèn)為B支持IPv6和IPv4,B沒(méi)有支持除了IPv4和IPv6之外的IP協(xié)議。所以A認(rèn)為遠(yuǎn)端接口B只支持A所屬路由實(shí)體支持的IP協(xié)議。
這樣,A接受B,把自己的狀態(tài)從down變成init。
但是由于B不接受A,兩個(gè)接口的狀態(tài)最終沒(méi)有up,沒(méi)有建立鄰接關(guān)系。
例子3如圖5路由器Router1和Router2運(yùn)行IS-IS,接口A和B都配置了IPv4地址而且A,B屬于同一網(wǎng)段。此外,A和B都啟動(dòng)了IPv6。
對(duì)圖5的組網(wǎng),我們這樣配置接口Ais-is v6接口Bis-is v4,is-is v6因?yàn)榻涌贏啟動(dòng)了is-is v6,Router1的IS-IS路由實(shí)體(A所屬的路由實(shí)體)支持的IP協(xié)議包括IPv6,而且只有IPv6。
接口B啟動(dòng)了is-is v4和is-is v6,所以Router2的IS-IS路由實(shí)體(B所屬的路由實(shí)體)支持的協(xié)議既包括IPv4,也包括IPv6。即Router 1ipv6Router 2ip,ipv6當(dāng)接口B收到A發(fā)出的Hello報(bào)文后,根據(jù)我們提出的方法,B判斷(a)遠(yuǎn)端接口A支持本接口B所屬路由實(shí)體支持的所有IP協(xié)議嗎?我們知道在Router2上運(yùn)行的IS-IS路由實(shí)體支持IPv4和IPv6,所以B要判斷A是否支持IPv4和IPv6。因?yàn)锳配置了IS-ISv6,A的Hello報(bào)文帶有支持IPv6的標(biāo)記0x8E,并且?guī)в蠥的接口IPv6 linklocal地址,所以B認(rèn)為A支持IPv6。B發(fā)現(xiàn)A的Hello報(bào)文沒(méi)有支持IPv4的標(biāo)記0xCC(Router1沒(méi)有任何一個(gè)接口配置IS-IS v4,導(dǎo)致Hello報(bào)文不帶有0xCC),也不帶有接口IPv4地址(因?yàn)锳沒(méi)有啟動(dòng)IS-ISv4),所以B不認(rèn)為A支持IPv4。這樣,B不認(rèn)為A支持自己所屬路由實(shí)體支持的所有IP協(xié)議。
(b)遠(yuǎn)端接口A只支持B所屬路由實(shí)體支持的IP協(xié)議嗎?通過(guò)上述對(duì)(a)的處理,B認(rèn)為A支持IPv6,A沒(méi)有支持除了IPv4和IPv6之外的IP協(xié)議。所以B認(rèn)為遠(yuǎn)端接口A只支持B所屬路由實(shí)體支持的IP協(xié)議。
由于條件(a)不成立,B沒(méi)有接受A,沒(méi)有把自己的狀態(tài)從down變成init。
當(dāng)接口A收到B發(fā)出的Hello報(bào)文后,根據(jù)我們提出的方法,A判斷(a)遠(yuǎn)端接口B支持本接口A所屬路由實(shí)體支持的所有IP協(xié)議嗎?我們知道在Router1上運(yùn)行的IS-IS路由實(shí)體支持IPv6,所以A要判斷B是否支持IPv6。因?yàn)锽配置了IS-ISv6,B發(fā)出的Hello報(bào)文帶有支持IPv6的標(biāo)記0x8E,并且?guī)в蠦的接口IPv6 linklocal地址,所以A認(rèn)為B支持IPv6。因?yàn)锽配置了IS-ISv4,B發(fā)出的Hello報(bào)文帶有支持IPv4的標(biāo)記0xCC,并且?guī)в薪涌诘腎Pv4地址,所以A認(rèn)為B支持IPv4。因?yàn)锳只是支持IPv6,這樣,A認(rèn)為B支持自己所屬路由實(shí)體支持的所有IP協(xié)議。
(b)遠(yuǎn)端接口B只支持A所屬路由實(shí)體支持的IP協(xié)議嗎?通過(guò)上述對(duì)(a)的處理,A認(rèn)為B除了支持IPv6之外還支持IPv4。所以A認(rèn)為遠(yuǎn)端接口B不是只支持A所屬路由實(shí)體支持的IP協(xié)議。
由于條件(b)不成立,A不接受B,不把自己的狀態(tài)從down變成init。
兩個(gè)接口的狀態(tài)都沒(méi)有從down變成init,更沒(méi)有up,最終沒(méi)有建立鄰接關(guān)系。
在例子3中,如果接口A只是配置了is-is v4,但是只要運(yùn)行在路由器Router1上的IS-IS協(xié)議支持IS-ISv6單拓?fù)?,并且使用本發(fā)明提出的方法,那么處理的過(guò)程和例子3相似。也就是,即使沒(méi)有任何接口啟動(dòng)IS-ISv6,構(gòu)建了支持IS-ISv6單拓?fù)涞腎S-IS使用本發(fā)明提出的方法對(duì)收到的Hello報(bào)文進(jìn)行判斷,依然能夠合適地建立或者不建立鄰接關(guān)系,而不會(huì)導(dǎo)致Router1或Router2的IS-IS計(jì)算路由異常,例如,不會(huì)出現(xiàn)路由黑洞。
權(quán)利要求
1.一種建立中間系統(tǒng)到中間系統(tǒng)路由協(xié)議單拓?fù)溧徑雨P(guān)系的方法,包括以下步驟步驟一、路由器根據(jù)自己的IS-IS配置,構(gòu)建Hello報(bào)文,并且在配置了支持IS-IS的接口發(fā)送/接收Hello報(bào)文;步驟二、路由器的接口原來(lái)的狀態(tài)是down的,收到遠(yuǎn)端接口發(fā)來(lái)的Hello報(bào)文后,根據(jù)自身的配置,判斷是否接受遠(yuǎn)端接口作為自己的鄰居;如果可以,那么本接口的狀態(tài)從down轉(zhuǎn)變?yōu)閕nit;之后發(fā)出的Hello報(bào)文表明本接口接受遠(yuǎn)端作為自己鄰居;如果不能接受遠(yuǎn)端接口,收到Hello報(bào)文將被丟棄,接口狀態(tài)不變;步驟三、如果遠(yuǎn)端接口也接受本接口,遠(yuǎn)端接口狀態(tài)從down轉(zhuǎn)變?yōu)閕nit,它發(fā)出的Hello報(bào)文也表明遠(yuǎn)端接口接受本接口作為鄰居;本接口收到這樣的Hello報(bào)文后,狀態(tài)從init變?yōu)閡p;同樣地,遠(yuǎn)端接口的狀態(tài)也從init會(huì)變成up;鄰接關(guān)系建立;其特征在于,本接口在遠(yuǎn)端接口支持并且只支持本接口所屬路由實(shí)體支持的IP協(xié)議的情況下接受遠(yuǎn)端接口作為自己的鄰居;遠(yuǎn)端接口在本接口支持并且只支持遠(yuǎn)端接口所屬路由實(shí)體支持的IP協(xié)議的情況下接受本接口作為自己的鄰居;其中,IP協(xié)議包括IPv4和IPv6。
2.權(quán)利要求1所述的建立中間系統(tǒng)到中間系統(tǒng)路由協(xié)議單拓?fù)溧徑雨P(guān)系的方法,其特征在于,遠(yuǎn)端接口支持并且只支持本接口所屬路由實(shí)體支持的IP協(xié)議,是指(a)遠(yuǎn)端接口支持本接口所屬路由實(shí)體支持的所有IP協(xié)議;(b)遠(yuǎn)端接口只支持本接口所屬路由實(shí)體支持的IP協(xié)議。
3.權(quán)利要求1所述的建立中間系統(tǒng)到中間系統(tǒng)路由協(xié)議單拓?fù)溧徑雨P(guān)系的方法,其特征在于,遠(yuǎn)端接口支持并且只支持本接口所屬路由實(shí)體支持的IP協(xié)議,是指(a)遠(yuǎn)端接口只支持本接口所屬路由實(shí)體支持的IP協(xié)議;(b)遠(yuǎn)端接口支持本接口所屬路由實(shí)體支持的所有IP協(xié)議。
4.權(quán)利要求1所述的建立中間系統(tǒng)到中間系統(tǒng)路由協(xié)議單拓?fù)溧徑雨P(guān)系的方法,其特征在于,本接口支持并且只支持遠(yuǎn)端接口所屬路由實(shí)體支持的IP協(xié)議,是指(a)本接口支持遠(yuǎn)端接口所屬路由實(shí)體支持的所有IP協(xié)議;(b)本接口只支持遠(yuǎn)端接口所屬路由實(shí)體支持的IP協(xié)議。
5.權(quán)利要求1所述的建立中間系統(tǒng)到中間系統(tǒng)路由協(xié)議單拓?fù)溧徑雨P(guān)系的方法,其特征在于,本接口支持并且只支持遠(yuǎn)端接口所屬路由實(shí)體支持的IP協(xié)議,是指(a)本接口只支持遠(yuǎn)端所屬路由實(shí)體支持的IP協(xié)議;(b)本接支持遠(yuǎn)端接口所屬路由實(shí)體支持的所有IP協(xié)議。
全文摘要
一種建立中間系統(tǒng)到中間系統(tǒng)路由協(xié)議單拓?fù)溧徑雨P(guān)系的方法,在現(xiàn)有技術(shù)的路由器根據(jù)自己的IS-IS配置通過(guò)構(gòu)建Hello報(bào)文,并且在配置了支持IS-IS的接口發(fā)送/接收Hello報(bào)文來(lái)建立鄰接關(guān)系的基礎(chǔ)上,提出在本接口在遠(yuǎn)端接口支持并且只支持本接口所屬路由實(shí)體支持的IP協(xié)議的情況下接受遠(yuǎn)端接口作為自己的鄰居的方案。采用本發(fā)明,IS-ISv6單拓?fù)浣⒌泥徑雨P(guān)系保證了IPv4和IPv6路由通告穩(wěn)定可靠,不會(huì)出現(xiàn)路由黑洞。
文檔編號(hào)H04L29/06GK101043425SQ20061006003
公開(kāi)日2007年9月26日 申請(qǐng)日期2006年3月22日 優(yōu)先權(quán)日2006年3月22日
發(fā)明者陳自英 申請(qǐng)人:中興通訊股份有限公司