![](https://cimg.fx361.com/images/2025/0108/jNyjqX4jXW6aFe3nZ7Go3v.webp)
![](https://cimg.fx361.com/images/2025/0108/nkEp9t39MNjM9F5MLx4gbe.webp)
![](https://cimg.fx361.com/images/2025/0108/jwAtbnZVYqsgu62EspiQDR.webp)
![](https://cimg.fx361.com/images/2025/0108/MieK8BmMV634uws5YtCpAd.webp)
![](https://cimg.fx361.com/images/2025/0108/hUnzu9PuwXyFbN8aDhtKXd.webp)
![](https://cimg.fx361.com/images/2025/0108/jkRTbUVbwwq5krgMdSWAyC.webp)
摘要:以地市級(jí)城域網(wǎng)為模型,就目前城域網(wǎng)應(yīng)用廣泛的內(nèi)部網(wǎng)關(guān)路由選擇協(xié)議OSPF、外部網(wǎng)關(guān)路由選擇協(xié)議BGP配合部署進(jìn)行了解讀,分析路由選擇協(xié)議的RFC文檔后提出此部署方式存在的弊端,并提供了一個(gè)新的OSPF+BGP部署的解決方案,通過(guò)對(duì)比,分析了這種解決方案的優(yōu)勢(shì)。
關(guān)鍵詞:城域網(wǎng);OSPF;BGP;RFC
中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)17-4105-05
目前城域網(wǎng)所廣泛使用的內(nèi)部網(wǎng)關(guān)路由選擇協(xié)議為OSPF(Open Shortest Path First開(kāi)放式最短路徑優(yōu)先),用來(lái)承載城域網(wǎng)內(nèi)部的路由;使用外部網(wǎng)關(guān)路由選擇協(xié)議為BGP(Border Gateway Protocol邊界網(wǎng)關(guān)協(xié)議),用在與省網(wǎng)交互路由。正確部署OSPF與BGP至城域網(wǎng)后,可保證城域網(wǎng)的正常運(yùn)行。下面將分別介紹兩種OSPF+BGP的部署方式。
1全網(wǎng)運(yùn)行OSPF、出口運(yùn)行BGP路由選擇協(xié)議的部署方式 1.1路由發(fā)布方式及流量流程
建立城域網(wǎng)模型如圖1所示,下圖為典型城域網(wǎng)模型。省網(wǎng)A、省網(wǎng)B隸屬省網(wǎng),接入各地級(jí)城域網(wǎng)核心。
CR1、CR2為市城域網(wǎng)核心設(shè)備,為市級(jí)城域網(wǎng)出口。BR1、BR2、BR3、BR4為市城域網(wǎng)匯聚設(shè)備,匯聚業(yè)務(wù)控制層設(shè)備。SR1、Bras1、SR2、Bras2為市城域網(wǎng)業(yè)務(wù)控制設(shè)備。各設(shè)備之間鏈路以下簡(jiǎn)寫為L(zhǎng)(設(shè)備1設(shè)備2),如表示CR1至BR1的鏈路,則寫為L(zhǎng)(CR1BR1);表示流量通道也簡(jiǎn)寫為L(zhǎng)(設(shè)備1設(shè)備2設(shè)備3),如表示SR1-BR1-CR1的路徑,則寫為L(zhǎng)(SR1BR1CR1)。
省網(wǎng)A、省網(wǎng)B,運(yùn)行BGP協(xié)議,二者之間通過(guò)靜態(tài)路由在環(huán)回地址上建立IBGP鄰居關(guān)系,并通過(guò)靜態(tài)路由在環(huán)回地址上分別與城域網(wǎng)核心CR1、CR2建立EBGP鄰居關(guān)系。城域網(wǎng)核心CR1、CR2運(yùn)行BGP、OSPF協(xié)議,CR1與CR2建立IBGP鄰居關(guān)系、OSPF鄰居關(guān)系,CR1分別與城域網(wǎng)匯聚BR1、BR2建立OSPF鄰居關(guān)系,CR2分別與城域網(wǎng)匯聚BR3、BR4建立OSPF鄰居關(guān)系。BR1、BR2、BR3、BR4運(yùn)行OSPF協(xié)議,相互之間兩兩建立OSPF鄰居關(guān)系。業(yè)務(wù)控制SR1、Bras1、SR2、Bras2運(yùn)行OSPF協(xié)議分別與上聯(lián)城域網(wǎng)匯聚BR建立OSPF鄰居關(guān)系。
圖1典型城域網(wǎng)構(gòu)成拓?fù)?br/> 路由宣告時(shí),省網(wǎng)A、省網(wǎng)B分別通過(guò)EBGP向CR1、CR2宣告省網(wǎng)內(nèi)部路由及默認(rèn)路由。CR1、CR2通過(guò)EBGP向省網(wǎng)A、省網(wǎng)B宣告所在城域網(wǎng)內(nèi)路由。CR1、CR2分別通過(guò)OSPF向BR1、BR2、BR3、BR4強(qiáng)制下發(fā)默認(rèn)路由。BR1、BR2、BR3、BR4分別通過(guò)OSPF向CR1、CR2宣告各自路由。BR1、BR2、BR3、BR4分別通過(guò)OSPF向所接SR、Bras下發(fā)城域網(wǎng)OSPF路由及默認(rèn)路由。SR、Bras分別通過(guò)OSPF向BR宣告所帶網(wǎng)段。
此時(shí),城域網(wǎng)已經(jīng)可以正常工作。以用戶由SR1接入為例,說(shuō)明流量出流向。流量出城域網(wǎng)方向,SR1的路由表內(nèi)會(huì)有兩條默認(rèn)路由通往BR1、BR4,此時(shí)流量流入BR1、BR4。通過(guò)OSPF的負(fù)載分擔(dān)算法,L(SR1BR1)和L(SR1BR4)流量各占50%。BR1、BR4檢查路由表,其默認(rèn)路由是由CR1、CR2強(qiáng)制下發(fā),流量會(huì)分別傳遞給CR1、CR2。CR1、CR2的默認(rèn)路由是由省網(wǎng)A、省網(wǎng)B通過(guò)EB? GP下發(fā),流量最終會(huì)通過(guò)鏈路L(CR1省網(wǎng)A)、L(CR2省網(wǎng)B)至省網(wǎng),并各自分擔(dān)50%流量。由于目的地址不確定性導(dǎo)致回程流量的不確定性,可能從省網(wǎng)A回程、或從省網(wǎng)B回程,或?yàn)樨?fù)載分擔(dān)省網(wǎng)A、省網(wǎng)B兩個(gè)方向均有流量?,F(xiàn)分開(kāi)考慮,如從省網(wǎng)A回程,省網(wǎng)A將會(huì)將流量發(fā)送至CR1,CR1通過(guò)OSPF學(xué)習(xí)到路由將流量發(fā)送至BR1,同理BR1發(fā)送流量至SR1;從省網(wǎng)B回程,省網(wǎng)B將流量送至CR2,CR2將流量發(fā)送至BR4,BR4發(fā)送流量至SR1。
以上說(shuō)明了全網(wǎng)運(yùn)行OSPF、出口運(yùn)行BGP路由選擇協(xié)議的部署情況,及正常情況下流量的出入城域網(wǎng)是如何進(jìn)行的。正常情況下,此部署方式無(wú)任何問(wèn)題,即可滿足城域網(wǎng)流量需要,又保證了鏈路冗余備份。但深入分析后,會(huì)發(fā)現(xiàn)此種部署方式有一定弊端。
1.2 OSPF的30分鐘刷新LSA的特性過(guò)多消耗網(wǎng)絡(luò)資源
根據(jù)“OSPF Version 2”,RFC2328[1]的規(guī)定,為確保數(shù)據(jù)庫(kù)的準(zhǔn)確性,OSPF每隔30分鐘對(duì)路由器始發(fā)的每條LSA記錄擴(kuò)散(刷新)一次,并將它的序號(hào)增加1,老化時(shí)間設(shè)置為0。這種間隔被稱為L(zhǎng)SA的刷新時(shí)間(LSA Refresh Time)。其他的OSPF路由器一旦收到這個(gè)新的拷貝,就會(huì)用這個(gè)新的拷貝替換該條LSA通告原來(lái)的拷貝,并使這個(gè)新的拷貝的老化時(shí)間開(kāi)始增加。根據(jù)這個(gè)原則,無(wú)論網(wǎng)絡(luò)拓?fù)涫欠窀淖?,LSA的生存期30分鐘必須被重新擴(kuò)散一次,此特性在保證域內(nèi)OSPF數(shù)據(jù)庫(kù)一致的情況下也消耗了過(guò)多的網(wǎng)絡(luò)資源[2]。
1.3單上行鏈路、出口互聯(lián)鏈路故障時(shí)產(chǎn)生流量黑洞
1.3.1當(dāng)CR1、CR2配置為OSPF強(qiáng)制下發(fā)默認(rèn)路由情況
當(dāng)L(省網(wǎng)ACR1)和L(CR1CR2)同時(shí)出現(xiàn)故障時(shí),以用戶在SR1上接入訪問(wèn)省外目的的出流量為例。此時(shí),由于配置CR1為強(qiáng)制下發(fā)默認(rèn)路由,CR1上行中斷后仍舊下發(fā)默認(rèn)路由給BR1,CR2也下發(fā)默認(rèn)路由給BR4。BR1、BR4將轉(zhuǎn)發(fā)默認(rèn)路由給SR1,SR1根據(jù)默認(rèn)路由引導(dǎo)流量送入BR1、BR4。流量給BR4后可以正常通過(guò)CR2轉(zhuǎn)發(fā)至省網(wǎng)B。但是流量由SR1送給BR1后將出現(xiàn)問(wèn)題。BR1會(huì)根據(jù)收到的CR1強(qiáng)制下發(fā)的默認(rèn)路由,將流量送給CR1,正常情況下流量應(yīng)由CR1上送給省網(wǎng)A,但由于鏈路中斷CR1上沒(méi)有省網(wǎng)A下發(fā)給其的BGP的默認(rèn)路由。此時(shí),CR1會(huì)檢查路由表,CR1發(fā)現(xiàn):由于CR1與CR2建立著IBGP鄰居關(guān)系,而IBGP鄰居關(guān)系可通過(guò)OSPF協(xié)議保持建立狀態(tài),所以CR2收到的EBGP默認(rèn)路由會(huì)以IBGP默認(rèn)路由的方式轉(zhuǎn)發(fā)給CR1。CR1通過(guò)此條IBGP的默認(rèn)路由,將流量轉(zhuǎn)發(fā)給CR2。但由于CR1、CR2之間鏈路也為故障狀態(tài),流量不能送達(dá)。則CR1將根據(jù)IGP也就是OSPF的算法,將流量送給BR1。流量到達(dá)BR1后還會(huì)以默認(rèn)路由將流量送回給CR1,此時(shí)產(chǎn)生了流量的黑洞,當(dāng)流量的TTL=1時(shí),流量將被丟棄。SR1始發(fā)的出流量將只有50%正常,另50%將被丟棄。此過(guò)程如圖2所示。
圖2流量黑洞產(chǎn)生原理圖
以上故障情況在OSPF默認(rèn)路由配置為非強(qiáng)制下發(fā)模式下仍舊出現(xiàn),下面繼續(xù)討論上述故障發(fā)生在CR1、CR2配置為OSPF默認(rèn)路由非強(qiáng)制下發(fā)模式。
1.3.2當(dāng)CR1、CR2配置為OSPF非強(qiáng)制下發(fā)默認(rèn)路由情況
故障發(fā)生后,CR1上行中斷,將收不到省網(wǎng)A發(fā)送的EBGP默認(rèn)路由,此時(shí)按照配置預(yù)期,CR1應(yīng)該不再下發(fā)OSPF的默認(rèn)路由,即可避免流量黑洞的產(chǎn)生。但是CR1雖然收不到EBGP鄰居發(fā)送的默認(rèn)路由,而與CR2的IBGP鄰居關(guān)系仍舊存在,CR1上仍舊收到由CR2轉(zhuǎn)發(fā)過(guò)來(lái)的IBGP默認(rèn)路由。CR1是否可以根據(jù)IBGP的默認(rèn)路由來(lái)下發(fā)OSPF的默認(rèn)路由成為關(guān)鍵,然而RFC2328上并未規(guī)定OSPF下發(fā)默認(rèn)路由的觸發(fā)條件??煞謨煞N情況考慮:
當(dāng)只有EBGP默認(rèn)路由為OSPF默認(rèn)路由下發(fā)的條件而IBGP默認(rèn)路由不能作為OSPF默認(rèn)路由下發(fā)的條件時(shí),CR1不會(huì)下發(fā)OSPF默認(rèn)路由,此時(shí)SR1上只收到一條默認(rèn)路由,由CR2產(chǎn)生并由BR4轉(zhuǎn)發(fā)至SR1,此時(shí)SR1流量將通過(guò)L(SR1BR4CR2省網(wǎng)B),沒(méi)有流量黑洞的產(chǎn)生。此過(guò)程如圖3所示。
圖3 EBGP默認(rèn)路由為OSPF默認(rèn)路由下發(fā)條件
y95nqeWRuGc3jjR0KF6V4w== 當(dāng)EBGP默認(rèn)路由、IBGP默認(rèn)路由都可作為OSPF默認(rèn)路由下發(fā)條件時(shí),CR1仍然會(huì)下發(fā)默認(rèn)路由,流量黑洞產(chǎn)生方式與強(qiáng)制下發(fā)情況一樣。
圖4 EBGP默認(rèn)路由、IBGP默認(rèn)路由都可作為OSPF默認(rèn)路由下發(fā)條件
由于RFC沒(méi)有硬性規(guī)定,此特性則和路由器生產(chǎn)廠家對(duì)于RFC2328的理解有必然關(guān)系。經(jīng)過(guò)對(duì)全球最大路由器生產(chǎn)廠家Cisco公司此方面內(nèi)容的查看,發(fā)現(xiàn)Cisco公司研發(fā)的Cisco網(wǎng)絡(luò)互聯(lián)操作系統(tǒng)( Internetwork Operating Sys