馬 琳,李小川,朱紅衛(wèi),呂舒清,張 璞
(國網(wǎng)山東省電力公司信息通信公司,山東 濟南 250001)
隨著物聯(lián)網(wǎng)、云計算、虛擬化等技術(shù)的不斷出現(xiàn)與革新,新業(yè)務(wù)發(fā)展對承載網(wǎng)提出新的要求,大型的數(shù)據(jù)通信網(wǎng)急需不斷地提升性能和擴展性能以滿足新型業(yè)務(wù)和長遠(yuǎn)發(fā)展的需求。對企業(yè)來講,數(shù)據(jù)通信網(wǎng)絡(luò)的業(yè)務(wù)保障和支撐能力對信息化建設(shè)的重要性不言而喻,有必要結(jié)合未來發(fā)展方向和實際需求推進(jìn)數(shù)據(jù)通信網(wǎng)優(yōu)化整合工作。在電力系統(tǒng)省級及以下電力數(shù)據(jù)通信網(wǎng)優(yōu)化整合工作中,地市數(shù)據(jù)網(wǎng)和骨干網(wǎng)配置不同的AS域[1],然而普通的MPLSVPN都是在一個自治系統(tǒng)內(nèi)運行的,沒有提供一個自治系統(tǒng)內(nèi)的VPN信息向其他自治系統(tǒng)擴散的功能,因此需要解決VPN跨域的問題。
VPN是在公用的通信網(wǎng)上提供私有數(shù)據(jù)網(wǎng)絡(luò)的技術(shù),MPLSVPN是指采用MPLS技術(shù)在寬帶網(wǎng)絡(luò)上構(gòu)建企業(yè)IP專網(wǎng),將公網(wǎng)與專網(wǎng)安全靈活高效地結(jié)合在一起。MPLSVPN能夠提高網(wǎng)絡(luò)使用率,把承載多種不同類型服務(wù)的網(wǎng)絡(luò)集成為一個單一的網(wǎng)絡(luò),并加快了數(shù)據(jù)包的轉(zhuǎn)發(fā)速度。隨著企業(yè)內(nèi)部站點數(shù)目的增多,異地相連變得越來越普遍,需要對現(xiàn)有協(xié)議進(jìn)行擴展以支持跨域VPN。
網(wǎng)絡(luò)中VPN路由數(shù)目非常大,BGP協(xié)議是唯一支持大量路由的路由協(xié)議并且有很強的策略能力,可以很好地實現(xiàn)路由決策與數(shù)據(jù)控制[2]?;贐GP擴展實現(xiàn)的MPLSVPN路由設(shè)備主要包括CE、PE和P[3]:
CE(Custom Edge),直接與服務(wù)提供商相連的用戶設(shè)備,運行標(biāo)準(zhǔn)路由協(xié)議。
PE(Provider Edge Router),是骨干網(wǎng)上的邊緣路由器,通過EBGP、RIP和靜態(tài)路由與CE相連交換路由信息,主要負(fù)責(zé)VPN業(yè)務(wù)的接入。
P(Provider Router),骨干網(wǎng)上的核心路由器,主要完成路由和快速轉(zhuǎn)發(fā)功能。
根據(jù)RFC2547定義,跨域MPLS VPN主要有3種方式:Option A,Option B,Option C。 使用 Option C時ASBR不需要處理VPN信息,最符合VPN的要求[4],因此本文中主要使用的是Option C,即Multihop-EBGP方式。使用此方式的VPN路由信息傳遞可直接在源端和PE之間通過Multihop-EBGP傳遞,并在兩個AS的ASBR之間構(gòu)建LSP公網(wǎng)路由,同時PE之間建立多跳連接直接傳遞VPN信息。在進(jìn)行報文轉(zhuǎn)發(fā)時,域內(nèi)使用二層標(biāo)簽轉(zhuǎn)發(fā),ASBR之間也采用兩層標(biāo)簽轉(zhuǎn)發(fā)[5]。
以圖1所示數(shù)據(jù)通信網(wǎng)為例,網(wǎng)絡(luò)采用分層的拓?fù)浣Y(jié)構(gòu)。主要分為A級數(shù)據(jù)通信接入網(wǎng)、數(shù)據(jù)通信網(wǎng)、B級數(shù)據(jù)通信接入網(wǎng)。
圖1 數(shù)據(jù)通信網(wǎng)拓?fù)涫疽?/p>
數(shù)據(jù)通信網(wǎng)在A側(cè)部署了2臺路由器PE1、PE2作為邊界ASBR,在B側(cè)部署了2臺路由器RR1、RR2作為邊界ASBR,A側(cè)邊界ASBR與B側(cè)ASBR通過千兆鏈路以口字型結(jié)構(gòu)互聯(lián)。
在數(shù)據(jù)通信網(wǎng)AS2中部署2臺二級RR設(shè)備,用來反射上級路由器和接入網(wǎng)路由,二級RR1與P-1互聯(lián),二級RR2與P-2互聯(lián),2臺RR間建立VPN鄰居關(guān)系,并具有相同的cluster-id。
第二匯聚點部署2臺P設(shè)備,第二匯聚點P-1與P-1以萬兆鏈路互聯(lián)。B側(cè)在AS2內(nèi)部署2臺PE作為邊界ASBR,在本自治域內(nèi)部署2臺RR作為ASBR,通過千兆鏈路以口字型結(jié)構(gòu)互聯(lián)。
Option C跨域完成后,出現(xiàn)AS3域B級數(shù)據(jù)通信接入網(wǎng)中RR(H廠家,設(shè)備型號SR8808)與AS2域數(shù)據(jù)通信網(wǎng)二級RR(S廠家,設(shè)備型號C7609)的MP-EBGP鄰居關(guān)系震蕩現(xiàn)象,即MP-EBGP鄰居關(guān)系建立后經(jīng)過3 min后鄰居關(guān)系會變?yōu)镮DLE狀態(tài),之后會再成功建立鄰居關(guān)系,過3 min后會再變?yōu)镮DLE狀態(tài),周而復(fù)始。在鄰居中斷后,由于需要釋放私網(wǎng)標(biāo)簽,因此在B級RR上的日志會刷屏,導(dǎo)致B級RR的CPU利用率升高[6]。
首先檢查B級RR與邊界ASBR的EBGP鄰居關(guān)系正常,路由學(xué)習(xí)正常,路由表沒有出現(xiàn)路由條目震蕩。
在B級RR上打開bgp的debug調(diào)試,找到輸出內(nèi)容中的:
*Jun5 01:01:59:1112000 SR8805-A RM/6/RMDEBUG:
BGP.:11.41.254.68 State is changed from ESTABLISHED to IDLE.
*Jun5 01:01:59:1112000 SR8805-A RM/6/RMDEBUG:
BGP.:11.41.254.68 Recv NOTIFICATION
Err/SubErr:4 /0 (Hold Timer Expired /ErrSub Code Unspecified)
Error data:NULL.
B級RR與二級RR的MP-EBGP鄰居關(guān)系由ESTABLISHED轉(zhuǎn)為IDLE是由于Hold Timer Expired/ErrSubCode Unspecified,TCP 連接中斷會導(dǎo)致Hold Timer時間超時,Hold Timer超時時間默認(rèn)為3 min,此時間和鄰居關(guān)系每3 min中斷吻合。因此初步推斷問題原因是鏈路或其他原因?qū)е耇CP連接超時,進(jìn)而影響鄰居關(guān)系。
傳輸鏈路已正常運行多年,而且跨域互聯(lián)鏈路更換光模塊和光纖后,問題依然存在,因此排除物理鏈路的問題。在測試ping包的過程中發(fā)現(xiàn),用B級RR的回環(huán)口去ping二級RR的回環(huán)口,最大ping包只能到1 468 Byte,大于1 468 Byte的ping包不通。但是B級RR與邊界ASBR直連口ping 5 000 Byte的大包可以通過,二級RR的回環(huán)口ping邊界ASBR的回環(huán)口的5 000 Byte的大包也可以通過,邊界ASBR到二級RR的5 000 Byte的大包也可以ping通過。而且二級RR與邊界ASBR用回環(huán)口建立MP-EBGP鄰居關(guān)系也很穩(wěn)定。通過分析,認(rèn)為數(shù)據(jù)包在穿越邊界ASBR時數(shù)據(jù)包大小被做了限制,但是在邊界ASBR上并沒有對數(shù)據(jù)包字節(jié)數(shù)進(jìn)行限制[7]。TCP數(shù)據(jù)包會填充至接口MTU的最大值,且大于1 468 Byte的數(shù)據(jù)包不能夠通過省邊界ASBR,因此修改地市RR的tcp封裝值,二級RR的tcp封裝置修改為1 200 Byte后,MP-EBGP鄰居關(guān)系震蕩問題得到解決。因而進(jìn)一步驗證是由于數(shù)據(jù)包大小受限而引起的MP-EBGP鄰居關(guān)系震蕩[8]。
H廠家SR8800設(shè)備的一代普通業(yè)務(wù)板(SPE1010/SPE1020)CPU的MTU不能超過1 560 Byte,所以該設(shè)備無法接受超過1 560 Byte的協(xié)議報文。S廠家的C7609設(shè)備向該設(shè)備發(fā)送了超過1 560 Byte的BGP update報文,設(shè)備無法接收,所以C7609設(shè)備不斷地發(fā)送這些update報文,使得keepalive報文無法及時發(fā)送,最終導(dǎo)致鄰居中斷。BGP鄰居中斷后,兩端設(shè)備重新建立鏈接,由于建立鏈接的協(xié)議報文沒有超過1 560 Byte,設(shè)備能夠正常接收,所以BGP鄰居可以建立。但是當(dāng)鄰居建立后,C7609設(shè)備向設(shè)備發(fā)送update報文時,前述問題又會出現(xiàn),最后導(dǎo)致兩端設(shè)備BGP鄰居反復(fù)up/down。
H廠家SR8800設(shè)備的一代增強業(yè)務(wù)板和二代業(yè)務(wù)板不涉及該問題(其CPU的MTU等于jumbo幀的最大值),一代普通業(yè)務(wù)板只能通過保證設(shè)備和對端設(shè)備MTU值設(shè)置不超過1 560 Byte??紤]到更換板卡不是短時間能實現(xiàn)的,因此采取調(diào)整MTU值的辦法,推薦的MTU值為1 522~1 560 Byte,由于本次數(shù)據(jù)通信網(wǎng)優(yōu)化整合改造涉及骨干網(wǎng)的MTU值統(tǒng)一為1 528 Byte,因此將跨域互聯(lián)鏈路的MTU值調(diào)整為1 528 Byte。并且將tcp值設(shè)為1 200 Byte的命令取消。按照解決方案操作后鄰居震蕩問題沒有再出現(xiàn),鄰居震蕩問題得到徹底解決。
路由策略主要實現(xiàn)了對路由的過濾、設(shè)置等控制功能,通過改變路由屬性來改變網(wǎng)絡(luò)流量所經(jīng)過的途徑,主要包括控制路由的發(fā)布、控制路由的接受、過濾和控制引入和設(shè)置特定的路由屬性。
圖2 數(shù)據(jù)通信網(wǎng)拓?fù)涫疽?/p>
在數(shù)據(jù)網(wǎng)優(yōu)化整改工作中,按相關(guān)需求需要配置合理的路由匯總及過濾策略。如圖2所示在C市RR上進(jìn)行路由匯總并在二級RR上進(jìn)行路由過濾策略時,出現(xiàn)了下級單位跨域的一級業(yè)務(wù)無法正常訪問,而C市業(yè)務(wù)可以正常訪問的現(xiàn)象。路由過濾后A級接入網(wǎng)PE-1信息業(yè)務(wù)路由表中只存在C市的匯總路由,由此可以斷定二級RR針對C市的路由過濾策略已經(jīng)生效。但是過濾策略一旦部署,C市下級單位就訪問不了上級的業(yè)務(wù),C市的業(yè)務(wù)訪問不受影響。在二級RR將明細(xì)路由也放行后,下級單位就能夠訪問上級單位。
由于路由過濾后,A級接入網(wǎng)到C市的業(yè)務(wù)正常,到下級單位的業(yè)務(wù)不正常,因此推斷出可能是H廠家設(shè)備的問題,通過查找H廠家官方文檔,發(fā)現(xiàn)在跨域組網(wǎng)中出現(xiàn)popgo的動作 (先pop標(biāo)簽再push標(biāo)簽),用20 Byte描述符存在一個問題,兩個動作只帶了一個動作下來,導(dǎo)致報文封裝錯誤。
MARVELL推薦的解決方案,修改TTI某一保留bit位,可以把TT終結(jié)標(biāo)志帶到下行,這樣下行就可以支持先pop再push操作了。而對于push入pop出的情況,目前微碼的解決方案是這樣的,通過報文描述符LLT標(biāo)志位來判斷,如果LLT標(biāo)志為是IPV4Route或者是IPV6Route,且報文類型是MPLS報文,則將標(biāo)簽全部彈掉,然后根據(jù)MPLSCMD進(jìn)行操作,從而達(dá)到支持先pop后push的操作。需要配置undo vpn l2vpn mix來解決上述問題,其作用為:該命令只有88 k設(shè)備有,16 k設(shè)備無該命令;目前88 k puma報文描述符為20 Byte,16 k puma報文描述符為24 Byte;報文都是在下行修改,上行對報文的操作都是通過報文描述符帶到下行;從24 Byte的報文描述符格式可以看到在第187 bit位有TT標(biāo)志,所以24 Byte的報文描述符可以同時帶兩個動作下來(MPLSCMD、TT),20 Byte 的報文描述符只可以攜帶MPLSCMD一個動作;配置undo vpn l2vpn mix后,對于上行有pop、push兩個動作的時候,20 Byte的報文描述符中MPLSCMD為push,不配置該命令則為pop。
對大型數(shù)據(jù)信通網(wǎng)中的多品牌網(wǎng)絡(luò)設(shè)備跨域?qū)又谐霈F(xiàn)的典型故障案例進(jìn)行了技術(shù)分析,并給出了推薦的解決方式。通過分析跨域典型故障案例,為同類網(wǎng)絡(luò)環(huán)境下的跨域?qū)犹峁﹨⒖肌?/p>
[1]徐志強,呂舟,徐坤.電力綜合數(shù)據(jù)網(wǎng)跨域VPN部署探討[J].中國新通信,2014,16(5):1-2.
[2]王柱.MP-EBGP網(wǎng)絡(luò)技術(shù)應(yīng)用研究[J].安徽電子信息職業(yè)技術(shù)學(xué)院學(xué)報,2007,6(2):96-97.
[3]王俊.基于MPLS的跨域VPN研究[D].南京:南京郵電大學(xué),2011.
[4]梁海英.基于MPLS跨域VPN若干問題研究[D].沈陽:東北大學(xué),2008.
[5]羅恒洋.基于MPLS的二、三層VPN研究[J].計算機技術(shù)與發(fā)展,2009,19(1):63-66.
[6]李丞.MPLS VPN技術(shù)在電力綜合數(shù)據(jù)網(wǎng)中的應(yīng)用[D].長春:吉林大學(xué),2014.
[7]馬睿,何海洋,李長水.國網(wǎng)數(shù)據(jù)通信網(wǎng)跨域VPN的設(shè)計與兼容性實現(xiàn)[J].電力信息與通信技術(shù),2016(12):80-84.
[8]孫杰.BGP路由策略沖突引發(fā)的路由振蕩研究[D].成都:電子科技大學(xué),2014.