多协议标签交换 (MPLS) : MPLS

在 ASBR 之间使用 VPNv4 eBGP 会话的 AS 间 MPLS VPN 配置

2016 年 10 月 27 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 12 月 19 日) | 反馈


目录


简介

本文档显示基本自治系统间(AS 间)多协议标签交换 (MPLS) VPN 的配置示例。

先决条件

要求

本文档假设您具备 MPLS 和 MPLS VPN 的工作知识。请参阅本文的“相关信息”部分关于链路对其他MPLS VPN文档。

使用的组件

本文档中的信息基于以下软件版本:

  • Cisco IOSï ¿  ½软件版本12.2和12.2T

注意: 由于此配置使用代码混合物,标签发行协议(TDP)使用而不是标签转发协议(LDP)。在一个纯LDP设置, Tag转发信息基础(TFIB)将由标签转发信息基础(LFIB)替换, show tag forwarding命令将变得show mpls forwarding命令,等等。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

配置

本部分提供有关如何配置本文档所述功能的信息。

注意: 要查找本文档所用命令的其他信息,请使用命令查找工具仅限注册用户)。

网络图

本文档使用下图所示的网络设置。

http://www.cisco.com/c/dam/en/us/support/docs/multiprotocol-label-switching-mpls/mpls/5811-interasvpn-01.gif

配置

本文档对以上网络图中的路由器使用如下所示的配置。

Pulligny
version 12.2
!
hostname Pulligny
!
ip cef

!--- Cisco Express Forwarding (CEF) must be enabled for MPLS.

!
interface Loopback0
 ip address 10.10.10.2 255.255.255.255
 ip router isis
!
interface Serial0/0
 no ip address
 encapsulation frame-relay
!
interface Serial0/0.1 point-to-point
 description to Paulliac
 ip address 10.1.1.2 255.255.255.252
 ip router isis
 tag-switching ip

!--- TDP or LDP needs to be enabled inside each AS.

 frame-relay interface-dlci 913
!
interface Serial0/0.2 point-to-point
 description to Pomerol
 ip address 10.1.1.10 255.255.255.252
 frame-relay interface-dlci 912

!--- No TDP, LDP, or routing protocols enabled on the inter-AS link.

!
router isis
 redistribute connected metric 20

!--- To get the host route created by the Border Gateway Protocol (BGP)
!--- into the Interior Gateway Protocol (IGP).

 net 47.0000.5555.5555.5555.00
 metric-style wide
!
router bgp 1
 no bgp default ipv4-unicast

!--- BGP is not used for IPv4 unicast.

 no bgp default route-target filter

!--- Needed to accept VPNv4 prefixes.

neighbor 10.1.1.9 remote-as 2

!--- External BGP (eBGP) to Pomerol.

 neighbor 10.10.10.4 remote-as 1
 neighbor 10.10.10.4 update-source Loopback0

!--- Internal BGP (iBGP) to PEscara.

 !
 address-family vpnv4
 neighbor 10.1.1.9 activate
 neighbor 10.1.1.9 send-community both
 neighbor 10.10.10.4 activate
 neighbor 10.10.10.4 send-community extended
 exit-address-family

!--- Address family to allow BGP to carry VPN-IPv4 protocols.

!
ip classless
!
end

佩斯卡拉
hostname PEscara
!
ip vrf one
 rd 1:1
 route-target export 1:1
 route-target import 1:1

!--- Create a virtual routing and forwarding (VRF) instance called one 
!--- with a route distinguished value of 1:1. Routes with route target
!--- values of 1:1 will be imported into the VRF and exported out
!--- of the VRF.

ip cef

!--- CEF must be enabled for MPLS.

!
interface Loopback0
 ip address 10.10.10.4 255.255.255.255
 ip router isis
!
interface Serial0/1
 no ip address
 encapsulation frame-relay
 frame-relay lmi-type cisco
!
interface Serial0/1.1 point-to-point
 description to Pauillac
 ip address 10.1.1.14 255.255.255.252
 ip router isis
 tag-switching ip
 frame-relay interface-dlci 973
!
interface Serial0/1.2 point-to-point
 description to CEntrum
 ip vrf forwarding one

!--- Associates the interface with VRF one.

 ip address 120.0.0.1 255.255.255.0
 frame-relay interface-dlci 979
!
router isis
 net 47.0000.7777.7777.7777.00
 metric-style wide
!
router bgp 1
 no bgp default ipv4-unicast
 bgp log-neighbor-changes
 neighbor 10.10.10.2 remote-as 1
 neighbor 10.10.10.2 update-source Loopback0

!--- iBGP to Pulligny.

 !
 address-family ipv4 vrf one
 redistribute connected
 no auto-summary
 no synchronization
 exit-address-family

!--- Address family to allow BGP to carry IPv4 protocols for VRF one
!--- (each VRF that injects routes into BGP must be configured under
!--- the BGP process using its own address family).

 !
 address-family vpnv4
 neighbor 10.10.10.2 activate
 neighbor 10.10.10.2 send-community both
 exit-address-family

!--- Address family to allow BGP to carry VPN-IPv4 protocols.

!
ip classless
!
end

Pauillac

!--- The Pauillac router is a Provider router (p) and its configuration
!--- is quite simple. It is configured for Intermediate System-to-
!--- Intermediate System (IS-IS) and MPLS/Tag switching.

!
hostname Pauillac
!
ip cef
!
interface Loopback0
 ip address 10.10.10.1 255.255.255.255
 ip router isis
!
interface Serial0/0
 no ip address
 encapsulation frame-relay
!
interface Serial0/0.1 point-to-point
 description to Pulligny
 ip address 10.1.1.1 255.255.255.252
 ip router isis
 tag-switching ip
 frame-relay interface-dlci 931
!
interface Serial0/0.3 point-to-point
 description to PEscara
 ip address 10.1.1.13 255.255.255.252
 ip router isis
 tag-switching ip
 frame-relay interface-dlci 937
!
router isis
 net 47.0000.3333.3333.3333.00
 metric-style wide
!
ip classless
!
end

Pomerol

!--- The Pomerol router is an autonomous system boundary router (ASBR)
!--- like Pulligny and its configuration is very similar to Pomerol's. 

hostname Pomerol
!
ip cef
!
interface Loopback0
 ip address 10.10.10.3 255.255.255.255
 ip router isis
!
interface Serial0/0
 no ip address
 encapsulation frame-relay
!
interface Serial0/0.1 point-to-point
 description to Pulligny
 ip address 10.1.1.9 255.255.255.252
 frame-relay interface-dlci 921
!
interface Serial0/0.3 point-to-point
 description to PEsaro
 ip address 10.1.1.21 255.255.255.252
 ip router isis
 tag-switching ip
 frame-relay interface-dlci 925
!
router isis
 redistribute connected metric 20
 net 47.0000.2222.2222.2222.00
 metric-style wide
!
router bgp 2
 no bgp default ipv4-unicast
 no bgp default route-target filter
 bgp log-neighbor-changes
 neighbor 10.1.1.10 remote-as 1
 neighbor 10.10.10.6 remote-as 2
 neighbor 10.10.10.6 update-source Loopback0
 !
 address-family vpnv4
 neighbor 10.1.1.10 activate
 neighbor 10.1.1.10 send-community both
 neighbor 10.10.10.6 activate
 neighbor 10.10.10.6 send-community extended
 exit-address-family
!
ip classless
!
end

Pesaro

!--- The PEsaro router is a PE router like the PEscara router, and its 
!--- configuration is very similar.

hostname PEsaro
!
ip vrf one
 rd 1:1
 route-target export 1:1
 route-target import 1:1
ip cef
!
interface Loopback0
 ip address 10.10.10.6 255.255.255.255
 ip router isis
!
interface Serial0/1
 no ip address
 encapsulation frame-relay
!
interface Serial0/1.1 point-to-point
 description to Pomerol
 ip address 10.1.1.22 255.255.255.252
 ip router isis
 tag-switching ip
 frame-relay interface-dlci 952
!
interface Serial0/1.2 point-to-point
 description to CErvela
 ip vrf forwarding one
 ip address 220.0.0.1 255.255.255.0
 frame-relay interface-dlci 958
!
router isis
 net 47.0000.5555.5555.5555.00
 metric-style wide
!
router bgp 2
 no synchronization
 no bgp default ipv4-unicast
 bgp log-neighbor-changes
 redistribute connected
 neighbor 10.10.10.3 remote-as 2
 neighbor 10.10.10.3 update-source Loopback0
 no auto-summary
 !
 address-family ipv4 vrf one
 redistribute connected
 no auto-summary
 no synchronization
 exit-address-family
 !
 address-family vpnv4
 neighbor 10.10.10.3 activate
 neighbor 10.10.10.3 send-community both
 no auto-summary
 exit-address-family
!
ip classless
!
end

配置注释

  • 两个 AS 之间的 eBGP 不能多跳。

  • 两个 AS 之间不需要 LDP 或 TDP。

  • 两个 AS 之间不需要公共 IGP。每个 AS 都可以使用其自己的不同 IGP。

  • 当需要注入每个 AS 的 IGP 的会话开启时,BGP 将在远程 AS 中为 eBGP 对等体创建一个连接的主机路由。

  • 除非 ASBR 是您要交换的每个 VRF 的 PE,否则您将需要配置 no bgp default route-target filter 命令以确保 ASBR 接受来自 AS 内部其他 PE 路由器的 BGP VPNv4 前缀。默认行为是拒绝未被导入任何本地 VRF 的传入 VPNv4 前缀。

验证并了解 AS 间 MPLS VPN

本部分所提供的信息可用于确认您的配置是否正常工作。

命令输出解释程序工具仅限注册用户)支持某些 show 命令,使用此工具可以查看对 show 命令输出的分析。

有关下面使用的命令的详细信息,请参阅如何对 MPLS VPN 进行故障排除

以下示例显示从 220.0.0.0/24(这是 PEsaro 上的一个连接 VRF one 前缀)到 120.0.0.0/24(这是 PEscara 上的一个连接 VRF one 前缀)的数据包流。

PEsaro 路由器

下面是 PEsaro 路由器中针对 VFR one 的路由。

PEsaro# show ip route vrf one
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

C    220.0.0.0/24 is directly connected, Serial0/1.2
     120.0.0.0/24 is subnetted, 1 subnets
B       120.0.0.0 [200/0] via 10.1.1.10, 00:26:49

PEsaro# show ip cef vrf one 120.0.0.1
120.0.0.0/24, version 10, cached adjacency to Serial0/1.1
0 packets, 0 bytes
  tag information set
    local tag: VPN-route-head
    fast tag rewrite with Se0/1.1, point2point, tags imposed: {17 22}
  via 10.1.1.10, 0 dependencies, recursive
    next hop 10.1.1.21, Serial0/1.1 via 10.1.1.10/32
    valid cached adjacency
    tag rewrite with Se0/1.1, point2point, tags imposed: {17 22}

在以上输出中,可以看到 120.0.0.0/24 的下一跳是 10.1.1.10。还可以看到强加的标记是 17 和 22。TFIB 和 BGP 信息(如下)显示这些标记的源:120.0.0.0/24 的 BGP 路由有一个传出标记 22,与 120.0.0.0/24 关联的下一跳有一个传出标记 17。

PEsaro# show ip bgp vpnv4 vrf one tags
   Network          Next Hop      In tag/Out tag
Route Distinguisher: 1:1 (one)
   120.0.0.0/24     10.1.1.10       notag/22

!--- VPN label.

   220.0.0.0        0.0.0.0         18/aggregate(one)

PEsaro# show tag forwarding 10.1.1.10
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop
tag    tag or VC   or Tunnel Id      switched   interface
17     17          10.1.1.10/32      0          Se0/1.1    point2point

PEsaro# show ip route 10.1.1.10
Routing entry for 10.1.1.10/32
  Known via "isis", distance 115, metric 30, type level-2
  Redistributing via isis
  Last update from 10.1.1.21 on Serial0/1.1, 00:30:39 ago
  Routing Descriptor Blocks:
  * 10.1.1.21, from 10.10.10.3, via Serial0/1.1
      Route metric is 30, traffic share count is 1

10.1.1.10 由 Pomerol 通告。它是 BGP 创建的主机路由,非常重要,因为它作为远程 VPNv4 前缀的 BGP 下一跳出现,如以上输出所示。PEsaro 向 Pomerol 发送一个带两个标签的数据包;“内部”或“IGP”标签是 17。

Pomerol 路由器

Pomerol# show tag forwarding
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop
tag    tag or VC   or Tunnel Id      switched   interface
16     Pop tag     10.10.10.6/32     0          Se0/0.3    point2point
17     Pop tag     10.1.1.10/32      540        Se0/0.1    point2point
18     18          1:1:220.0.0.0/24  1704       Se0/0.3    point2point

Pomerol# show ip route 10.1.1.10
Routing entry for 10.1.1.10/32
  Known via "connected", distance 0, metric 0 (connected, via interface)
  Redistributing via isis
  Advertised by isis metric 20 metric-type internal level-2
  Routing Descriptor Blocks:
  * directly connected, via Serial0/0.1
      Route metric is 0, traffic share count is 1

注意: 一旦启用 eBGP,便将为 10.1.1.10 创建 /32 路由。

在以上输出中,可以看到 Pomerol 将“弹出”顶部标签(如果它是 17);eBGP VPN 标签将是发送到 AS1 中 Pulligny 的数据包上所剩的唯一标签。

Pulligny 路由器

Pulligny# show tag forwarding
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop
tag    tag or VC   or Tunnel Id      switched   interface
16     Pop tag     10.1.1.9/32       540        Se0/0.2    point2point
17     Pop tag     10.1.1.12/30      0          Se0/0.1    point2point
18     Pop tag     10.10.10.1/32     0          Se0/0.1    point2point
19     16          10.10.10.4/32     0          Se0/0.1    point2point
21     Pop tag     10.1.1.4/30       0          Se0/0.1    point2point
22     16          1:1:120.0.0.0/24  1080       Se0/0.1    point2point

以上输出显示,Pulligny 有 120.0.0.0/24 的本地和传出标记;但是,请考虑以下详细的 TFIB 条目:

Pulligny# show tag forwarding detail | begin 22
22     16          1:1:120.0.0.0/24  1080       Se0/0.1    point2point
        MAC/Encaps=4/12, MTU=1496, Tag Stack{16 23}
        E4118847 0001000000017000
        No output feature configured

以上输出显示,Pulligny 在其 TFIB 中有一个 VPNv4 条目,该条目是必要的,因为在 AS 间链路上只有一个标签。由于 Pomerol 从标签堆栈中弹出标签 17,因此 Pulligny 将收到带标签 22 的数据包。它将弹出标签 22 并推送标签 23 和标签 16。通过查看TFIB和BGP信息(如下所示)您能看到16是IGP标签到佩斯卡拉,并且23是佩斯卡拉为1:1:120.0.0.0/24通告的VPN标签。

Pulligny# show ip bgp vpnv4 all tagging
   Network          Next Hop      In tag/Out tag
Route Distinguisher: 1:1
   120.0.0.0/24     10.10.10.4      22/23
   220.0.0.0        10.1.1.9        notag/18

Pulligny# show tagging for 10.10.10.4
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop
tag    tag or VC   or Tunnel Id      switched   interface
19     16          10.10.10.4/32     0          Se0/0.1    point2point

请注意,Pulligny 将更改它从 PEscara 获得的 VPN 标签,并向 Pomerol 通告一个不同的标签。在这种情况下,它添加1:1:120.0.0.0/24的一个条目到其TFIB。此行为是默认行为,因为只要下一跳发生更改(如在两个 AS 之间的 eBGP 会话中),标签都会更改;因此,ASBR 在其本地 AS 中对于每个 VPN 前缀都有一个 TFIB 条目。以下输出显示,Pauillac 有一个简单的标签交换或弹出,因为 PE 是下一跳(倒数第二跳弹出 [PHP])。

Pauillac# show tag forwarding
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop
tag    tag or VC   or Tunnel Id      switched   interface
16     Pop tag     10.10.10.4/32     111049     Se0/0.3    point2point
17     Pop tag     10.10.10.2/32     94769      Se0/0.1    point2point
18     Pop tag     10.1.1.8/30       0          Se0/0.1    point2point
19     16          10.1.1.9/32       560        Se0/0.1    point2point

当 PEscara 收到标签 23 时,它将认为该标签是 VRF one 的一部分并将执行 IP 查找以将其转发到正确的接口(如以下输出中所示)。

PEscara# show tag forwarding
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop
tag    tag or VC   or Tunnel Id      switched   interface
16     Pop tag     10.1.1.0/30       0          Se0/1.1    point2point
17     Pop tag     10.1.1.4/30       0          Se0/1.1    point2point
18     Pop tag     10.10.10.1/32     0          Se0/1.1    point2point
19     17          10.10.10.2/32     0          Se0/1.1    point2point
21     18          10.1.1.8/30       0          Se0/1.1    point2point
22     19          10.1.1.9/32       0          Se0/1.1    point2point
23     Aggregate   120.0.0.0/24[V]   1040

PEscara# show tag forwarding detail | begin 23
23     Aggregate   120.0.0.0/24[V]   1040
        MAC/Encaps=0/0, MTU=0, Tag Stack{}
        VPN route: one
        Feature Quick flag set

以下输出是使用上述数据包流发送的一个数据包的示例。

Pomerol#
*Mar  1 19:49:59.103: TAG: Se0/0.3: recvd: CoS=0, TTL=255, Tag(s)=17/22
*Mar  1 19:49:59.103: TAG: Se0/0.1: xmit: CoS=0, TTL=254, Tag(s)=22

Pulligny#
*Mar  1 20:21:35: TAG: Se0/0.2: recvd: CoS=0, TTL=254, Tag(s)=22
*Mar  1 20:21:35: TAG: Se0/0.1: xmit: CoS=0, TTL=253, Tag(s)=16/23

Pauillac#
*Mar  1 19:56:39.627: TAG: Se0/0.1: recvd: CoS=0, TTL=253, Tag(s)=16/23
*Mar  1 19:56:39.627: TAG: Se0/0.3: xmit: CoS=0, TTL=252, Tag(s)=23

PEscara#
*Mar  1 19:57:00.463: TAG: Se0/1.1: recvd: CoS=0, TTL=252, Tag(s)=23

ASBR 上的 next-hop-self 命令

如果选择为 ASBR 上的 iBGP 对等体配置 next-hop-self 命令,ASBR 会向 iBGP 对等体通告一个不同的标签(因为当下一跳更改时将通告一个新标签),在其 TFIB 中为远程 AS VPNv4 路由添加一个条目。这将在 ASBR 中创建另外的状态。您不需要将 BGP 创建的主机路由重分配到 IGP。如下所示,现在 ASBR 同时具有针对本地和远程 VPN 前缀的条目。

Pomerol# show tag forwarding
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop
tag    tag or VC   or Tunnel Id      switched   interface
16     Pop tag     10.10.10.6/32     0          Se0/0.3    point2point
17     Pop tag     10.1.1.10/32      540        Se0/0.1    point2point
18     18          1:1:220.0.0.0/24  0          Se0/0.3    point2point
19     22          1:1:120.0.0.0/24  0          Se0/0.1    point2point

故障排除

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


相关信息


Document ID: 5811