目录

简介

先决条件

要求

使用的组件

背景信息

配置

网络图

配置

验证

从CE1 ping CE2，反之亦然

交换更新和MPLS标签的说明

通过Traceroutes进行验证

故障排除

简介

本文档介绍Inter-As第3层mpls vpn（选项B功能）的配置和验证。IOS和IOS-XR平台用于解释和验证。它显示了示例网络场景及其配置和输出，以便更好地理解。

先决条件

要求

没有这种要求，但是，对MPLS（多协议标签交换）的基本了解和对IOS-XR平台的工作知识肯定会有所帮助。

使用的组件

本文档不限于特定软件和硬件版本。本文档中的信息是从特定实验环境中的设备创建的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

背景信息

MPLS广泛部署于全球的ISP（互联网服务提供商）。MPLS第3层VPN（虚拟专用网络）就是此类服务。MPLS第3层VPNS主要将客户的路由边界从一个地理位置延伸到另一个地理位置，ISP主要用作中转。在一个地理位置和另一个地理位置上与ISP对等，然后在CE（客户边缘）设备上从PE（提供商边缘/ISP）设备接收客户特定路由。

现在，如果要求为客户扩展路由边界，则针对两个不同ISP所在的地理位置。然后，两个ISP需要协调，以便向最终客户提供MPLS第3层VPN。这种解决方案称为Inter-As第3层MPLS VPN。

AS间MPLS第3层VPNS可以采用4种不同的方式部署，称为选项A、选项B、选项C和选项D。

本文档将介绍使用选项B的实施。

配置

网络图

AS间选项B交换的拓扑如下所示。

编址方案非常简单。每台路由器的loopback1接口都描述为192.168.255.X，当路由器1受到关注时，其中X=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。

所有设备都运行IOS，但ASBR2/R11和PE2/R12运行IOS-XR。

两个ISP被引用AS（自治系统）65000和AS 65001。ISP AS 65000位于拓扑的左侧，ISP A和ISP AS 65001位于拓扑的右侧，ISP B被引用。

配置

设备的配置如下所述。

CE1

interface Loopback1

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

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

!

address-family ipv4 vrf A autonomous-system 1

redistribute bgp 65000 metric 1500 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

neighbor 192.168.255.3 activate

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

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

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

no bgp default ipv4-unicast

neighbor 192.168.255.2 remote-as 65000

neighbor 192.168.255.2 update-source Loopback1

neighbor 192.168.255.5 remote-as 65000

neighbor 192.168.255.5 update-source Loopback1

!

address-family ipv4

exit-address-family

!

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.5 activate

neighbor 192.168.255.5 send-community both

neighbor 192.168.255.5 route-reflector-client

exit-address-family

!

ASBR1

interface Loopback1

ip address 192.168.255.5 255.255.255.255

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

!

router bgp 65000

bgp log-neighbor-changes

no bgp default ipv4-unicast

no bgp default route-target filter

neighbor 192.168.115.11 remote-as 65001

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

neighbor 192.168.115.11 activate

neighbor 192.168.115.11 send-community both

neighbor 192.168.255.3 activate

neighbor 192.168.255.3 send-community both

neighbor 192.168.255.3 next-hop-self

exit-address-family

!

ASBR2

interface Loopback1

ipv4 address 192.168.255.11 255.255.255.255

!

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

!

route-policy DEFAULT

pass

end-policy

!

router static

address-family ipv4 unicast

192.168.115.5/32 GigabitEthernet0/0/0/0

!

router ospf 1

area 0

interface Loopback1

!

interface GigabitEthernet0/0/0/1

!

router bgp 65001

address-family vpnv4 unicast

retain route-target all

!

neighbor 192.168.115.5

remote-as 65000

address-family vpnv4 unicast

route-policy DEFAULT in

route-policy DEFAULT out

!

neighbor 192.168.255.7

remote-as 65001

update-source Loopback1

address-family vpnv4 unicast

next-hop-self

!

mpls ldp

address-family ipv4

!

interface GigabitEthernet0/0/0/1

!

P2

interface Loopback1

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

!

RR2

interface Loopback1

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

no bgp default ipv4-unicast

neighbor 192.168.255.11 remote-as 65001

neighbor 192.168.255.11 update-source Loopback1

neighbor 192.168.255.12 remote-as 65001

neighbor 192.168.255.12 update-source Loopback1

!

address-family ipv4

exit-address-family

!

address-family vpnv4

neighbor 192.168.255.11 activate

neighbor 192.168.255.11 send-community both

neighbor 192.168.255.11 route-reflector-client

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

!

PE2

vrf A

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.12 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

remote-as 65001

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

vrf A

address-family ipv4

autonomous-system 1

redistribute bgp 65001

interface GigabitEthernet0/0/0/1

!

CE2

interface Loopback1

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。在所有物理链路上，LDP + IGP都部署在两个ISP上。ASBR1和ASBR2之间的Inter-As链路上未配置LDP + IGP。

- 在PE上，在vrf A下将EIGRP重分发到BGP，反之亦然。

- 只有PE上的VPNv4地址系列通过路由反射器激活。命令no bgp default ipv4-unicast在IOS中禁用默认ipv4地址系列对等。对于IOS-XR，不需要此类命令，因为它只与配置邻居的地址系列形成对等。

- 这些重分发的路由作为VPNv4路由通告给路由反射器(RR)。

- 路由反射器将这些路由反射到ASBR设备。由于需要反映vpn4路由，因此只激活vpnv4地址系列。路由反射器不在中转路径中。

- P设备只是交换标签，并且位于流量的中转路径。

- 在ASBR设备上，已配置IOS的“no bgp default route-target filter”和IOS-XR的“retain route-target all”。这非常重要，因为ABBR设备不是路由反射器，并且它们没有配置任何带RT（路由目标）的vrf，因此它们会隐式丢弃从路由反射器发送到它们的路由更新。这是预期行为，因为IOS和IOS-XR倾向于优化路由表信息并丢弃具有非本地配置的RT的那些vrf的更新。

- 在ASBR上，配置eBGP VPNv4对等。在连接ASBR的链路上启用ldp时，MPLS未启用。

- 当eBGP VPNv4对等在ASBR1(IOS)上与IOS-XR设备建立时，会自动在Inter-As链路上配置“mpls bgp forwarding”。与ASBR2交换标签不是通过ldp而是通过BGP完成的。IOS还自动将静态/32路由添加到ASBR2的接口，以便mpls标签绑定到/32路由，并且标签交换已正确完成。

- 对于Inter-As链路上的IOS-XR，与IOS的逻辑不同。需要配置到ASBR1接口的静态/32路由，以便将mpls标签绑定到/32前缀。如果不执行此操作，则控制平面将出现，但不会转发流量。

- 除非配置了路由策略，否则IOS-XR不会使用EBGP对等体发送或接收路由更新。路由策略配置了名称DEFAULT。操作是“通过”，即发送/接收所有更新。

验证

从CE1 ping CE2，反之亦然

从CE1到CE2使用loopback1接口作为源的ping命令的输出如下所示。

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到CE1使用loopback1接口作为源的ping命令的输出如下所示。

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的源环回1到CE2的环回1时如何获得可达性。还讨论了有关返回路径的类似信息，即从CE2环回1到CE1环回1。

- 在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                  22/nolabel(A)

192.168.128.0        192.168.255.5            nolabel/26

192.168.255.1/32     192.168.12.1             23/nolabel

192.168.255.8/32     192.168.255.5            nolabel/27

- 从上述输出可以理解，要到达192.168.255.8/32前缀，需要获取27的vpn标签。此输出还表明标签23是BGP分配的VPN标签，用于通告到192.168.255.1/32的可达性。VPNv4前缀的下一跳决定传输标签和标签交换路径。因此，下一跳192.168.255.5的“show mpls forwarding-table”(show mpls forwarding-table)将提供到达192.168.255.8/32的传输标签信息。

R2#show mpls forwarding-table 192.168.255.5 255.255.255.255

Local   Outgoing  Prefix             Bytes Label  Outgoing   Next Hop

Label   Label     or Tunnel Id       Switched     interface

21      21        192.168.255.5/32   0            Fa1/0      192.168.24.4

- 传出标签为21，因此可以断定，为了到达192.168.255.8/32,PE1将使用传输标签21和vpn标签27。

R2#show mpls forwarding-table

Local   Outgoing   Prefix                Bytes Label  Outgoing   Next Hop

Label   Label      or Tunnel Id          Switched     interface

23      No Label   192.168.255.1/32[V] \

5928         Fa0/0      192.168.12.1

- 还可以得出结论，到达192.168.255.1/32的返回流量将是P1路由器已经使用的PHP，因此将命中PE1（VPN标签为23），并且mpls转发表将该流量发送到Fa0/0，即在弹出vpn标签后CE1。

- 路由反射器的输出证实了目前所讨论的信息。

R3#show bgp vpnv4 unicast all labels

Network              Next Hop              In label/Out label

Route Distinguisher: 192.168.255.2:65000

192.168.12.0         192.168.255.2         nolabel/22

192.168.255.1/32     192.168.255.2         nolabel/23

Route Distinguisher: 192.168.255.12:65001

192.168.128.0        192.168.255.5         nolabel/26

192.168.255.8/32     192.168.255.5         nolabel/27

- 真正有趣的部分是ASBR1，此处到达192.168.255.1/32的标签被发送到ASBR2,ASBR2通告到达192.168.255.8/32的标签信息。如前所述，bgp vpnv4更新中的下一跳决定传输标签，请记住下一跳192.168.255。5(对于在PE1上学习的192.168.255.8/32前缀)属于ASBR1的loopback1。因此，根据PHP的过程(Penultimate hopping)，当发往192.168.255.8的流量到达ASBR1时，传输标签将被P1删除。因此，到达ASBR1的流量br1将以VPN标签27命中。ASBR1上的输出如下所示。

R5#show bgp vpnv4 unicast all labels

Network              Next Hop               In label/Out label

Route Distinguisher: 192.168.255.2:65000

192.168.12.0         192.168.255.2          24/22

192.168.255.1/32     192.168.255.2          25/23

Route Distinguisher: 192.168.255.12:65001

192.168.128.0        192.168.115.11         26/24008

192.168.255.8/32     192.168.115.11         27/24009

- 现在可以清楚地看到，当ASBR1的标签为27时，发往192.168.255.8/32的流量将转发到标签为24009的ASBR2到ASBR2 192.168.115.11的下一跳。同样，从ASBR发往192.168.255.1/32的流量也会从ASBR转发到192.12将带有标签25，标签将交换为23（vpn标签），然后封装正确的传输标签以将流量转发到下一跳192.168.255.2(PE1)。

R5#show mpls forwarding-table

Local   Outgoing  Prefix Bytes      Label    Outgoing     Next Hop

Label   Label     or Tunnel Id      Switched Interface

21      19        192.168.255.2/32  0        Fa0/0        192.168.45.4

27      24009     192.168.255.12:65001:192.168.255.8/32 \

26       Fa1/0        192.168.115.11

- 因此，返回流量将以标签19作为传输标签，以23作为VPN标签从ASBR1到达PE1。

- 当流量通过Inter-As链路时，只有单个mpls标签，主要是vpn标签，了解这一点非常重要。当流量在AS内时，会观察到两个mpls标签。

- 在ASBR2上，即观察到IOS-XR设备类似的标签。

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

Network                Next Hop                Rcvd Label Local Label

Route Distinguisher:192.168.255.2:65000

*> 192.168.12.0/24     192.168.115.5           24         24006

*> 192.168.255.1/32    192.168.115.5           25         24007

Route Distinguisher: 192.168.255.12:65001

*>i192.168.128.0/24    192.168.255.12          24000      24008

*>i192.168.255.8/32    192.168.255.12          24001      24009

- 此处观察到ASBR2将前缀192.168.255.8/32的标签24009通告给ASBR1。此输出还显示，要到达192.168.255.1/32前缀，ASBR1已通告标签25。现在，由于已看到到达192.168.255.8/32的下一跳是192.168.255.12(PE2)。 MPLS转发表将具有到达下一跳的LDP标签或传输标签。

RP/0/0/CPU0:ios#show mpls forwarding

Local   Outgoing  Prefix              Outgoing     Next Hop       Bytes

Label   Label     or ID               Interface                   Switched

24004   19        192.168.255.12/32   Gi0/0/0/1    192.168.116.6  2082

- 正在使用到192.168.255.12传出标签19。因此，从ASBR2到PE2的流量将具有两个mpls标签，19作为传输标签，24001作为vpn标签。

- 与上述返回流量类似，即从CE2到CE1的vpn标签为24007的ASBR2会被PP2路由器标记为PHP。标签交换操作发生，标签交换到25，并发送到下一跳192.168.115.5，即ASBR1 Inter-As链路。

RP/0/0/CPU0:ios#show mpls forwarding

Local   Outgoing    Prefix             Outgoing           Next Hop      Bytes

Label   Label       or ID              Interface                        Switched

24007   25          2.255.168.192:65000:192.168.255.1/32 \

Gi0/0/0/0          192.168.115.5 10146

- PE2本身是前缀192.168.255.8/32的下一跳，因此P2路由器将执行PHP，而发往192.168.255.8/32的流量将到达带有单mpls标签(即VPN标签24001)的PE2。

RP/0/0/CPU0:ios#show mpls forwarding

Local    Outgoing     Prefix      Outgoing     Next Hop         Bytes

Label    Label        or ID       Interface                     Switched

24001    Unlabelled   192.168.255.8/32[V] \

Gi0/0/0/1    192.168.128.8    5364

24003    20           192.168.255.11/32

Gi0/0/0/0    192.168.126.6    5712

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.12.0/24   192.168.255.11    24006        nolabel

*> 192.168.128.0/24  0.0.0.0           nolabel      24000

*>i192.168.255.1/32  192.168.255.11    24007        nolabel

*> 192.168.255.8/32  192.168.128.8     nolabel      24001

- 因此，当流量到达带有vpn标签24001的PE2时，它会通过链路Gi0/0/0/1转发到CE2，并且vpn标签也会被删除。此外，PE2将使用VPN标签24007和传输标签20将流量发送到192.168.255.1/32。

通过Traceroutes进行验证

从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 16 msec 20 msec

2 192.168.24.4 [MPLS: Labels 21/27 Exp 0] 516 msec 504 msec 212 msec

3 192.168.45.5 [MPLS: Label 27 Exp 0] 280 msec 640 msec 280 msec

---- LSP 1 ----

4 192.168.115.11 [MPLS: Label 24009 Exp 0] 544 msec 548 msec 264 msec

---- LSP 2 ----

5 192.168.116.6 [MPLS: Labels 19/24001 Exp 0] 748 msec 444 msec 472 msec

6 192.168.126.12 [MPLS: Label 24001 Exp 0] 204 msec 316 msec 780 msec

---- LSP 3 ----

7 192.168.128.8 296 msec 892 msec 496 msec

- 标签可以看到traceroute，与上述内容完全相同。

- 前面已经提到，vpnv4更新的下一跳控制标签交换机路径，从而控制传输标签。

- 选项B Inter-As设计中前缀的下一跳会更改3次，因此存在3个LSP。

- 前缀192.168.255.8/32源自PE2，因此在AS 65001 PE2中是vpnv4更新的下一跳。

- 此更新到达ASBR2，现在ASBR2通过Inter-As链路将此更新通告给ASBR1，因此ASBR2现在成为vpnv4更新的下一跳。

- 同样，现在AS 65000中通过ASBR1将相同的前缀通告为vpnv4更新，因此AS 65000 ASBR1是vpnv4更新的下一跳。

- 由于下一跳确定LSP并且更改了3次，因此traceroute中突出显示了3个不同的LSP。

- 应注意，对于不同的LSP，vpn标签保持不变且不变。

从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.12 172 msec 164 msec 56 msec

2 192.168.126.6 [MPLS: Labels 20/24007 Exp 0] 472 msec 452 msec 368 msec

3 192.168.116.11 [MPLS: Label 24007 Exp 0] 692 msec 780 msec 772 msec

---- LSP 1 ----

4 192.168.115.5 [MPLS: Label 25 Exp 0] 484 msec 720 msec 232 msec

---- LSP 2 ----

5 192.168.45.4 [MPLS: Labels 19/23 Exp 0] 376 msec 448 msec 336 msec

6 192.168.12.2 [MPLS: Label 23 Exp 0] 168 msec 208 msec 432 msec

---- LSP 3 ----

7 192.168.12.1 464 msec 468 msec 776 msec

故障排除

目前没有针对此配置的故障排除信息。