目錄

簡介

必要條件

需求

採用元件

背景資訊

設定

網路圖表

組態

說明

驗證

從CE1 ping CE2，反之亦然

交換的更新和MPLS標籤的說明

通過Traceroute驗證

從CE1到CE2的Traceroute

從CE2到CE1的Traceroute

疑難排解

簡介

本檔案介紹如何設定和驗證AS間第3層多重協定標籤交換(MPLS)VPN選項C功能。Cisco IOS®和Cisco IOS-XR平台用於說明和驗證。文中提供一個範例網路情境及其組態和輸出，以便更好瞭解。

必要條件

需求

本文件沒有特定需求。不過，瞭解MPLS的基本知識和Cisco IOS-XR平台的工作知識將很有幫助。

採用元件

本文件所述內容不限於特定軟體和硬體版本。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路正在作用，請確保您已瞭解任何指令可能造成的影響。

背景資訊

MPLS在全球網際網路服務提供商(ISP)中廣泛部署。ISP為客戶提供大量服務，其中一項服務是MPLS第3層VPN。MPLS第3層VPN主要將客戶的路由邊界從一個地理位置延伸到另一個地理位置。ISP主要用於中轉。完成在一個地理位置和在另一個地理位置與ISP的對等操作，然後在客戶邊緣(CE)裝置上從PE（提供商邊緣/ISP）裝置接收客戶特定路由。

如果客戶需要針對兩個不同ISP所在的兩個不同地理位置擴展路由邊界，則兩個ISP需要協調，以便向最終客戶提供MPLS第3層VPN。此類解決方案稱為Inter-AS Layer 3 MPLS VPN。

Inter-AS第3層MPLS VPN可以四種不同方式部署，分別稱為選項A、選項B、選項C和選項D。本文檔將介紹使用選項C的實施。

設定

網路圖表

AS間選項C交換的拓撲，如下圖所示。

編址方案非常簡單。每台路由器都有描述為192.168.255.X的loopback1介面，其中X=1（當路由器1遇到問題時）。介面地址屬於192.168.XY.X型別。假設考慮使用R1和R2，路由器R1下的介面配置為192.168.12.1（此處X =1,Y = 2）。

CE — 客戶邊緣

PE — 提供商邊緣

RR — 路由反射器

ASBR — 自治系統邊界路由器

在本文檔中，術語CE表示客戶邊緣裝置。如果必須針對特定裝置做出特定引用，則將其引用為CE1。這也適用於PE、RR和ASBR。

所有裝置都運行Cisco IOS，而ASBR2/R11和PE2/R12運行Cisco IOS-XR。

兩個ISP分別使用自治系統(AS)65000和AS 65001進行引用。使用AS 65000的ISP位於拓撲的左側，使用AS 65001的ISP位於拓撲的右側，使用ISP B。

組態

描述了裝置的配置。

CE1

interface Loopback1                       #Customer Edge configuration.

ip address 192.168.255.1 255.255.255.255                                   !

interface FastEthernet0/0

ip address 192.168.12.1 255.255.255.0

!

router eigrp 1

network 0.0.0.0

!

PE1

vrf definition A                          #Provider Edge Configuration.

rd 192.168.255.2:65000

!

address-family ipv4

route-target export 99:99

route-target import 99:99

exit-address-family

!

interface Loopback1

ip address 192.168.255.2 255.255.255.255

ip ospf 1 area 0

!

interface FastEthernet0/0

vrf forwarding A

ip address 192.168.12.2 255.255.255.0

!

interface FastEthernet1/0

ip address 192.168.24.2 255.255.255.0

ip ospf 1 area 0

mpls ip

!

router eigrp 65000                        #EIGRP is PE-CE routing

!                                         #protocol.

address-family ipv4 vrf A autonomous-system 1

redistribute bgp 65000 metric 10000 10 255 1 1500

network 192.168.12.2 0.0.0.0

exit-address-family

!

router ospf 1

!

router bgp 65000

bgp log-neighbor-changes

no bgp default ipv4-unicast

neighbor 192.168.255.3 remote-as 65000

neighbor 192.168.255.3 update-source Loopback1

!

address-family ipv4

exit-address-family

!

address-family vpnv4                      #Advertising vpnv4 routes

neighbor 192.168.255.3 activate           #from PE1 to RR1.

neighbor 192.168.255.3 send-community both

exit-address-family

!

address-family ipv4 vrf A

redistribute eigrp 1

exit-address-family

!

P1

interface Loopback1                       #P router configuration.

ip address 192.168.255.4 255.255.255.255

ip ospf 1 area 0

!

interface FastEthernet0/0

ip address 192.168.24.4 255.255.255.0

ip ospf 1 area 0

duplex half

mpls ip

!

interface FastEthernet1/0

ip address 192.168.34.4 255.255.255.0

ip ospf 1 area 0

mpls ip

!

interface FastEthernet1/1

ip address 192.168.45.4 255.255.255.0

ip ospf 1 area 0

mpls ip

!

router ospf 1

!

RR1

interface Loopback1                       #Route-Reflector configuration.

ip address 192.168.255.3 255.255.255.255

ip ospf 1 area 0

!

interface FastEthernet0/0

ip address 192.168.34.3 255.255.255.0

ip ospf 1 area 0

mpls ip

!

router ospf 1

!

router bgp 65000

bgp log-neighbor-changes

neighbor 192.168.255.2 remote-as 65000

neighbor 192.168.255.2 update-source Loopback1

neighbor 192.168.255.7 remote-as 65001

neighbor 192.168.255.7 ebgp-multihop 255       #EBGP-Multihop vpnv4

neighbor 192.168.255.7 update-source Loopback1 #peering with RR2.

!

address-family vpnv4

neighbor 192.168.255.2 activate

neighbor 192.168.255.2 send-community both

neighbor 192.168.255.2 route-reflector-client

neighbor 192.168.255.7 activate

neighbor 192.168.255.7 send-community both

neighbor 192.168.255.7 next-hop-unchanged

exit-address-family

!

ASBR1

interface Loopback1                       #Autonomous-System boundary-

ip address 192.168.255.5 255.255.255.255  #router configuration.

ip ospf 1 area 0

!

interface FastEthernet0/0

ip address 192.168.45.5 255.255.255.0

ip ospf 1 area 0

mpls ip

!

interface FastEthernet1/0

ip address 192.168.115.5 255.255.255.0

mpls bgp forwarding

!

router ospf 1

redistribute bgp 65000 subnets route-map REDISTRIBUTE_IN_IGP

!                                         #Redistributing the loopbacks of

router bgp 65000                          #RR2 and PE2 in AS 65000.

bgp log-neighbor-changes

network 192.168.255.2 mask 255.255.255.255

network 192.168.255.3 mask 255.255.255.255

neighbor 192.168.115.11 remote-as 65001

neighbor 192.168.115.11 send-label

!

ip prefix-list FOREIGN_PREFIXES seq 5 permit 192.168.255.12/32

ip prefix-list FOREIGN_PREFIXES seq 10 permit 192.168.255.7/32

!

route-map REDISTRIBUTE_IN_IGP permit 10

match ip address prefix-list FOREIGN_PREFIXES

!

ASBR2

interface Loopback1                         #Autonomous System boundary

ipv4 address 192.168.255.11 255.255.255.255 #configuration.

!

interface GigabitEthernet0/0/0/0

ipv4 address 192.168.115.11 255.255.255.0

!

interface GigabitEthernet0/0/0/1

ipv4 address 192.168.116.11 255.255.255.0

!

prefix-set FOREIGN_PREFIXES

192.168.255.2/32,

192.168.255.3/32

end-set

!

route-policy DEFAULT

pass

end-policy

!

route-policy REDISTRIBUTE_IN_IGP

if destination in FOREIGN_PREFIXES then

pass

endif

end-policy

!

router static

address-family ipv4 unicast

192.168.115.5/32 GigabitEthernet0/0/0/0

!

router ospf 1

redistribute bgp 65001 route-policy REDISTRIBUTE_IN_IGP

area 0                                    #Redistributing the loopback

interface Loopback1                       #of RR1 and PE1 in AS 65001.

!

interface GigabitEthernet0/0/0/1

!

router bgp 65001

address-family ipv4 unicast

network 192.168.255.7/32

network 192.168.255.12/32

allocate-label all

!

neighbor 192.168.115.5

remote-as 65000

address-family ipv4 labeled-unicast

route-policy DEFAULT in

route-policy DEFAULT out

!

mpls ldp

address-family ipv4

!

interface GigabitEthernet0/0/0/1

!

RR2

interface Loopback1                       #Route-Refector Configuration.

ip address 192.168.255.7 255.255.255.255

ip ospf 1 area 0

!

interface FastEthernet0/0

ip address 192.168.67.7 255.255.255.0

ip ospf 1 area 0

mpls ip

!

router ospf 1

!

router bgp 65001

bgp log-neighbor-changes

neighbor 192.168.255.3 remote-as 65000    #EBGP-Multihop vpnv4 peering

neighbor 192.168.255.3 ebgp-multihop 255  #with RR1 in AS 65000.

neighbor 192.168.255.3 update-source Loopback1

neighbor 192.168.255.12 remote-as 65001

neighbor 192.168.255.12 update-source Loopback1

!

address-family vpnv4

neighbor 192.168.255.3 activate

neighbor 192.168.255.3 send-community both

neighbor 192.168.255.3 next-hop-unchanged

neighbor 192.168.255.12 activate

neighbor 192.168.255.12 send-community both

neighbor 192.168.255.12 route-reflector-client

exit-address-family

!

P2

interface Loopback1                       #P router configuration.

ip address 192.168.255.6 255.255.255.255

ip ospf 1 area 0

!

interface FastEthernet0/0

ip address 192.168.116.6 255.255.255.0

ip ospf 1 area 0

mpls ip

!

interface FastEthernet1/0

ip address 192.168.67.6 255.255.255.0

ip ospf 1 area 0

mpls ip

!

interface FastEthernet1/1

ip address 192.168.126.6 255.255.255.0

ip ospf 1 area 0

mpls ip

!

router ospf 1

!

PE2

vrf A                                     #Provider Edge Configuration.

address-family ipv4 unicast

import route-target

99:99

!

export route-target

99:99

!

!

interface Loopback1

ipv4 address 192.168.255.12 255.255.255.255

!

interface GigabitEthernet0/0/0/0

ipv4 address 192.168.126.12 255.255.255.0

!

interface GigabitEthernet0/0/0/1

vrf A

ipv4 address 192.168.128.2 255.255.255.0

!

router ospf 1

address-family ipv4

area 0

interface Loopback1

!

interface GigabitEthernet0/0/0/0

!

router bgp 65001

address-family vpnv4 unicast

!

neighbor 192.168.255.7                    #Advertising vpnv4 routes from

remote-as 65001                           #PE2 to RR2.

update-source Loopback1

address-family vpnv4 unicast

!

!

vrf A

rd 192.168.255.12:65001

address-family ipv4 unicast

redistribute eigrp 1

!

mpls ldp

address-family ipv4

!

interface GigabitEthernet0/0/0/0

!

router eigrp 65001                        #EIGRP as PE-CE protocol

vrf A

address-family ipv4

autonomous-system 1

redistribute bgp 65001

interface GigabitEthernet0/0/0/1

!

CE2

interface Loopback1                       #Customer-Edge Configuration.

ip address 192.168.255.8 255.255.255.255

!

interface FastEthernet1/0

ip address 192.168.128.8 255.255.255.0

!

router eigrp 1

network 0.0.0.0

!

說明

- 部署增強型內部網關路由協定(EIGRP)，作為PE-CE路由協定。

- 開放最短路徑優先(OSPF)用作ISP核心的內部網關協定(IGP)。在所有物理鏈路的兩個ISP上都部署了標籤分發協定(LDP)+ IGP。ASBR1和ASBR2之間的Inter-AS鏈路上未配置LDP + IGP。

- 在VRF A下將EIGRP重新分配到邊界網關協定(BGP)中，在PE上執行相反的重新分配。

- 這些重分發的路由會作為VPNv4路由通告給路由反射器(RR)。

- 路由反射器RR1與PE1對等，並反映通過PE1到RR2通過eBGP VPNv4多跳對等獲知的路由。

- 此eBGP VPNv4多躍點對等位於不同AS中的兩個RR之間。

- 必須在兩個RR之間存在LSP（標籤交換機路徑）。

- 為了在不同的AS中的兩個RR之間實現LSP，需要洩漏AS之間的特定路由。

- ASBR1和ASBR2會洩漏特定路由，基本上是PE的loopback1和自己的AS的RR。通過在ASBR之間的正常eBGP對等中通告路由來完成洩漏。

- ASBR相互接收RR路由器和PE路由器通告的環回1字首。接下來，將收到的路由在IGP（OSPF在此）中重分發。 重分發在本質上是特定的，只重分發兩個字首，即遠端RR和PE的loopback1。

- 在Cisco IOS-XR中，從BGP到OSPF的路由重分發和匹配要在OSPF中重分發的路由略有不同，需要字首集和路由策略配置方面的知識。Prefix-set類似於Cisco IOS中的字首清單，route-policy等同於路由對映。

- 現在LSP存在於RR1和RR2以及PE1和PE2之間。

- eBGP VPNv4對等點的下一躍點未變更用於RR。必須注意的是，VPNv4路由的下一跳定義了LSP。現在，如果更新源自PE2並傳送到RR2（iBGP對等），則會保留下一跳。當RR2向RR1反映此更新時（因為這是eBGP對等），正常情況下，RR2會將自己設定為更新的下一跳並將其通告給RR1。RR1會將此更新反映給PE1。因此，PE1將安裝此更新，並將看到更新的下一跳作為RR2。如上所述，VPNv4路由的下一跳定義LSP。因此，PE1要到達PE2,RR2是下一跳。因此，需要兩個LSP，一個從PE1到RR2，另一個從RR2到PE2。這種設計的缺點是流量可能會經過同一鏈路兩次（如本拓撲所示），並且RR也位於流量的傳輸路徑中。

- 為了克服這種設計問題，使用了下一跳不變技術。當RR2收到來自PE2的更新並將該更新反映到RR1時，該更新中的下一跳仍為PE2，當RR1將此更新反映到PE1時，PE1使用下一跳PE2安裝該更新。這意味著從PE1到PE2隻有一個LSP，並且沒有RR正在傳輸。

- 必須注意的是，在Inter-AS鏈路上未部署MPLS或LDP。ASBR使用BGP來傳送標籤。XR需要啟用標籤為unicast address-family的IPv4。

- 當帶有Cisco IOS-XR裝置的ASBR1(Cisco IOS)上出現標籤為eBGP的單播對等時，會在Inter-AS鏈路上自動配置「MPLS BGP轉發」。與ASBR2的標籤交換是通過BGP而不是通過LDP完成的。Cisco IOS還會自動將連線的/32路由新增到ASBR2的介面，以便將MPLS標籤繫結到/32路由，並正確完成標籤交換。

- 對於Cisco IOS-XR over Inter-AS鏈路，與Cisco IOS的邏輯不同。需要配置到ASBR1介面的靜態/32路由，以便為/32字首繫結MPLS標籤。如果不這樣做，則控制平面將啟動，但流量不會轉發。

驗證

從CE1 ping CE2，反之亦然

從CE1 ping CE2（以loopback1介面作為源）的輸出為：

R1#ping 192.168.255.8 source lo1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.255.8, timeout is 2 seconds:

Packet sent with a source address of 192.168.255.1

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 104/300/420 ms

從CE2 ping CE1（以loopback1介面作為源）的輸出為：

R8#ping 192.168.255.1 source lo1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.255.1, timeout is 2 seconds:

Packet sent with a source address of 192.168.255.8

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 168/303/664 ms

交換的更新和MPLS標籤的說明

- 在CE1上，show ip route命令為另一端的CE2的loopback1提供路由。
R1#show ip route 192.168.255.8

Routing entry for 192.168.255.8/32

Known via "eigrp 1", distance 90, metric 156416, type internal

- 此處討論了沿著路徑CE1到CE2實施/部署的MPLS標籤的流量流，以及當它從CE1的源loopback1到CE2的loopback1時如何獲得可達性。

- 在MPLS第3層VPN設計中，應記住，在標籤交換操作期間，傳輸標籤被交換，而VPN標籤未被接觸。當發生倒數第二躍點跳躍(PHP)且流量達到PE或標籤交換路徑(LSP)終止時，VPN標籤會暴露。

- 在PE1上，CE2的loopback1通過BGP VPNv4更新獲知，並重新分發到VRF感知的EIGRP。通過CE1通過EIGRP獲知的loopback1會重分發到BGP中，並且它也會成為VPNv4路由。
R2#show bgp vpnv4 unicast all labels

Network            Next Hop         In label/Out label

Route Distinguisher: 192.168.255.2:65000 (A)

192.168.12.0       0.0.0.0          24/nolabel(A)

192.168.128.0      192.168.255.12   nolabel/24000

192.168.255.1/32   192.168.12.1     25/nolabel

192.168.255.8/32   192.168.255.12   nolabel/24007

- 從先前的輸出可以得出結論：要到達192.168.255.8/32;即CE2的loopback1，通過BGP VPNv4更新獲24007CE2的傳出標籤。同樣，PE1通過VPN標籤25向CE1的loopback1通告可達性。
R2#show mpls forwarding-table

Local   Outgoing  Prefix             Bytes Label   Outgoing  Next Hop

Label   Label     or Tunnel Id       Switched      interface

22      20        192.168.255.12/32  0             Fa1/0     192.168.24.4

25      No Label  192.168.255.1/32[V]5976          Fa0/0     192.168.12.1

- 到達192.168.255.8/32的下一跳是192.168.255.12，下一跳決定LSP。MPLS轉發表顯示20為到達192.168.255.12的傳出標籤。因此，從CE1到CE2的環回1的流量將有20作為傳輸標籤，24007作為VPN標籤。

- 對於發往CE1的loopback1的返回流量，由於192.168.255.1/32屬於CE1，因此在P1上已經發生了PHP操作。發往192.168.255.1/32的流量將以25的VPN標籤命中PE1，此標籤將被刪除，此資料包將被傳送到fa0/0介面；即CE1。

- RR1上的VPNv4標籤再次確認相同情況。
R3#show bgp vpnv4 unicast all labels

Network               Next Hop          In label/Out label

Route Distinguisher: 192.168.255.2:65000

192.168.255.1/32      192.168.255.2     nolabel/25

Route Distinguisher: 192.168.255.12:65001

192.168.255.8/32      192.168.255.12    nolabel/24007

- 在P1上，從CE1發往CE2的流量將以20的傳輸標籤命中。
R4#show mpls forwarding-table

Local  Outgoing  Pefix             Bytes Label Outgoing   Next Hop

Label  Label     or Tunnel Id      Switched    interface

20     22        192.168.255.12/32 5172        Fa1/1      192.168.45.5

- 現在，從CE1到CE2的流量將命中ASBR1，傳輸標籤為22。
R5#show mpls forwarding-table

Local  Outgoing  Prefix            Bytes Label Outgoing   Next Hop

Label  Label     or Tunnel Id      Switched    interface

22     24002     192.168.255.12/32 5928        Fa1/0      192.168.115.11

- 現在，從CE1到CE2的流量將命中ASBR2，傳輸標籤為24002。
RP/0/0/CPU0:ios#show mpls forwarding

Local    Outgoing   Prefix             Outgoing   Next Hop       Bytes

Label    Label      or ID              Interface                 Switched

24002    19         192.168.255.12/32  Gi0/0/0/1  192.168.116.6  7092

- 現在，從CE1到CE2的流量將命中P2，傳輸標籤為19。
R6#show mpls forwarding-table

Local   Outgoing  Prefix            Bytes Label  Outgoing  Next Hop

Label   Label     or Tunnel Id      Switched     interface

19      Pop Label 192.168.255.12/32 9928         Fa1/1     192.168.126.12

- 在P2路由器上觀察到發生PHP操作並彈出傳輸標籤。當流量到達PE2時，它將按前面討論的VPN24007簽進行命中。還應該觀察到，PE2將通過VPN標籤24007向CE2的loopback1通告可達性。
RP/0/0/CPU0:ios#show mpls forwarding

Local   Outgoing    Prefix              Outgoing   Next Hop      Bytes

Label   Label       or ID               Interface                Switched

24007   Unlabelled  192.168.255.8/32[V] Gi0/0/0/1  192.168.128.6 7992

24008   18          192.168.255.2/32    Gi0/0/0/0  192.168.126.6 673200

RP/0/0/CPU0:ios#show bgp vpnv4 unicast labels

Network                Next Hop         Rcvd Label Local Label

Route Distinguisher: 192.168.255.12:65001 (default for vrf A)

*>i192.168.255.1/32    192.168.255.2      25           nolabel

*> 192.168.255.8/32    192.168.128.8      nolabel      24007

- 此處可以觀察到，從CE1到CE2的流量會命中VPN標籤為24007的PE2，該流量會傳送到CE2所在的Gi/0/0/0/1，並且VPN標籤會彈出。此外還觀察到，PE2通過24007的VPN標籤向192.168.255.8/32通告可達性。之前在PE1上也學習過此資訊。同樣，PE1也通過VPN標籤25通告了到192.168.255.1/32的可達性，此處也獲知了相同的資訊。為了從CE2到達CE1上的192.168.255.1/32，將使用VPN標籤25和傳輸標籤18，因為可以通過標籤18到達下一跳192.168.255.2。

通過Traceroute驗證

- 可以在traceroute中看到標籤，它們與所討論的完全相同。

- VPNv4更新中的下一跳控制標籤交換機路徑，從而控制傳輸標籤。

- 在下面顯示的兩個跟蹤路由中，可以觀察到，VPN標籤在整個LSP的所有跳數中始終保持一致。僅交換傳輸標籤。

- 當PE1獲知來自PE2的更新時，下一跳是PE2，而不是任何RR或ASBR。這會導致LSP在PE2終止，從而導致從AS 65000到AS 65001的整個傳輸路徑中有一個LSP，反之亦然。

從CE1到CE2的Traceroute

R1#traceroute 192.168.255.8 source lo1

Type escape sequence to abort.

Tracing the route to 192.168.255.8

VRF info: (vrf in name/id, vrf out name/id)

1 192.168.12.2 8 msec 36 msec 16 msec

2 192.168.24.4 [MPLS: Labels 20/24007 Exp 0] 828 msec 628 msec 2688 msec

3 192.168.45.5 [MPLS: Labels 22/24007 Exp 0] 1456 msec * 1528 msec

4 192.168.115.11 [MPLS: Labels 24002/24007 Exp 0] 1544 msec 2452 msec  2164 msec

5 192.168.116.6 [MPLS: Labels 19/24007 Exp 0] 1036 msec 908 msec 1648 msec

6 192.168.126.12 [MPLS: Label 24007 Exp 0] 2864 msec 1676 msec 1648 msec

7 192.168.128.8 2008 msec 400 msec 572 msec

LSP中的VPN標24007名稱始終保持一致。

從CE2到CE1的Traceroute

R8#traceroute 192.168.255.1 source lo1

Type escape sequence to abort.

Tracing the route to 192.168.255.1

VRF info: (vrf in name/id, vrf out name/id)

1 192.168.128.2 1228 msec 68 msec 152 msec

2 192.168.126.6 [MPLS: Labels 18/25 Exp 0] 1188 msec 816 msec 1316 msec

3 192.168.116.11 [MPLS: Labels 24007/25 Exp 0] 1384 msec 1816 msec 504  msec

4 192.168.115.5 [MPLS: Labels 23/25 Exp 0] 284 msec 900 msec 972 msec

5 192.168.45.4 [MPLS: Labels 17/25 Exp 0] 436 msec 608 msec 292 msec

6 192.168.12.2 [MPLS: Label 25 Exp 0] 292 msec 108 msec 536 msec

7 192.168.12.1 224 msec 212 msec 620 msec

VPN標籤25在整個LSP中始終保持一致。

疑難排解

目前尚無適用於此組態的具體疑難排解資訊。