20151018-MPLS *** L3 PE-CE靜態詳解

Technorati 標籤: MPLS,CCIE,RD,RT,Label

L3 MPLS *** 靜態CE路由配置:

--1, P與PE設備之間部署IGP, 保證loopback地址是否可達.

--2, P與PE設備之間部署LDP, IGP,LDP用於骨幹網的標籤分發,IGP保證PE之間的環回口可達,這樣LDP才能正常工作.

--3, PE設備之間建立MP-BGP鄰居關係

--4, PE設備配置相關VRF以及接口

--5,配置PE-CE間路由協議(靜態)

--6, 將CE路由引入PE的相關VRF BGP中.

最後,CE---CE之間的路由能互通, CE R1和R2之間的loopback可以互通.

clip_image002

建議:

在PE上面配置BGP的時候,一定要在全局打上:no bgp default ipv4-unicast

強烈推薦.PE到PE之間,只需要建立環回口BGP鄰居,因爲BGP全局默認是會對IPv4路由進行承載的,但是CE到CE之間的路由是不會被BGP承載的。所以爲了邏輯清晰,這裏推薦全局幹掉ipv4-unicast.在address-family ipv4-unicast中進行激活.

PE router bgp 1

no bgp default ipv4-unicast //建議幹掉默認的IPv4承載.

neighbor 7.7.7.7 remote-as 1 //全局的BGP鄰居,PE到PE之間全局鄰居.

neighbor 7.7.7.7 update-source loop0

!

address-family ***v4 //引入了地址族,就是MP-BGP,多協議BGP.

//地址族分很多類,IPv4, IPv6, ***V4.組播等等.以後根據協議的發展,還可以進行擴展.

neighbor 7.7.7.7 active //激活***V4鄰居,這樣的話下面的命令會自動生成.

neighbor 7.7.7.7 send-community extended //擴展團體屬性,會攜帶RD/RT傳遞到對端去,這樣在控制層面纔有辦法當路由前綴到了對端設備的時候從全局導入到VRF中去.該命令會在cisco設備中自動生成,不能刪除,否則RD/RT就不能傳遞過去了。還有BGP對端PE分配給我這個私網路由的***標籤.

exit-address-family

所以,bgp下面,除了全局bgp鄰居,還有bgp ***v4的鄰居.

用命令:show ip bgp ***v4 all summary 進行查看.

clip_image004

這裏***V4鄰居關係已經建立,可以攜帶RT/RD通告到對端.(私有團體屬性是不能傳遞的,所以需要制定命令開啓傳遞).

關於RT,在PE設備上面,兩點都要export和import能對應上,如下:

clip_image006

||||

|||| 只要配置了vrf以後,在BGP中會自動生成vrf的地址族.

\ / 需要做的事情僅僅是重分發而已.非常智能.

clip_image008

需要手動做CE端的路由協議的重分佈:

clip_image010

接下來, PE--CE之間的路由協議.這裏我們用的是靜態路由.

clip_image012

最後,PE5和PE7,用show ip bgp ***v4 all進行查看,都有了本端和對端CE的路由信息.

並且可以看到,攜帶的RD是1:1,RT的話要進入路由明細去看。

clip_image014

標籤,外層標籤是LDP分配的,已經沒有什麼可以看的了。這裏重點是看***標籤.

clip_image016

對於整個報文標籤的轉發如下圖:

clip_image018

最後,R5上面做Traceroute也能看到,到了R6剝離外層標籤。到了R7剝離***標籤.

一共有兩層標籤.

clip_image020

配置案例:

拓撲圖如下:

clip_image022

這裏當然首先用試驗闡述報文的封裝轉發過程,最後再附上相關配置.

1,原理部分

clip_image024

上面是兩端PE 的RD不同的時候,那麼相同的時候,就不會維護兩個RD爲一個相同的路由前綴:

clip_image026

下面看看標籤的分配,包括MPLS LDP標籤和MP-BGP分配的標籤:

在R5上面,關於2.2.2.2這個***v4的路由前綴,對端的RT export爲100:2. 關於MP-BGP分配的標籤, 對端MP-BGP爲該前綴分配的是704標籤,通告到本端.所以out 標籤爲704. 本地不爲這個前綴分標籤.

clip_image028

因爲PE-1-R5來說,是IP--->MPLS.所以CEF表中,會記錄更全的標籤信息:

clip_image030

這裏可以看到,對於2.2.2.2/32,外層標籤(LDP)分配給R5本端的是602.而MP-BGP分配給我的標籤是704.

602這個標籤,對於全局來說,實際上是對端的R7的環回口的標籤,因爲BGP+MPLS,最終,只會爲BGP路由前綴的下一跳進行標籤的分配。

所以在mpls forwarding-table中,不會體現2.2.2.2這個***V4的路由前綴,而是直接體現7.7.7.7的標籤.

clip_image032

Traceroute的結果。我們也可以看到這兩層標籤的工作情況:

CE1開始traceroute, 到了PE-1-R5的時候,是IP報文,到了第二跳R6的時候,出去的時候攜帶MPLS LDP標籤602,MP-BGP分配的***V4標籤704到達R6.第三跳,因爲R6是倒數第二跳,傳遞給PE-2-R7的時候,會剝離外層標籤602.然後僅僅是報文攜帶704這個MP-BGP標籤到達R7,最後R7會根據704這個標籤,把該報文送到相關的vrf接口,最終達到最後一跳.

clip_image034

在R7上面, show ip cef vrf Hank detail中可以看到,R7確實是爲2.2.2.2這個***v4路由前綴分配了本地MP-BGP的標籤704:

clip_image036

最後,CE1的loop0到CE2的loop0肯定是通的.

clip_image038

2, 配置&&註釋部分:

對於CE來說,沒有什麼特別的,接口IP地址,然後就是靜態路由.

CE1-R1:

interface Loopback0

ip address 1.1.1.1 255.255.255.255

!

interface Ethernet0/0

ip address 10.0.15.1 255.255.255.0

!

ip route 2.2.2.2 255.255.255.255 10.0.15.5

CE2-R2:

interface Loopback0

ip address 2.2.2.2 255.255.255.255

!

interface Ethernet0/1

ip address 10.0.27.2 255.255.255.0

!

ip route 1.1.1.1 255.255.255.255 10.0.27.7

對於PE來說, 各個配置都必須要保證配好.

PE-1-R5:

ip vrf Hank //創建一個vrf在PE-1-R5上面.

rd 1:1 //RD僅僅是一個本地的路由標示,本地有效,所以R5配置1:1.R7配置2:2一點問題都沒有.

route-target export 100:1 //RT export,對於控制平面來說,本端的RT export 100:1一定要和R7的RT import對應一致.否則路由到了R7不能導入.

route-target import 100:2 //RT import, 對於控制平面來說,對端的RT export 100:2一定要和本端VRF的RT import對應,否則的話,路由從R7到了R5以後不能被R5導入.

!

ip cef //cef是FIB表,一定要打開,LDP是基於FIB表的,如果cef關了,那麼出現的想想是show mpls forwarding-table是控標項.

mpls label range 500 599 //這裏因爲是做實驗的關係,R5的標籤範圍分配99個.從500開始,好看現象.真實現網中一定不能這樣配置範圍,否則會因爲路由前綴超過範圍,而得不到標籤,影響現網業務.

mpls label protocol ldp //這個是系統默認的標籤分發協議.手動修改以後,可以修改爲TDP.

mpls ldp router-id Loopback0 force //mpls LDP的router-id強制爲loop0.

!

//關於環回口,這裏要多說幾句. 一定要配置爲32位的掩碼,至少是一個好的習慣.爲什麼呢?主要原因還是爲OSPF這個IGP協議留上一手。我們知道,核心骨幹網中,RIP,OSPF,ISIS,EIGRP,OSPF是使用最廣泛的.(RIP的16跳就限制了該協議不可能在中大型網絡中使用,EIGRP是cisco私有協議,沒有任何一個運營商會用EIGRP,因爲需要考慮其他設備的兼容性. ISIS使用得比較少),那麼最後就是OSPF.

OSPF,默認的網絡類型是broadcast.有一個特性,loopback口,如果不修改網絡類型爲point-to-point的話,如果配置的掩碼是24位,本地會爲5.5.5.0/24分配一個標籤,但是IGP OSPF傳遞到其他路由器是32位的掩碼,這樣就算本地把5.5.5.0/24的標籤通告給其他鄰居,但是因爲其他鄰居收到的IGP路由是5.5.5.5/32,標籤和路由前綴不匹配,因而LSP斷裂.最終導致找不到標籤從上一個路由器丟包.

interface Loopback0

ip address 5.5.5.5 255.255.255.255

!

interface Ethernet0/0

ip vrf forwarding Hank //CE端的接口,需要將接口劃分到VRF中.以便進行CE之間的區分.

ip address 10.0.15.5 255.255.255.0

!

interface Ethernet0/1

ip address 9.0.56.5 255.255.255.0

mpls label protocol ldp //接口下面的默認配置。

mpls ip //需要手工開啓,標示該接口運行LDP協議.

!

//OSPF,骨幹網的IGP協議,所以不能攜帶VRF參數,要把環回口,骨幹的接口全部network進去。IGP通了以後, LDP才能順利的建立鄰居,分發標籤.

router ospf 1

router-id 5.5.5.5

network 5.5.5.5 0.0.0.0 area 0

network 9.0.56.5 0.0.0.0 area 0

!

//BGP是重頭戲,下面的配置是MP-BGP,因爲承載了IPv4, vrf IPv4, ***V4.有需要的話MP-BGP還需要承載更多的協議進來.

router bgp 1000

bgp router-id 5.5.5.5 //bgp的環回口使用loopback接口.TCP可達,鄰居就能建立起來.

bgp log-neighbor-changes

no bgp default ipv4-unicast

neighbor 7.7.7.7 remote-as 1000 //全局建立BGP鄰居

neighbor 7.7.7.7 update-source Loopback0 //用環回口當更新源,否則默認是用出接口做.

!

address-family ipv4 //因爲全局打上了no bgp default ipv4,這裏需要在ipv4地址族裏面激活全局的IBGP鄰居.

neighbor 7.7.7.7 activate

exit-address-family

!

//下面***V4地址族,就是MP-BGP承載的衆多協議之一.

當VRF接口將路由導入到全局的BGP的時候,會攜帶RD/RT和標籤屬性.這些都會被作爲MP-BGP的擴展團體屬性,在***v4地址族中進行攜帶,然後發送到對端。所以一定需要將***v4的鄰居激活,否則的話,擴展團體屬性是沒有辦法進行傳遞的.

address-family ***v4

neighbor 7.7.7.7 activate

neighbor 7.7.7.7 send-community extended

exit-address-family

!

//關於ipv4 vrf xxx,這裏是需要將VRF接口的路由給重分發到BGP中,一個vrf-->BGP的導入的過程.

因爲本例只用了靜態路由,所以這裏只需要重分發靜態即可.

address-family ipv4 vrf Hank

redistribute static

exit-address-family

!

ip route vrf Hank 1.1.1.1 255.255.255.255 10.0.15.1 //靜態路由,需要寫的是vrf的路由.

!

PE-2-R7:

ip vrf Hank

rd 2:2

route-target export 100:2

route-target import 100:1

!

ip cef

mpls label range 700 799

mpls label protocol ldp

mpls ldp router-id Loopback0 force

!

interface Loopback0

ip address 7.7.7.7 255.255.255.255

!

interface Ethernet0/0

ip address 9.0.67.7 255.255.255.0

mpls label protocol ldp

mpls ip

!

interface Ethernet0/1

ip vrf forwarding Hank

ip address 10.0.27.7 255.255.255.0

!

router ospf 1

router-id 7.7.7.7

network 7.7.7.7 0.0.0.0 area 0

network 9.0.67.7 0.0.0.0 area 0

!

router bgp 1000

bgp router-id 7.7.7.7

bgp log-neighbor-changes

no bgp default ipv4-unicast

neighbor 5.5.5.5 remote-as 1000

neighbor 5.5.5.5 update-source Loopback0

!

address-family ipv4

neighbor 5.5.5.5 activate

exit-address-family

!

address-family ***v4

neighbor 5.5.5.5 activate

neighbor 5.5.5.5 send-community extended

exit-address-family

!

address-family ipv4 vrf Hank

redistribute static

exit-address-family

!

ip route vrf Hank 2.2.2.2 255.255.255.255 10.0.27.2

!

P-R6:

關於P路由器,其實配置非常簡單。而且P不需要知道BGP,VRF的CE路由.

P唯一的工作就是轉發標籤報文,所以運營商對於P路由器的需求是:性能高,穩定.一般用cisco7600或者12800等高端設備來做.

ip cef //依然要說的是,cef是FIB表,是MPLS標籤綁定表和標籤轉發表的基礎,如果有人把cef關了,那麼本設備的MPLS功能會被完全禁用.當MPLS報文來了該設備,因爲該設備IGP路由表中沒有報文目的的前綴,結果是直接丟包.

mpls label range 600 699

mpls label protocol ldp

mpls ldp router-id Loopback0 force

!

interface Loopback0

ip address 6.6.6.6 255.255.255.255

!

interface Ethernet0/0

ip address 9.0.67.6 255.255.255.0

mpls label protocol ldp

mpls ip

!

interface Ethernet0/1

ip address 9.0.56.6 255.255.255.0

mpls label protocol ldp

mpls ip

!

router ospf 1

router-id 6.6.6.6

network 6.6.6.6 0.0.0.0 area 0

network 9.0.56.6 0.0.0.0 area 0

network 9.0.67.6 0.0.0.0 area 0

!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章