■ 遼寧 高大偉
編者按: OSPF協(xié)議作為一種成熟的內(nèi)部網(wǎng)關(guān)協(xié)議,被大量廠商實(shí)現(xiàn),與BGP一起成為網(wǎng)絡(luò)協(xié)議規(guī)劃的首選。筆者單位在網(wǎng)絡(luò)規(guī)劃建設(shè)時(shí),網(wǎng)絡(luò)路由協(xié)議采用了OSPF。然而在使用中出現(xiàn)網(wǎng)速現(xiàn)象,這是什么原因呢?
OSPF(Open Shortest Path First,開 放 式最短路徑優(yōu)先)是一個(gè)內(nèi)部網(wǎng)關(guān)協(xié)議,應(yīng)用于自治系統(tǒng)內(nèi)路由的分發(fā)。MPLS(MultiProtocol Label Switching)最初是為提高路由器轉(zhuǎn)發(fā)速度而提出的一個(gè)協(xié)議,它融合了IP路由技術(shù)靈活和ATM交換技術(shù)簡(jiǎn)潔性,MPLS虛擬專用網(wǎng)是網(wǎng)絡(luò)應(yīng)用商為用戶提供的一種專用通道。
單位在建設(shè)應(yīng)急通信時(shí),充分考慮保密性和覆蓋范圍的需求,租用了運(yùn)營(yíng)商的MPLS虛擬專用鏈路,互聯(lián)關(guān)系如圖1所示。甲站的業(yè)務(wù)單路連接在丙站的PE1設(shè)備上,乙站的業(yè)務(wù)通過傳輸雙鏈路連接在丙站的PE1和PE2設(shè)備上,PE設(shè)備上運(yùn)行BGP協(xié)議并配置MPLS虛擬專用網(wǎng)實(shí)例,PE設(shè)備和CE設(shè)備運(yùn)行OSPF協(xié)議。
圖2 DN位示意圖
某天,乙站用戶反映虛擬專用網(wǎng)業(yè)務(wù)緩慢,同時(shí),甲站用戶也反映虛擬專用網(wǎng)業(yè)務(wù)出現(xiàn)緩慢問題。
虛擬專用網(wǎng)業(yè)務(wù)緩慢,必然是路由出現(xiàn)問題,應(yīng)該檢查丙站與甲站、乙站的路由是否正確。在確認(rèn)甲站、乙站的路由時(shí),發(fā)現(xiàn)虛擬專用網(wǎng)路由并沒有按照規(guī)劃過BGP路由,而是通過乙站的OSPF路由,由于乙站的傳輸鏈路帶寬有限,兩個(gè)站的業(yè)務(wù)量超過了鏈路帶寬兩個(gè)造成大量數(shù)據(jù)包擁塞在鏈路上,導(dǎo)致兩個(gè)站的虛擬專用網(wǎng)業(yè)務(wù)出現(xiàn)緩慢。
兩個(gè)虛擬專用網(wǎng)業(yè)務(wù)數(shù)據(jù),為什么不按照規(guī)劃走BGP路由,而是通過乙站的OSPF路由進(jìn)行轉(zhuǎn)發(fā)呢?筆者試著從OSPF協(xié)議的防環(huán)原理中尋找其中的原因。OSPF協(xié)議的防環(huán)機(jī)制原理是在OSPF多實(shí)例進(jìn)程使用一個(gè)bit位稱為DN位,其在hello包和每個(gè)鏈路狀態(tài)通告(LSA)中的位置如圖2所示。
當(dāng)PE生成Type3、Type5與Type7 LSA發(fā)布給CE時(shí),將DN標(biāo)志位置為1,其他類型LSA的DN標(biāo)志位置為0,PE路由器的OSPF進(jìn)程在進(jìn)行SPF計(jì)算時(shí),忽略DN標(biāo)志位 置 1的 Type3、Type5與Type7 LSA。因此,當(dāng)甲站的路由通過OSPF發(fā)給丙站時(shí),PE1將通過OSPF學(xué)到的甲站路由,由Type3的LSA發(fā)給乙 站 時(shí),DN標(biāo)志位置1,當(dāng)乙站將這些路由通過OSPF發(fā)給PE2時(shí),PE2只會(huì)將這些路由存放在OSPF的數(shù)據(jù)庫(kù)中,而不會(huì)放入路由表之中,因此不會(huì)將這些路由重新發(fā)布到BGP中,從而實(shí)現(xiàn)路由防環(huán)。
然而實(shí)際情況是,PE2收到了乙站發(fā)過來(lái)的甲站的路由,由于OSPF的管理距離比BGP管理距離小,導(dǎo)致甲站的數(shù)據(jù)直接優(yōu)先選擇乙站發(fā)過來(lái)的OSPF路由進(jìn)行分發(fā)。既然Type3的LSA DN標(biāo)志位置1,為什么還將這些路由放進(jìn)路由表呢?檢查CE、PE的配置,發(fā)現(xiàn)每個(gè)虛擬專用網(wǎng)的OSPF配置中,都有“capability vrf-lite”這一命令,此命令的作用是關(guān)閉DN位監(jiān)聽,也就是說,不管DN位是否置1,都將學(xué)習(xí)到的路由放進(jìn)路由表。
發(fā)現(xiàn)故障原因后,將PE2上各個(gè)虛擬專用網(wǎng)配置中undo capability vrf-lite,并在乙站的CE上各個(gè)虛擬專用網(wǎng)OSPF配置中,配置capability vrf-lite,重啟OSPF進(jìn)程,故障排除。