MPLS拓撲設計與VRF、RD、RT詳解
拓撲需求:
在MPLS網路中,實現CE1的loopback0 ping通CE3的lookback0,不能ping通CE4
CE2的lookback0 ping通CE4的lookback0,不能ping通CE3
拓撲難點:
一、CE1和CE2的lookback0的地址都是192.168.1.1,如何實現隔離
二、CE3傳送的資料包都過MPLS網路到達PE1,PE1如何實現將資料包轉發給CE1,而不轉發給CE2
CE4傳送的資料包都過MPLS網路到達PE2,PE1如何實現將資料包轉發給CE2,而不轉發給CE1
三、在MPLS網路,CE1或CE2傳送的資料包到達PE1後,PE2如何實現將資料包轉發給PE2
解決方法:
如何解決難點一:CE1和CE2的lookback0的地址都是192.168.1.1,使用VRF實現隔離
1.VRF——VPN路由轉發例項(VPN Routing & Forwarding Instance)
作用:對LAN進行隔離,解決使用者安全
命令解釋:以PE1為例 ip vrf A //建立一個VRF 名為A ip vrf B //建立一個VRF 名為B int f0/0 //進入介面f0/0呼叫VRF A ip vrf forwarding A //在f0/0介面呼叫VRF A int f1/0 //進入介面f1/0呼叫VRF B ip vrf forwarding A //在f1/0介面呼叫VRF B
思路解析:不同VRF之間相互隔離不通訊,將PE1的f0/0介面劃分進vrf A,PE1的f1/0介面劃分進vrf B,這樣CE1和CE2就被劃分進不同的VRF中,他們之間無法通訊,便實現了LAN之間的隔離
如何解決難點二:CE3傳送的資料包都過MPLS網路到達PE1,PE1如何實現將資料包轉發給CE1,而不轉發給CE2
CE4傳送的資料包都過MPLS網路到達PE2,PE1如何實現將資料包轉發給CE2,而不轉發給CE1,使用RD解決衝突
2.RD——路由區分器(route distinguishers )
作用:給客戶端ipv4地址
附加RD後的地址即是VPNv4地址
附:能夠支援IPv4地址外的地址族的BGP協議被稱為multiprotocol BGP (MPBGP)
命令解釋:以PE1為例
ip vrf A
rd 1:1 //為VRF A部署RD為1:1
ip vrf B
rd 2:2 //為VRF B部署RD為2:2
int f0/0 //進入介面f0/0呼叫VRF A
ip vrf forwarding A //在f0/0介面呼叫VRF A
int f1/0 //進入介面f1/0呼叫VRF B
ip vrf forwarding A //在f1/0介面呼叫VRF B
思路解析:在VRF A的程序下,部署一個RD如1:1,當CE1的loopback0傳送資料包達到PE1,192.168.1.1地址便會附加上RD為1:1這個團體屬性,然後作為VPNv4地址,PE1與之間PE2轉發的資料包地址便是1:1 192.168.1.1;
在VRF B的程序下,部署一個RD如2:2,當CE2的loopback0傳送資料包達到PE1,192.168.1.1地址便會附加上RD為2:2這個團體屬性,然後作為VPNv4地址,PE1與之間PE2轉發的資料包地址便是2:2 192.168.1.1;
若PE1收到資料包,想轉發給1:1 192.168.1.1,資料包便從f0/0口發出,
若PE1收到資料包,想轉發給2:2 192.168.1.1,資料包便從f1/0口發出
如何解決難點三:在MPLS網路,CE1或CE2傳送的資料包到達PE1後,PE如1何實現將資料包轉發給PE2,使用RT實現對接
3.RT——路由標記(route-target)
作用:實現路由的匯入和匯出,讓傳送路由的PE知道發給哪些VPN客戶,讓接收路由的PE知道要把路由匯入哪些VRF
RT是一個擴充套件的BGP的團體屬性,VPNV4路由在傳遞時是要帶上這個屬性
RT值有兩個,一個是export 匯出RT,一個是import 匯入RT
傳送端PE的export必須和接收端PE的import對應,只有對應上,接收端PE才會把vpnv4路由加入VRF路由表
命令解釋:
在PE1部署:
ip vrf A
rd 1:1 //為VRF A部署RD為1:1
route-target 10:1 //為VRF A部署RT的export和import都為10:1
ip vrf B
rd 2:2 //為VRF B部署RD為2:2
route-target 10:2 //為VRF B部署RT的export和import都為10:2
int f0/0 //進入介面f0/0呼叫VRF A
ip vrf forwarding A //在f0/0介面呼叫VRF A
int f1/0 //進入介面f1/0呼叫VRF B
ip vrf forwarding A //在f1/0介面呼叫VRF B
在PE2部署:
ip vrf C
rd 3:3 //為VRF C部署RD為3:3
route-target 10:1 //為VRF C部署RT的export和import都為10:1
ip vrf D
rd 4:4 //為VRF D部署RD為4:4
route-target 10:2 //為VRF D部署RT的export和import都為10:2
int f1/0 //進入介面f1/0呼叫VRF C
ip vrf forwarding C //在f1/0介面呼叫VRF C
int f2/0 //進入介面f2/0呼叫VRF D
ip vrf forwarding D //在f2/0介面呼叫VRF D
思路解析:在PE1的VRF A部署了RT的export和import都為10:1,PE2的VRF B部署了RT的export和import也都為為10:1,PE1和PE2便成為了MPBGP鄰居,PE1傳送的MPLS資料包,PE2就能夠準確接收,PE2回覆的MPLS資料包,PE1也能準確接收,同理VRF B也是如此。
結合VRF、RD、RT技術,便實現了拓撲需求:
在MPLS網路中,CE1的loopback0 ping通CE3的lookback0,不能ping通CE4
CE2的lookback0 ping通CE4的lookback0,不能ping通CE3