■ 云南 盧立云
編者按:MPLS VPN由于搭建快捷、配置靈活、安全保密、擴(kuò)展性好等特點(diǎn),在營(yíng)運(yùn)商網(wǎng)絡(luò)被廣泛使用,近期筆者遇到在配置MPLS VPN時(shí),出現(xiàn)兩端的CE彼此ping不通對(duì)方的情況,后通過(guò)排查,找到了原因,并加以解決。
MPLS VPN由于搭建快捷、配置靈活、便于控制、安全保密、擴(kuò)展性好等特點(diǎn),在營(yíng)運(yùn)商網(wǎng)絡(luò)被廣泛采用,可為政府、企業(yè)在公共Internet網(wǎng)上構(gòu)建安全可靠、方便快捷的專(zhuān)用網(wǎng)絡(luò),并可大大節(jié)省廣域網(wǎng)的建設(shè)和運(yùn)行維護(hù)費(fèi)用。
MPLS VPN技術(shù)是廣域網(wǎng)建設(shè)的最佳解決方案,MPLS VPN是基于MPLS技術(shù)構(gòu)建的虛擬專(zhuān)用網(wǎng),能夠在提供原有VPN網(wǎng)絡(luò)所有功能的同時(shí),提供強(qiáng)有力的QoS能力,具有可靠性高、安全性高、擴(kuò)展能力強(qiáng)、控制策略靈活以及管理能力強(qiáng)大等特點(diǎn)。
MPLS是一種特殊的轉(zhuǎn)發(fā)機(jī)制,它為進(jìn)入網(wǎng)絡(luò)中的IP數(shù)據(jù)包分配標(biāo)記,并通過(guò)對(duì)標(biāo)記的交換來(lái)實(shí)現(xiàn)IP數(shù)據(jù)包的轉(zhuǎn)發(fā)。在網(wǎng)絡(luò)內(nèi)部MPLS在數(shù)據(jù)包所經(jīng)過(guò)的路徑通過(guò)交換標(biāo)記(而不是看IP包頭)來(lái)實(shí)現(xiàn)轉(zhuǎn)發(fā);當(dāng)數(shù)據(jù)包要退出MPLS網(wǎng)絡(luò)時(shí),數(shù)據(jù)包被解開(kāi)封裝,繼續(xù)按照IP包的路由方式到達(dá)目的地。
圖1 網(wǎng)絡(luò)拓?fù)鋱D
利用EVE虛擬平臺(tái)可以搭建一個(gè)MPLS VPN的實(shí)驗(yàn)環(huán)境,營(yíng)運(yùn)商網(wǎng)絡(luò)有PE1、P、PE2,采用OSPF協(xié)議實(shí)現(xiàn)IGP網(wǎng)絡(luò)的聯(lián)通可達(dá),PE1和PE2之間采用MP-BGP建立VPN連接,PE1-CE1之間,PE2-CE2之間可以采用靜態(tài)路由方式,也可以采用OSPF,EIGRP,BGP等方式,這里先采用靜態(tài)路由方式。網(wǎng)絡(luò)拓?fù)鋱D如圖1所示。配置步驟如下:
1.配置CE1、PE1、P、PE2、CE2的主機(jī)名,環(huán)回口loopback0地址和互聯(lián)接口地址;
2.營(yíng)運(yùn)商網(wǎng)絡(luò)一側(cè),配置OSPF協(xié)議,實(shí)現(xiàn)營(yíng)運(yùn)商網(wǎng)絡(luò)IGP可達(dá),如PE1:
router ospf 234
network 22.22.22.0 0.0.0.255 area 0
network 23.23.23.0 0.0.0.255 area 0
!
3.在PE上定義并配置VRF,如PE1:
ip vrf aaa
rd 100:11
route-target export 100:1
route-target import 100:1
!
4.在PE1-P-PE2之間的互聯(lián)接口配置啟用LDP和mpls功能,如,PE1:
interface Ethernet1/1
ip address 23.23.23.2 255.255.255.0
duplex half
mpls ip
!
5.在PE1-CE1的PE1側(cè)的接口啟動(dòng)ip vrf forwarding,如PE1:
interface Ethernet1/0
ip vrf forwarding aaa
ip address 12.12.12.2 255.255.255.0
duplex half
!
6.PE1-PE2建立MP-BGP VPNV4連接,如PE1:
router bgp 100
bgp router-id 22.22.22.22
bgp log-neighborchanges
no bgp default ipv4-unicast
neighbor 44.44.44.44 remote-as 100
neighbor 44.44.44.44 update-source Loopback0
圖2 CE1 ping不通CE2
!
address-family ipv4
exit-address-family
!
address-family vpnv4
neighbor 44.44.44.44 activate
neighbor 44.44.44.44 send-community extended
exit-address-family
!
7.PE1端配置vrf靜態(tài)路由指向CE1的loopback0口,如:PE1:
!
ip route vrf aaa 11.11.11.0 255.255.255.0 12.12.12.1
!
8.將VRF靜態(tài)路由再發(fā)布到BGP的VRF AAA中,如PE1:
Router bgp 100
。。。。
address-family ipv4 vrf aaa
redistribute static
exit-addressfamily
!
9.CE1端配置默認(rèn)路由,指向PE1,如CE1:
!
ip route 0.0.0.0 0.0.0.0 12.12.12.2
!
以上配置部署完成,并且PE2、CE2參照PE1、CE1配置,P上只要配置OSPF協(xié)議,并在與PE1、PE2的直連端口配置MPLS IP即可,配置完成后,在CE1端ping CE2的loopback0,結(jié)果不通,如圖2所示,同樣CE2也ping不通CE1。
發(fā)現(xiàn)CE1-CE2兩端ping不通后,起初還以為是兩端配置不對(duì)。通過(guò)仔細(xì)檢查PE1和PE2的配置,并沒(méi)有錯(cuò),再在PE1處輸入命令“sh ip route”和“sh ip route vrf aaa”,PE1已經(jīng)學(xué)習(xí)到關(guān)于CE2端loopback0網(wǎng)段的路由。同樣,PE2也學(xué)習(xí)到CE1端loopback0網(wǎng)段的路由,如圖3所示的路由信息。
在PE1端輸入命令“sh ip bgp vpnv4 all”,結(jié)果如圖4顯示,說(shuō)明PE2和PE1建立了Mpbgp vpnv4的鄰居關(guān)系,并且PE2與PE1相互傳遞了VPN路由。
CE1和CE2是客戶(hù)一側(cè),MPLS VPN對(duì)于用戶(hù)是透明的,客戶(hù)端不用配置任何有關(guān)MPLS VPN的命令,只需配置默認(rèn)路由即可。但是在CE1上ping對(duì)端CE2的loopback0口還是不通。
通過(guò)仔細(xì)排查,結(jié)果發(fā) 現(xiàn),CE1上ping對(duì)端CE2的loopback0口地址,IP數(shù)據(jù)包的源地址是用的CE1-PE1的直連口地址,即12,12.12.1/24,而該地址沒(méi)有通過(guò)VPN傳遞給PE2,即PE2的VRF AAA的路由表中沒(méi)有該地址段的表項(xiàng),數(shù)據(jù)包可以到達(dá)CE2,但是響應(yīng)數(shù)據(jù)包從CE2到達(dá)PE2后,由于沒(méi)有該網(wǎng)段的路由,結(jié)果被丟棄,從而導(dǎo)致無(wú)法ping通。
圖3 路由信息
圖4 在PE1端顯示PE2和PE1建立了鄰居關(guān)系
圖5 CE1 ping通CE2
知道了問(wèn)題的根源后,解決起來(lái)就得心應(yīng)手。
解決方法一:只要在CE1處將ping命令后面添加源地址即可,即:CE1#ping 55.55.55.55 source 11.11.11.11,這樣數(shù)據(jù)包的源地址是11.11.11.11/32,即CE1的loopback0的地址,數(shù)據(jù)包到達(dá)PE1后,包上標(biāo)簽,因?yàn)橛械?5.55.55.0的VPN路由,數(shù)據(jù)被轉(zhuǎn)發(fā)到PE2,再拆除標(biāo)簽,轉(zhuǎn)發(fā)給CE2,而CE2的響應(yīng)包上傳至PE2后,包上標(biāo)簽,系統(tǒng)在PE2的VRF AAA路由表中查找到去往11.11.11.0的路由,并將數(shù)據(jù)包轉(zhuǎn)發(fā)給PE1,在PE1處拆除標(biāo)簽,轉(zhuǎn)發(fā)給CE1,完成ping通過(guò)程。如圖5所示,CE1 ping通CE2。
解決方法二:可在PE1的BGP配置中“addressfamily ipv4 vrf aaa”部分配置“network 12.12.12.0 mask 255.255.255.0”命令通告直連網(wǎng)段,在PE2也做同樣配置,即可解決以上問(wèn)題。
通過(guò)故障排查,需要技術(shù)人員不僅對(duì)VPN的路由和轉(zhuǎn)發(fā)過(guò)程有清晰的了解,還要求能夠了解數(shù)據(jù)包的結(jié)構(gòu)和跟蹤數(shù)據(jù)包的轉(zhuǎn)發(fā)。這樣才能快速檢查和排除問(wèn)題。另外,在配置過(guò)程中,一個(gè)VPN對(duì)應(yīng)一個(gè)RD,這一點(diǎn)也是應(yīng)該要注意的。