一、網(wǎng)絡(luò)概述
某地市政務(wù)網(wǎng)采用MPLS/VPN技術(shù)為各個(gè)行政部門構(gòu)建VPN,與省一級VPN實(shí)現(xiàn)互通。原有網(wǎng)絡(luò)采用CISCO7206作為PE,與省政務(wù)網(wǎng)的PE(CISCO GSR12000)建立MP-BGP。 為了提升網(wǎng)絡(luò)性能同時(shí)實(shí)現(xiàn)省、地市、縣三級MPLS VPN網(wǎng)絡(luò),采用BH6808作為地市級PE設(shè)備,建立與省PE的MP-BGP鄰居關(guān)系,同時(shí)BH6808作為路由反射器,建立與該地市所轄的各個(gè)縣的PE的MP-BGP鄰居關(guān)系。
注:以上拓?fù)鋬H僅是現(xiàn)實(shí)網(wǎng)絡(luò)環(huán)境的一個(gè)抽象。
二、問題描述
某地區(qū)的政務(wù)網(wǎng)MPLS/VPN網(wǎng)絡(luò)經(jīng)過改造之后, SITE B的用戶反映無法訪問SITE A內(nèi)的WWW服務(wù)器的主頁。
三、問題分析及處理過程
1、經(jīng)過驗(yàn)證,上述現(xiàn)象確實(shí)存在。
2、在SITE B的PC上PING SITE A內(nèi)的WWW 服務(wù)器,不通,PING SITEA的VPN1的VRF接口地址,可以通。
3、將SITEB的CE設(shè)備重新連接到CISCO7206,在SITE B的PC上PING SITE A內(nèi)的WWW 服務(wù)器,不通,但是可以訪問WWW服務(wù)器的主頁??梢詳喽⊿ITE A內(nèi)部網(wǎng)絡(luò)中啟用了ICMP的過濾功能。問題不一定出在VPN內(nèi)部的路由上。
4、因?yàn)闊o法通過PING來定位問題,因此希望通過抓包來找到一些蛛絲馬跡。重新將SITEB的CE設(shè)備連接到BH6808上,在SITE B的PC上訪問SITE A內(nèi)的WWW 服務(wù)器的同時(shí)使用SNIFFER工具抓包。
5、從抓包結(jié)果來看,從SITE A的WWW 服務(wù)器返回了幾個(gè)報(bào)文,證明VPN內(nèi)部路由沒有問題。仔細(xì)觀察發(fā)現(xiàn)IP報(bào)文的分片字段一項(xiàng)被設(shè)置為不允許分片。由此可以推斷該WWW服務(wù)器網(wǎng)卡作了報(bào)文不分片的設(shè)置。正常的HTTP報(bào)文為1500BYTE,由于在MPLS/VPN傳遞,封裝兩層MPLS標(biāo)簽(在倒數(shù)第二跳彈出的情況下,外層標(biāo)簽被彈出,只封裝一層VPN標(biāo)簽)之后,報(bào)文長度超過了默認(rèn)的MTU,即1500BYTE。如果MPLS網(wǎng)絡(luò)中的設(shè)備不支持超長幀的傳遞,并且該報(bào)文不允許分片的情況下,那么該報(bào)文就會被丟棄,并向該報(bào)文的源發(fā)送一個(gè)ICMP報(bào)文,指明設(shè)備收到的報(bào)文超過MTU但是該報(bào)文卻被設(shè)置了不允許分片。
6、問題初步定位為MPLS VPN數(shù)據(jù)轉(zhuǎn)發(fā)路徑上MTU小于MPLS FRAME的長度所致。那么MTU的瓶頸位于MPLS域內(nèi)哪個(gè)設(shè)備上呢?由于BH6808的新的NP芯片支持超長MPLS FRAME轉(zhuǎn)發(fā)。因此排除了自身設(shè)備出問題的可能。由于CISCO GSR設(shè)備也支持超長MPLS FRAME轉(zhuǎn)發(fā),問題最終定位在CISCO7206上。通知代理商修改CISCO7206接口的MTU為1544,問題解決。
7、那么如何解釋原有網(wǎng)絡(luò)中SITE B可以訪問SITE A的WEB服務(wù)器,而改造后卻無法訪問呢?下面從HTTP訪問的流量模型來逐步分析:
A、在原有網(wǎng)絡(luò)中,從SITE B內(nèi)PC發(fā)送到SITE A內(nèi)WEB SERVER的HTTP請求報(bào)文或者TCP確認(rèn)報(bào)文,正常情況下都是很小的報(bào)文,即使封裝兩層MPLS標(biāo)簽也不會超過1500 BYTE,因此CISCO7206上與CISCO GSR相連的接口即使使用默認(rèn)MTU也沒有問題;
B、從SITE A的WEB SERVER發(fā)送到SITE B內(nèi)PC的HTTP報(bào)文通常是1500BYTE,加上兩層MPLS標(biāo)簽之后必然超過默認(rèn)的MTU值,即1500BYTE。CISCO GSR設(shè)備也支持超長MPLS FRAME轉(zhuǎn)發(fā)。因此問題GSR當(dāng)CISCO7206收到這個(gè)超長MPLS FRAME之后,由于它本身是PE,從VRF接口轉(zhuǎn)發(fā)出去的報(bào)文就是普通的IP報(bào)文,MPLS頭部信息已經(jīng)被剝離,因此不會超過1500BYTE。所以SITE B的PC可以正常SITE A的WEB SERVER。
C、改造之后的網(wǎng)絡(luò),BH6808作為PE,而CISCO7206作為P設(shè)備。從SITE A到SITE B的HTTP報(bào)文長度如果為1500 BYTE,那么該報(bào)文被轉(zhuǎn)發(fā)到CISCO7206時(shí),由于BH6808默認(rèn)啟動PHP(MPLS 標(biāo)簽倒數(shù)第二跳彈出)所以CISCO7206繼續(xù)轉(zhuǎn)發(fā)給BH6808的報(bào)文需要攜帶一層MPLS標(biāo)簽,即VPN標(biāo)簽,這樣1500BYTE長度的HTTP加上一層標(biāo)簽之后就超過了默認(rèn)的MTU值,所以就被丟棄了。SITE B的PC無法訪問SITE A的WEB SERVER的主頁的現(xiàn)象的原因就在于此。
某地市政務(wù)網(wǎng)采用MPLS/VPN技術(shù)為各個(gè)行政部門構(gòu)建VPN,與省一級VPN實(shí)現(xiàn)互通。原有網(wǎng)絡(luò)采用CISCO7206作為PE,與省政務(wù)網(wǎng)的PE(CISCO GSR12000)建立MP-BGP。 為了提升網(wǎng)絡(luò)性能同時(shí)實(shí)現(xiàn)省、地市、縣三級MPLS VPN網(wǎng)絡(luò),采用BH6808作為地市級PE設(shè)備,建立與省PE的MP-BGP鄰居關(guān)系,同時(shí)BH6808作為路由反射器,建立與該地市所轄的各個(gè)縣的PE的MP-BGP鄰居關(guān)系。
注:以上拓?fù)鋬H僅是現(xiàn)實(shí)網(wǎng)絡(luò)環(huán)境的一個(gè)抽象。
二、問題描述
某地區(qū)的政務(wù)網(wǎng)MPLS/VPN網(wǎng)絡(luò)經(jīng)過改造之后, SITE B的用戶反映無法訪問SITE A內(nèi)的WWW服務(wù)器的主頁。
三、問題分析及處理過程
1、經(jīng)過驗(yàn)證,上述現(xiàn)象確實(shí)存在。
2、在SITE B的PC上PING SITE A內(nèi)的WWW 服務(wù)器,不通,PING SITEA的VPN1的VRF接口地址,可以通。
3、將SITEB的CE設(shè)備重新連接到CISCO7206,在SITE B的PC上PING SITE A內(nèi)的WWW 服務(wù)器,不通,但是可以訪問WWW服務(wù)器的主頁??梢詳喽⊿ITE A內(nèi)部網(wǎng)絡(luò)中啟用了ICMP的過濾功能。問題不一定出在VPN內(nèi)部的路由上。
4、因?yàn)闊o法通過PING來定位問題,因此希望通過抓包來找到一些蛛絲馬跡。重新將SITEB的CE設(shè)備連接到BH6808上,在SITE B的PC上訪問SITE A內(nèi)的WWW 服務(wù)器的同時(shí)使用SNIFFER工具抓包。
5、從抓包結(jié)果來看,從SITE A的WWW 服務(wù)器返回了幾個(gè)報(bào)文,證明VPN內(nèi)部路由沒有問題。仔細(xì)觀察發(fā)現(xiàn)IP報(bào)文的分片字段一項(xiàng)被設(shè)置為不允許分片。由此可以推斷該WWW服務(wù)器網(wǎng)卡作了報(bào)文不分片的設(shè)置。正常的HTTP報(bào)文為1500BYTE,由于在MPLS/VPN傳遞,封裝兩層MPLS標(biāo)簽(在倒數(shù)第二跳彈出的情況下,外層標(biāo)簽被彈出,只封裝一層VPN標(biāo)簽)之后,報(bào)文長度超過了默認(rèn)的MTU,即1500BYTE。如果MPLS網(wǎng)絡(luò)中的設(shè)備不支持超長幀的傳遞,并且該報(bào)文不允許分片的情況下,那么該報(bào)文就會被丟棄,并向該報(bào)文的源發(fā)送一個(gè)ICMP報(bào)文,指明設(shè)備收到的報(bào)文超過MTU但是該報(bào)文卻被設(shè)置了不允許分片。
6、問題初步定位為MPLS VPN數(shù)據(jù)轉(zhuǎn)發(fā)路徑上MTU小于MPLS FRAME的長度所致。那么MTU的瓶頸位于MPLS域內(nèi)哪個(gè)設(shè)備上呢?由于BH6808的新的NP芯片支持超長MPLS FRAME轉(zhuǎn)發(fā)。因此排除了自身設(shè)備出問題的可能。由于CISCO GSR設(shè)備也支持超長MPLS FRAME轉(zhuǎn)發(fā),問題最終定位在CISCO7206上。通知代理商修改CISCO7206接口的MTU為1544,問題解決。
7、那么如何解釋原有網(wǎng)絡(luò)中SITE B可以訪問SITE A的WEB服務(wù)器,而改造后卻無法訪問呢?下面從HTTP訪問的流量模型來逐步分析:
A、在原有網(wǎng)絡(luò)中,從SITE B內(nèi)PC發(fā)送到SITE A內(nèi)WEB SERVER的HTTP請求報(bào)文或者TCP確認(rèn)報(bào)文,正常情況下都是很小的報(bào)文,即使封裝兩層MPLS標(biāo)簽也不會超過1500 BYTE,因此CISCO7206上與CISCO GSR相連的接口即使使用默認(rèn)MTU也沒有問題;
B、從SITE A的WEB SERVER發(fā)送到SITE B內(nèi)PC的HTTP報(bào)文通常是1500BYTE,加上兩層MPLS標(biāo)簽之后必然超過默認(rèn)的MTU值,即1500BYTE。CISCO GSR設(shè)備也支持超長MPLS FRAME轉(zhuǎn)發(fā)。因此問題GSR當(dāng)CISCO7206收到這個(gè)超長MPLS FRAME之后,由于它本身是PE,從VRF接口轉(zhuǎn)發(fā)出去的報(bào)文就是普通的IP報(bào)文,MPLS頭部信息已經(jīng)被剝離,因此不會超過1500BYTE。所以SITE B的PC可以正常SITE A的WEB SERVER。
C、改造之后的網(wǎng)絡(luò),BH6808作為PE,而CISCO7206作為P設(shè)備。從SITE A到SITE B的HTTP報(bào)文長度如果為1500 BYTE,那么該報(bào)文被轉(zhuǎn)發(fā)到CISCO7206時(shí),由于BH6808默認(rèn)啟動PHP(MPLS 標(biāo)簽倒數(shù)第二跳彈出)所以CISCO7206繼續(xù)轉(zhuǎn)發(fā)給BH6808的報(bào)文需要攜帶一層MPLS標(biāo)簽,即VPN標(biāo)簽,這樣1500BYTE長度的HTTP加上一層標(biāo)簽之后就超過了默認(rèn)的MTU值,所以就被丟棄了。SITE B的PC無法訪問SITE A的WEB SERVER的主頁的現(xiàn)象的原因就在于此。

