高海燕
(晉中職業(yè)技術(shù)學(xué)院,山西 晉中 030600)
OSPF基于區(qū)域設(shè)計(jì)的理念,使得網(wǎng)絡(luò)可以以層次化結(jié)構(gòu)部署,極大減少了路由器的資源消耗及路由協(xié)議報(bào)文的通信量。OSPF協(xié)議基于最短路徑優(yōu)先(SPF)算法,具有快速的收斂性,適用于中大型規(guī)模網(wǎng)絡(luò)的部署。非標(biāo)準(zhǔn)化區(qū)域互連現(xiàn)象的出現(xiàn)多因鏈路故障造成了分段區(qū)域,或多個(gè)OSPF路由域合并導(dǎo)致,因此虛鏈路技術(shù)并非是工程師規(guī)劃設(shè)計(jì)網(wǎng)絡(luò)時(shí)的常規(guī)技術(shù)方案,只是當(dāng)復(fù)雜的網(wǎng)絡(luò)環(huán)境中出現(xiàn)非標(biāo)準(zhǔn)化區(qū)域時(shí)的一種過渡方案[1]。
在OSPF多區(qū)域的層次設(shè)計(jì)中,每一個(gè)區(qū)域內(nèi)的路由器之間交換詳細(xì)的拓?fù)湫畔?構(gòu)建該區(qū)域的鏈路狀態(tài)數(shù)據(jù)庫(LSDB)?;贚SDB,通過最短路徑優(yōu)先算法計(jì)算出到達(dá)區(qū)域內(nèi)各個(gè)子網(wǎng)的最佳路由。若區(qū)域內(nèi)因鏈路故障等因素導(dǎo)致了網(wǎng)絡(luò)拓?fù)浒l(fā)生變化,則會立即觸發(fā)LSA泛洪,在本區(qū)域內(nèi)同步LSDB,并重新計(jì)算最佳路由。若協(xié)議運(yùn)行穩(wěn)定,未發(fā)生拓?fù)渥兓?則每隔30分鐘周期性地進(jìn)行LSA的泛洪,同步LSDB。
圖1 OSPF標(biāo)準(zhǔn)化區(qū)域設(shè)計(jì)Fig.1 OSPF standardized area design
在OSPF區(qū)域之間交換的是簡明的路由信息,而不再是復(fù)雜的拓?fù)湫畔?并且SPF算法只在區(qū)域內(nèi)進(jìn)行,區(qū)域內(nèi)的拓?fù)渥兓挥绊懕緟^(qū)域內(nèi)路由器的路由計(jì)算,其它區(qū)域路由器只需更新具體的路由條目即可。這就使得OSPF路由域中路由器不用耗費(fèi)大量的開銷去頻繁計(jì)算路由,與此同時(shí)又減少了協(xié)議報(bào)文流量,因而OSPF的大規(guī)模部署成為可能[2]。目前,OSPF路由協(xié)議已成為運(yùn)營商、大中型企業(yè)網(wǎng)絡(luò)首選的路由協(xié)議。OSPF標(biāo)準(zhǔn)化的區(qū)域?qū)哟卧O(shè)計(jì)如圖1所示。
在一個(gè)OSPF路由域中,只能定義一個(gè)骨干區(qū)域,其余區(qū)域都為非骨干區(qū)域,骨干區(qū)域通過ABR與所有非骨干區(qū)域互連。骨干區(qū)域作為中轉(zhuǎn)站,負(fù)責(zé)交換各個(gè)區(qū)域的路由信息,從而使得每個(gè)區(qū)域內(nèi)的路由器都能獲得整網(wǎng)的路由。為了更直觀地描述OSPF的區(qū)域劃分,基于圖1的區(qū)域2進(jìn)行邏輯改造如圖2所示。對路由器R來講,其他區(qū)域的子網(wǎng)相當(dāng)于直接掛接在ABR2上,R通過ABR2可以學(xué)習(xí)到這些子網(wǎng)的路由,但并不需要清楚它們的拓?fù)湫畔?這樣就減少了不必要的LSA泛洪流量,縮小了R的LSDB規(guī)模,節(jié)省了路由計(jì)算的開銷。因此,基于區(qū)域的層次化設(shè)計(jì),使得OSPF可以大規(guī)模部署。
圖2 OSPF區(qū)域邏輯結(jié)構(gòu)圖Fig.2 OSPF area logical structure diagram
在特定情況下,會出現(xiàn)非標(biāo)準(zhǔn)化的區(qū)域互連,主要存在以下幾種情形:
1)非骨干區(qū)域未直接與骨干區(qū)域互連,而是連接到了其它的非骨干區(qū)域。如圖3中,在OSPF路由域中,新增一個(gè)區(qū)域12,而區(qū)域12因客觀條件不能直接連接到骨干區(qū)域,但是可以很方便地與非骨干區(qū)域11互連。
圖3 非骨干區(qū)域未直接與骨干區(qū)域互連Fig.3 The non-backbone area is not directly interconnected with the backbone area
2)路由域中存在多個(gè)骨干區(qū)域。如圖4中,公司A和B都是基于OSPF協(xié)議部署的網(wǎng)絡(luò),兩家公司因業(yè)務(wù)需要進(jìn)行了重組合并。在進(jìn)行網(wǎng)絡(luò)合并的時(shí)候,因地理位置限制,骨干區(qū)域不方便直接相連,于是選擇了位置更近的分支機(jī)構(gòu)進(jìn)行互連。因?yàn)樵诟髯栽鹊穆酚捎蛑卸加泄歉蓞^(qū)域0,這樣就導(dǎo)致了合并后的路由域中存在了兩個(gè)骨干區(qū)域。
圖4 路由域中存在多個(gè)骨干區(qū)域Fig.4 Multiple backbone areas exist in the routing domain
3)因鏈路故障導(dǎo)致的骨干區(qū)域不連續(xù),形成了多個(gè)骨干區(qū)域同時(shí)存在的現(xiàn)象。如圖5中,因骨干區(qū)域中鏈路設(shè)計(jì)的冗余性不夠,骨干路由器之間的鏈路一旦發(fā)生故障,就會導(dǎo)致骨干區(qū)域的分段。
以上三種非標(biāo)準(zhǔn)化互連現(xiàn)象,基本上是由于網(wǎng)絡(luò)后期的改造合并及鏈路故障造成的,可以概括為兩種邏輯結(jié)構(gòu),一種是非骨干區(qū)域沒有直接和骨干區(qū)域互連,如情形一;另一種是一個(gè)OSPF路由域中存在了多個(gè)骨干區(qū)域,如情形二和三。針對這兩種結(jié)構(gòu)關(guān)系,目前只能通過Virtual-Link技術(shù)來進(jìn)行解決。
圖5 骨干區(qū)域不連續(xù)Fig.5 The backbone area discontinuous
虛鏈路技術(shù)的思想是通過穿越非骨干區(qū)域,實(shí)現(xiàn)骨干區(qū)域間的互連,或是非骨干區(qū)域到骨干區(qū)域的互連。建立虛鏈路的端設(shè)備至少一端位于骨干區(qū)域,配置成功后相當(dāng)于建立了一條點(diǎn)到點(diǎn)的邏輯鏈路,該鏈路遵循OSPF協(xié)議的相關(guān)工作機(jī)制。
1)虛鏈路的端設(shè)備必須是ABR;
2)虛鏈路所穿越的區(qū)域(中轉(zhuǎn)區(qū)域)必須是標(biāo)準(zhǔn)的非骨干區(qū)域,且該區(qū)域具有完整的路由信息;
3)虛鏈路不能穿越末節(jié)區(qū)域。因?yàn)槟┕?jié)區(qū)域是OSPF區(qū)域設(shè)計(jì)中簡化路由條目的一種優(yōu)化方案,該區(qū)域內(nèi)的路由器可能不具有完整的路由明細(xì)。
虛鏈路就是在兩臺ABR上建立的點(diǎn)到點(diǎn)的邏輯鏈路,并且該邏輯鏈路屬于骨干區(qū)域。ABR路由器之間通過虛鏈路建立鄰接關(guān)系,每條虛鏈路實(shí)際上包含有多臺節(jié)點(diǎn)路由器,這些路由器就像轉(zhuǎn)發(fā)普通IP分組一樣傳遞OSPF報(bào)文信息,從而使虛鏈路兩側(cè)區(qū)域能夠互相獲取路由。因?yàn)樘撴溌肥墙⒃谖锢礞溌飞系?所以其運(yùn)行過程中會占用相應(yīng)節(jié)點(diǎn)路由器的資源,如果中轉(zhuǎn)區(qū)域到達(dá)虛鏈路兩端的路由失效時(shí),虛鏈路也會隨之失效[3]。
虛鏈路在OSPF工作機(jī)制上與物理鏈路稍有不同,一是虛鏈路是以單播的方式傳送協(xié)議報(bào)文,其目的地址是兩側(cè)ABR路由器的地址。而OSPF普通物理鏈路上是以組播224.0.0.5或224.0.0.6的方式傳送協(xié)議報(bào)文;二是虛鏈路端設(shè)備開啟了LSA的DNA(Do Not Age)位,不會像普通OSPF鏈路一樣每隔30 min周期性地泛洪LAS,這有助于降低虛鏈路的開銷。
虛鏈路配置在ABR路由器上,每臺ABR路由器都需在OSPF協(xié)議視圖下指明所要穿越的區(qū)域號和對端的router-id。其基本命令格式如下:
ospf[process-id| router-idvalue]
areaarea-id
vlink-peerrouter-id
1)process-id是OSPF進(jìn)程號,value是本端路由器的router-id值;
2)area-id是虛鏈路要穿越的區(qū)域號,即中轉(zhuǎn)區(qū)域;
3)vlink-peer命令后的router-id是虛鏈路對端路由器的router-id值,router-id通常設(shè)置為環(huán)回接口(loopback)IP地址。
虛鏈路也支持OSPF鏈路身份驗(yàn)證,包括明文、MD5兩種認(rèn)證方式。因虛鏈路不具備底層接口,配置身份驗(yàn)證時(shí)可以在vlink-peer router-id命令后指定相應(yīng)的認(rèn)證參數(shù)。
針對前文描述的三種情形對應(yīng)的兩種邏輯結(jié)構(gòu),使用H3C路由器分別進(jìn)行實(shí)驗(yàn)測試分析。
如圖6所示,非骨干區(qū)域12通過穿越標(biāo)準(zhǔn)區(qū)域11,在ABR1和ABR2之間建立虛鏈路,實(shí)現(xiàn)區(qū)域12到骨干區(qū)域的連接。
圖6 通過虛鏈路將非骨干區(qū)域連接到骨干區(qū)域Fig.6 Connect non-backbone areas to backbone areas through virtual links
此例中規(guī)劃ABR1和ABR2的router-id分別為11.0.0.1和11.0.0.2。
1)在OSPF多區(qū)域配置的基礎(chǔ)上, ABR1和ABR2分別附加下列配置即可建立虛鏈路。
ABR1虛鏈路配置序列:
ospf 11 router-id 11.0.0.1
圖7 虛鏈路信息(1)Fig.7 Virtual link experiment verification(1)
//設(shè)置ABR1的router-id,為環(huán)回接口loopback 11的IP地址;
area 11
//設(shè)置area 11為中轉(zhuǎn)區(qū)域;
vlink-peer 11.0.0.2
//指定對端ABR2的router-id;
ABR2虛鏈路配置序列:
ospf 11 router-id 11.0.0.2
area 11
vlink-peer 11.0.0.1
2)實(shí)驗(yàn)驗(yàn)證:
如圖7所示, ABR1和ABR2穿越區(qū)域11建立了虛鏈路,實(shí)現(xiàn)了區(qū)域12與骨干區(qū)域的連接。圖8為R3、R4虛鏈路建立前后的路由變化。
圖8 R3、R4路由變化情況(1)Fig.8 R3, R4 routing changes(1)
如圖9所示,在ABR1和ABR2之間建立穿越區(qū)域1的虛鏈路,實(shí)現(xiàn)兩個(gè)骨干區(qū)域的互連。此例規(guī)劃ABR1和ABR2的router-id分別為10.0.0.1和10.0.0.2。
1)ABR1和ABR2的虛鏈路配置分別如下:
ABR1虛鏈路配置:
ospf 1 router-id 10.0.0.1
area 1
vlink-peer 10.0.0.2
ABR2虛鏈路配置:
ospf 1 router-id 10.0.0.2
area 1
vlink-peer 10.0.0.1
2)實(shí)驗(yàn)驗(yàn)證:
如圖10所示, ABR1和ABR2穿越區(qū)域1建立了虛鏈路,實(shí)現(xiàn)了骨干區(qū)域的合并。圖11為骨干區(qū)域合并前后R3和R4路由的變化。
圖11 R3、R4路由變化情況(2)Fig.11 R3, R4 routing changes(2)
OSPF非標(biāo)準(zhǔn)化區(qū)域互連并不是網(wǎng)絡(luò)設(shè)計(jì)的初衷,它只是在特定的環(huán)境下出現(xiàn)的情形。虛鏈路的應(yīng)用無疑會增加中轉(zhuǎn)區(qū)域相關(guān)路由器的額外開銷,同時(shí)加大了網(wǎng)絡(luò)的復(fù)雜度和故障排查的難度。因此,我們最好避免使用虛鏈路技術(shù),只是將其作為應(yīng)對無法避免的網(wǎng)絡(luò)拓?fù)鋯栴}的一種過渡性解決方案。