于志泉 張久文
(蘭州大學(xué) 信息科學(xué)與工程學(xué)院,甘肅 蘭州 730000)
在數(shù)據(jù)通信領(lǐng)域,OSPF(Open Shortest Path First-開(kāi)放最短路徑優(yōu)先)協(xié)議因其快速收斂、無(wú)自環(huán)等特性而廣泛使用,并存在適應(yīng)IPv6的OSPF version3協(xié)議,同時(shí)OSPF協(xié)議擴(kuò)展屬性NSSA(Not So Stubby Area)區(qū)域亦適配擴(kuò)展。
NSSA區(qū)域允許引入自治系統(tǒng)外部路由,由ASBR發(fā)布Type7 LSA(NSSA-LSA)通告給本區(qū)域。當(dāng)Type7 LSA到達(dá)NSSA的ABR時(shí),由ABR將Type7 LSA轉(zhuǎn)換成Type5 LSA(AS-external-LSA)傳播到其他區(qū)域。
圖1 OSPFv3劃分區(qū)域典型組網(wǎng)圖
如圖1所示,整個(gè)OSPFv3組網(wǎng)被分為區(qū)域0、區(qū)域1和區(qū)域2。區(qū)域0是骨干區(qū),區(qū)域1配置為NSSA區(qū),區(qū)域0和區(qū)域1的區(qū)域間路由信息會(huì)發(fā)布到區(qū)域2,區(qū)域1引入的RIP路由生成的7類(lèi)LSA在ABR1設(shè)備上進(jìn)行7轉(zhuǎn)5后生成5類(lèi)LSA發(fā)布到骨干區(qū),區(qū)域2通過(guò)骨干區(qū)學(xué)到NSSA區(qū)域引入的外部路由。
在實(shí)際網(wǎng)絡(luò)配置中會(huì)出現(xiàn)多個(gè)ABR鏈接NSSA區(qū)域及骨干區(qū)域的情況,這些ABR均具備7轉(zhuǎn)5能力,選取哪一個(gè)ABR來(lái)進(jìn)行轉(zhuǎn)換?選取簡(jiǎn)單的雙ABR情況進(jìn)行分析。網(wǎng)絡(luò)拓?fù)淙鐖D2所示:
圖2 雙ABR網(wǎng)絡(luò)拓?fù)?/p>
網(wǎng)絡(luò)配置:
在RT-A上引入靜態(tài)路由,查看RT-D上5類(lèi)LSA,其source-id是3.3.3.3,而修改RT-B的router-id為3.3.3.4時(shí),再次查看,其source-id是3.3.3.4,即優(yōu)選router-id較大的來(lái)做7轉(zhuǎn)5轉(zhuǎn)換器。
基于用戶(hù)自定義網(wǎng)絡(luò)的需求,主流設(shè)備商提供了nssa區(qū)域的參數(shù):
translate-always:指定ABR完成NSSA區(qū)域的7類(lèi)LSA轉(zhuǎn)換為5類(lèi)LSA。
translate-never:指定ABR不能將NSSA區(qū)域的7類(lèi)LSA轉(zhuǎn)換為5類(lèi)LSA。
圖3 hello報(bào)文中的options
如在RT-B(其router-id仍為2.2.2.2)area1下配置:nssa translatealways,查看RT-D上5類(lèi)LSA的source-id,由 3.3.3.3變?yōu)?2.2.2.2。通過(guò)截取報(bào)文發(fā)現(xiàn)由RT-B發(fā)出的hello報(bào)文中options置上NTbit位,如圖3所示。
由RT-B發(fā)出的hello報(bào)文在維持鄰居的過(guò)程中發(fā)送給RT-D,RT-D就會(huì)選擇RT-B作為轉(zhuǎn)換器。如果將RT-B與RT-D間鏈路斷掉,此時(shí)只有選擇RT-C作為轉(zhuǎn)換器,查看RT-D上的5類(lèi)LSA的source-id為 3.3.3.3。
在RT-C ospfv31 area1下配置:nssa translate-never,查看Router-D上的LSA,并不存在轉(zhuǎn)換得到的5類(lèi)LSA,截取報(bào)文查看RT-B發(fā)出的hello報(bào)文的bit位并未變化。判斷7轉(zhuǎn)5角色時(shí),如果配置translate-never參數(shù),則區(qū)域不進(jìn)行轉(zhuǎn)換處理。此時(shí)恢復(fù)RT-B與RTD間的鏈路,預(yù)料中應(yīng)該選擇RT-B為轉(zhuǎn)換器,但在現(xiàn)有實(shí)現(xiàn)中:RTD并不存在相應(yīng)前綴的5類(lèi)LSA。這樣就存在:如果在配置過(guò)程中,誤將多ABR情況下的router-id較大的ABR上NSSA區(qū)域配置translate-never參數(shù),且無(wú)ABR配置translate-always參數(shù),就會(huì)出現(xiàn)上述情況下均未被選為轉(zhuǎn)換器的問(wèn)題,進(jìn)而出現(xiàn)存在路由但無(wú)法學(xué)到的問(wèn)題。
觀察hello報(bào)文的options,其占有24個(gè)bit位,因此可以仿效always參數(shù)在options添加bit位,稱(chēng)之NEbit位,在配置translatenever參數(shù)后,將此標(biāo)記置1,然后通過(guò)鄰居間交互的hello報(bào)文發(fā)給鄰居,告之已置上never參數(shù)無(wú)法成為7轉(zhuǎn)5轉(zhuǎn)換器,在進(jìn)行轉(zhuǎn)換器選取時(shí),將此ABR排除在外。
寫(xiě)出偽代碼如下:
在配置處理中:
在收到攜帶NEbit的hello報(bào)文時(shí),其源ABR不參與7轉(zhuǎn)5轉(zhuǎn)換器的選取,從而解決上述問(wèn)題。我們按照上述偽代碼進(jìn)行編碼、版本編譯后,可以驗(yàn)證配置:
【RT-C-AREA-1】:Nssa translate-never
截取hello報(bào)文,其optinons的NEbit位已置上,且RT-D也能收到轉(zhuǎn)換后的5類(lèi)LSA,從而驗(yàn)證問(wèn)題已解決。
本文首先對(duì)IPv6下OSPF協(xié)議的NSSA區(qū)域進(jìn)行簡(jiǎn)述,然后提出現(xiàn)有協(xié)議實(shí)現(xiàn)中存在多個(gè)ABR情況且無(wú)ABR配置translate-always參數(shù)情況下,給router-id最大的ABR配置translate-never參數(shù)后,無(wú)法學(xué)到路由的問(wèn)題,最后給出一種解決思路和驗(yàn)證方案。
[1]J.Moy,R.Coltun.Request for Comments 5340:OSPF for IPv6[Z].July 2008.
[2]P.Murphy.Request for Comments 3101:The OSPF Not-So-Stubby Area(NSSA)Option[Z].January 2003.
[3]黃瑜岳,梁偉.基于IPv6的OSPFv3協(xié)議的研究和實(shí)現(xiàn)[J].常熟理工學(xué)院學(xué)報(bào),2006.