MPLS VPN eBGP Multipath Support for CSC and Inter-AS MPLS VPNs

The MPLS VPN eBGP Multipath Support for CSC and Inter-AS MPLS VPNs feature enables you to configure external Border Gateway Protocol (eBGP) multipath with IPv4 labels. This creates an entry in the Multiprotocol Label Switching (MPLS) forwarding table with label information for each outgoing path installed in the routing table thereby allowing redundant connectivity and load balancing. Without this feature, the MPLS forwarding table contains the labels only for the BGP best path even though the routing table has more than one path for the prefix.

Prerequisites for MPLS VPN eBGP Multipath Support for CSC and Inter-AS MPLS VPNs

Ensure that your Multiprotocol Label Switching (MPLS) virtual private network (VPN) network, including MPLS VPN interautonomous system (Inter-AS) or Carrier Supporting Carrier (CSC), is configured and working properly.

Restrictions for MPLS VPN eBGP Multipath Support for CSC and Inter-AS MPLS VPNs

The MPLS VPN eBGP Multipath Support for CSC and Inter-AS MPLS VPNs feature is not supported on Multiprotocol Label Switching (MPLS) virtual private network (VPN) interautonomous system (Inter-AS) with Autonomous System Boundary Routers (ASBRs) that exchange VPNv4 routes.

When you configure static routes in an MPLS or MPLS virtual private network (VPN) environment, some variations of the ip route and ip route vrf commands are not supported. These variations of the commands are not supported in Cisco software releases that support the Tag Forwarding Information Base (TFIB. The TFIB cannot resolve prefixes when the recursive route over which the prefixes travel disappears and then reappears. However, the command variations are supported in Cisco software releases that support the MPLS Forwarding Infrastructure (MFI). Use the following guidelines when configuring static routes.

Supported Static Routes in an MPLS Environment

The following ip route command is supported when you configure static routes in an MPLS environment:

  • ip route destination-prefix mask interface next-hop-address

The following ip route commands are supported when you configure static routes in an MPLS environment and configure load sharing with static nonrecursive routes and a specific outbound interface:

  • ip route destination-prefix mask interface1 next-hop1

  • ip route destination-prefix mask interface2 next-hop2

Unsupported Static Routes in an MPLS Environment That Uses the TFIB

The following ip route command is not supported when you configure static routes in an MPLS environment:

  • ip route destination-prefix mask next-hop-address

The following ip route command is not supported when you configure static routes in an MPLS VPN environment and enable load sharing where the next hop can be reached through two paths:

  • ip route destination-prefix mask next-hop-address

The following ip route command is not supported when you configure static routes in an MPLS VPN environment and enable load sharing where the destination can be reached through two next hops:

  • ip route destination-prefix mask next-hop1

  • ip route destination-prefix mask next-hop2

Use the interface and next-hop arguments when specifying static routes.

Supported Static Routes in an MPLS VPN Environment

The following ip route vrf commands are supported when you configure static routes in an MPLS VPN environment, and the next hop and interface are associated with the same virtual routing and forwarding (VRF) instance:

  • ip route vrf vrf-name destination-prefix mask next-hop-address

  • ip route vrf vrf-name destination-prefix mask interface next-hop-address

  • ip route vrf vrf-name destination-prefix mask interface1 next-hop1

  • ip route vrf vrf-name destination-prefix mask interface2 next-hop2

The following ip route vrf commands are supported when you configure static routes in an MPLS VPN environment, and the next hop is in the global table in the MPLS cloud in the global routing table. For example, these commands are supported when the next hop is pointing to the internet gateway.

  • ip route vrf vrf-name destination-prefix mask next-hop-address global

  • ip route vrf vrf-name destination-prefix mask interface next-hop-address (This command is supported when the next hop and the interface are in the core.)

The following ip route commands are supported when you configure static routes in an MPLS VPN environment and enable load sharing with static nonrecursive routes and a specific outbound interfaces:

  • ip route destination-prefix mask interface1 next-hop1

  • ip route destination-prefix mask interface2 next-hop2

Unsupported Static Routes in an MPLS VPN Environment That Uses the TFIB

The following ip route command is not supported when you configure static routes in an MPLS VPN environment, the next hop is in the global table in the MPLS cloud within the core, and you enable load sharing where the next hop can be reached through two paths:

  • ip route vrf destination-prefix mask next-hop-address global

The following ip route commands are not supported when you configure static routes in an MPLS VPN environment, the next hop is in the global table in the MPLS cloud within the core, and you enable load sharing where the destination can be reached through two next hops:

  • ip route vrf destination-prefix mask next-hop1 global

  • ip route vrf destination-prefix mask next-hop2 global

The following ip route vrf commands are not supported when you configure static routes in an MPLS VPN environment, and the next hop and interface are in the same VRF:

  • ip route vrf vrf-name destination-prefix mask next-hop1

  • ip route vrf vrf-name destination-prefix mask next-hop2

Supported Static Routes in an MPLS VPN Environment Where the Next Hop Resides in the Global Table on the CE Device

The following ip route vrf command is supported when you configure static routes in an MPLS VPN environment, and the next hop is in the global table on the customer edge (CE) side. For example, the following command is supported when the destination-prefix is the CE device’s loopback address, as in external Border Gateway Protocol (eBGP) multihop cases.

  • ip route vrf vrf-name destination-prefix mask interface next-hop-address

The following ip route commands are supported when you configure static routes in an MPLS VPN environment, the next hop is in the global table on the CE side, and you enable load sharing with static nonrecursive routes and a specific outbound interfaces:

  • ip route destination-prefix mask interface1 nexthop1

  • ip route destination-prefix mask interface2 nexthop2

Information About MPLS VPN eBGP Multipath Support for CSC and Inter-AS MPLS VPNs

Overview of MPLS VPN eBGP Multipath Support for CSC and Inter-AS MPLS VPNs

When a device learns two identical external Border Gateway Protocol (eBGP) paths for a prefix from a neighboring autonomous system, it chooses the path with the lower route ID as the best path. This best path is installed in the IP routing table. You can enable eBGP multipath, which installs multiple paths in the IP routing table (instead of picking one best path) when the eBGP paths are learned from a neighboring autonomous system.

During packet switching, depending on the switching mode, either per-packet or per-destination load sharing is performed among the multiple paths. The maximum-paths router configuration command controls the number of paths allowed. By default, BGP installs only one path to the IP routing table.

How to Configure MPLS VPN eBGP Multipath Support for CSC and Inter-AS MPLS VPNs

Configuring MPLS VPN eBGP Multipath Load Sharing with Inter-AS MPLS VPNs

Perform this task on the Autonomous System Boundary Routers (ASBRs) to configure external Border Gateway Protocol (eBGP) multipath for Multiprotocol Label Switching (MPLS) virtual private network (VPN) interautonomous systems with ASBRs exchanging IPv4 routes and MPLS labels.

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. router bgp as-number
  4. neighbor {ip-address | peer-group-name} remote-as as-number
  5. address-family ipv4 [multicast | unicast | vrf vrf-name]
  6. maximum-paths number-paths
  7. neighbor {ip-address | peer-group-name} activate
  8. neighbor ip-address send-label
  9. exit-address-family
  10. end

DETAILED STEPS

  Command or Action Purpose

Step 1

enable

Example:


Device> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

configure terminal

Example:


Device# configure terminal

Enters global configuration mode.

Step 3

router bgp as-number

Example:


Device(config)# router bgp 100

Configures a BGP routing process and places the device in router configuration mode.

  • The as-number argument indicates the number of an autonomous system that identifies the device to other BGP routers and tags the routing information passed along. The range is 0 to 65535. Private autonomous system numbers that can be used in internal networks range from 64512 to 65535.

Step 4

neighbor {ip-address | peer-group-name} remote-as as-number

Example:


Device(config-router)# neighbor 10.0.0.1 remote-as 200

Adds an entry to the BGP or multiprotocol BGP neighbor table.

  • The ip-address argument specifies the IP address of the neighbor.

  • The peer-group-name argument specifies the name of a BGP peer group.

  • The as-number argument specifies the autonomous system to which the neighbor belongs.

Step 5

address-family ipv4 [multicast | unicast | vrf vrf-name]

Example:


Device(config-router)# address-family ipv4 

Enters address family configuration mode for configuring routing sessions such as BGP that use standard IPv4 address prefixes.

  • The multicast keyword specifies IPv4 multicast address prefixes.

  • The unicast keyword specifies IPv4 unicast address prefixes.

  • The vrf vrf-name keyword and argument specify the name of the VRF to associate with subsequent IPv4 address family configuration mode commands.

Step 6

maximum-paths number-paths

Example:


Device(config-router-af)# maximum-paths 2

(Optional) Controls the maximum number of parallel routes an IP routing protocol can support.

  • The number-paths argument specifies the maximum number of parallel routes an IP routing protocol installs in a routing table.

Step 7

neighbor {ip-address | peer-group-name} activate

Example:


Device(config-router-af)# neighbor 10.0.0.1 activate

Enables the exchange of information with a neighboring device.

  • The ip-address argument specifies the IP address of the neighbor.

  • The peer-group-name argument specifies the name of a BGP peer group.

Step 8

neighbor ip-address send-label

Example:


Device(config-router-af)# neighbor 10.0.0.1 send-label

Enables a BGP device to send MPLS labels with BGP routes to a neighboring BGP device.

  • The ip-address argument specifies the IP address of the neighboring device.

Step 9

exit-address-family

Example:


Device(config-router-af)# exit-address-family

Exits address family configuration mode.

Step 10

end

Example:


Device(config-router-af)# end

(Optional) Exits to privileged EXEC mode.

Configuring MPLS VPN eBGP Multipath Load Sharing with Carrier Supporting Carrier on the CSC-PE Devices

Perform this task to configure external Border Gateway Protocol (eBGP) multipath load sharing on the carrier supporting carrier-provider edge (CSC-PE) devices that distribute BGP routes with Multiprotocol Label Switching (MPLS) labels.

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. router bgp as-number
  4. address-family ipv4 [multicast | unicast | vrf vrf-name]
  5. maximum-paths number-paths
  6. neighbor {ip-address | peer-group-name} remote-as as-number
  7. neighbor {ip-address | peer-group-name} activate
  8. neighbor ip-address as-override
  9. neighbor ip-address send-label
  10. exit-address-family
  11. end

DETAILED STEPS

  Command or Action Purpose

Step 1

enable

Example:


Device> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

configure terminal

Example:


Device# configure terminal

Enters global configuration mode.

Step 3

router bgp as-number

Example:


Device(config)# router bgp 100

Configures a BGP routing process and enters router configuration mode.

  • The as-number argument indicates the number of an autonomous system that identifies the device to other BGP routers and tags the routing information passed along. The range is 0 to 65535. Private autonomous system numbers that can be used in internal networks range from 64512 to 65535.

Step 4

address-family ipv4 [multicast | unicast | vrf vrf-name]

Example:


Device(config-router)# address-family ipv4 vrf vpn1

Specifies the IPv4 address family type and enters address family configuration mode.

  • The multicast keyword specifies IPv4 multicast address prefixes.

  • The unicast keyword specifies IPv4 unicast address prefixes.

  • The vrf vrf-name keyword and argument specify the name of the VRF to associate with subsequent IPv4 address family configuration mode commands.

Step 5

maximum-paths number-paths

Example:


Device(config-router-af)# maximum-paths 2

(Optional) Controls the maximum number of parallel routes an IP routing protocol can support.

  • On the CSC-PE device, this command is enabled in address family configuration mode.

  • The number-paths argument specifies the maximum number of parallel routes an IP routing protocol installs in a routing table.

Step 6

neighbor {ip-address | peer-group-name} remote-as as-number

Example:


Device(config-router-af)# neighbor 10.0.0.1 remote-as 200

Adds an entry to the BGP or multiprotocol BGP neighbor table.

  • The ip-address argument specifies the IP address of the neighbor.

  • The peer-group-name argument specifies the name of a BGP peer group.

  • The as-number argument specifies the autonomous system to which the neighbor belongs.

Step 7

neighbor {ip-address | peer-group-name} activate

Example:


Device(config-router-af)# neighbor 10.0.0.1 activate

Enables the exchange of information with a neighboring BGP device.

  • The ip-address argument specifies the IP address of the neighbor.

  • The peer-group-name argument specifies the name of a BGP peer group.

Step 8

neighbor ip-address as-override

Example:


Device(config-router-af)# neighbor 10.0.0.1 as-override

Configures a PE device to override the autonomous system number (ASN) of a site with the ASN of a provider.

  • The ip-address argument specifies the IP address of the device that is to be overridden with the ASN provided.

Step 9

neighbor ip-address send-label

Example:


Device(config-router-af)# neighbor 10.0.0.1 send-label

Enables a BGP device to send MPLS labels with BGP routes to a neighboring BGP device.

  • The ip-address argument specifies the IP address of the neighboring device.

Step 10

exit-address-family

Example:


Device(config-router-af)# exit-address-family

Exits address family configuration mode.

Step 11

end

Example:


Device(config-router)# end

(Optional) Exits to privileged EXEC mode.

Configuring MPLS VPN eBGP Multipath Load Sharing with Carrier Supporting Carrier on the CSC-CE Devices

Perform this task to configure external Border Gateway Protocol (eBGP) multipath load sharing on the carrier supporting carrier-customer edge (CSC-CE) devices.

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. router bgp as-number
  4. maximum-paths number-paths
  5. address-family ipv4 [multicast | unicast | vrf vrf-name]
  6. redistribute protocol
  7. neighbor {ip-address | peer-group-name} remote-as as-number
  8. neighbor {ip-address | peer-group-name} activate
  9. neighbor ip-address send-label
  10. exit-address-family
  11. end

DETAILED STEPS

  Command or Action Purpose

Step 1

enable

Example:


Device> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

configure terminal

Example:


Device# configure terminal

Enters global configuration mode.

Step 3

router bgp as-number

Example:


Device(config)# router bgp 200

Configures a BGP routing process and enters router configuration mode.

  • The as-number argument indicates the number of an autonomous system that identifies the device to other BGP routers and tags the routing information passed along. The range is 0 to 65535. Private autonomous system numbers that can be used in internal networks range from 64512 to 65535.

Step 4

maximum-paths number-paths

Example:


Device(config-router)# maximum-paths 2

(Optional) Controls the maximum number of parallel routes an IP routing protocol can support.

  • On the CSC-CE routers, this command is issued in router configuration mode.

  • The number-paths argument specifies the maximum number of parallel routes an IP routing protocol installs in a routing table.

Step 5

address-family ipv4 [multicast | unicast | vrf vrf-name]

Example:


Device(config-router)# address-family ipv4 

Specifies the IPv4 address family type and enters address family configuration mode.

  • The multicast keyword specifies IPv4 multicast address prefixes.

  • The unicast keyword specifies IPv4 unicast address prefixes.

  • The vrf vrf-name keyword and argument specify the name of the VRF to associate with subsequent IPv4 address family configuration mode commands.

Step 6

redistribute protocol

Example:


Device(config-router-af)# redistribute static

Redistributes routes from one routing domain into another routing domain.

  • The protocol argument specifies the source protocol from which routes are being redistributed. It can be one of the following keywords: bgp , connected , egp , igrp , isis , mobile , ospf , rip , and static [ip] .
    • The static [ip] keyword redistributes IP static routes.

Note

 

The optional ip keyword is used when you redistribute static routes into Intermediate System- to-Intermediate System (IS-IS).

    • The connected keyword refers to routes that are established automatically when IP is enabled on an interface.
    • For routing protocols such as Open Shortest Path First (OSPF) and Intermediate System-to-Intermediate System (IS-IS), these routes are redistributed as external to the autonomous system.

Step 7

neighbor {ip-address | peer-group-name} remote-as as-number

Example:


Device(config-router-af)# neighbor 10.0.0.2 remote-as 100

Adds an entry to the BGP or multiprotocol BGP neighbor table.

  • The ip-address argument specifies the IP address of the neighbor.

  • The peer-group-name argument specifies the name of a BGP peer group.

  • The as-number argument specifies the autonomous system to which the neighbor belongs.

Step 8

neighbor {ip-address | peer-group-name} activate

Example:


Device(config-router-af)# neighbor 10.0.0.2 activate

Enables the exchange of information with a neighboring BGP device.

  • The ip-address argument specifies the IP address of the neighbor.

  • The peer-group-name argument specifies the name of a BGP peer group.

Step 9

neighbor ip-address send-label

Example:


Device(config-router-af)# neighbor 10.0.0.2 send-label

Enables a BGP device to send Multiprotocol Label Switching (MPLS) labels with BGP routes to a neighboring BGP device.

  • The ip-address argument specifies the IP address of the neighboring device.

Step 10

exit-address-family

Example:


Device(config-router-af)# exit-address-family

Exits address family configuration mode.

Step 11

end

Example:


Device(config-router)# end

(Optional) Exits to privileged EXEC mode.

Configuration Examples for MPLS VPN eBGP Multipath Support for CSC and Inter-AS MPLS VPNs

Example: Configuring MPLS VPN eBGP Multipath Load Sharing with MPLS VPN Inter-AS

The following example shows how to configure external Border Gateway Protocol (eBGP) multipath for Multiprotocol Label Switching (MPLS) virtual private network (VPN) interautonomous systems with Autonomous System Boundary Routers (ASBRs) exchanging IPv4 routes and MPLS labels:


Device# configure terminal       
Device(config)# router bgp 100
Device(config-router)# neighbor 10.0.0.1 remote-as 200
Device(config-router)# address-family ipv4
Device(config-router-af)# maximum-paths 2
Device(config-router-af)# neighbor 10.0.0.1 activate
Device(config-router-af)# neighbor 10.0.0.1 send-label
Device(config-router-af)# exit-address-family 
Device(config-router-af)# end

Example: Configuring MPLS VPN eBGP Multipath Load Sharing with MPLS VPN Carrier Supporting Carrier on the CSC-PE Devices

The following example shows how to configure external Border Gateway Protocol (eBGP) multipath load sharing on the carrier supporting carrier-provider edge (CSC-PE) devices that distribute BGP routes with Multiprotocol Label Switching (MPLS) labels:


Device# configure terminal
Device(config)# router bgp 100
Device(config-router)# address-family ipv4 vrf vpn1
Device(config-router-af)# maximum-paths 2
Device(config-router-af)# neighbor 10.0.0.1 remote-as 200
Device(config-router-af)# neighbor 10.0.0.1 activate
Device(config-router-af)# neighbor 10.0.0.1 as-override
Device(config-router-af)# neighbor 10.0.0.1 send-label
Device(config-router-af)# exit-address-family
Device(config-router)# end

Example: Configuring MPLS VPN eBGP Multipath Load Sharing with MPLS VPN Carrier Supporting Carrier on the CSC-CE Devices

The following example shows how to configure external Border Gateway Protocol (eBGP) multipath load sharing on the carrier supporting carrier-customer edge (CSC-CE) devices:


Device# configure terminal
Device(config)# router bgp 200
Device(config-router)# maximum-paths 2
Device(config-router)# address-family ipv4 
Device(config-router-af)# redistribute static
Device(config-router-af)# neighbor 10.0.0.2 remote-as 100
Device(config-router-af)# neighbor 10.0.0.2 activate
Device(config-router-af)# neighbor 10.0.0.2 send-label
Device(config-router-af)# exit-address-family
Device(config-router)# end 

Additional References

Related Documents

Related Topic

Document Title

Cisco IOS commands

Cisco IOS Master Command List, All Releases

MPLS commands

Cisco IOS Multiprotocol Label Switching Command Reference

Configuring MPLS VPN CSC with BGP

“MPLS VPN Carrier Supporting Carrier with BGP” module in the MPLS: Layer 3 VPNs: Inter-AS and CSC Configuration Guide

Configuring BGP

“Configuring BGP” module in the IP Routing: BGP Configuration Guide

Configuring BGP Multipath Load Sharing for Both eBGP and iBGP in an MPLS VPN

“BGP Multipath Load Sharing for Both eBGP and iBGP in an MPLS VPN” module in the IP Routing: BGP Configuration Guide

RFCs

RFC

Title

RFC 1164

Application of the Border Gateway Protocol in the Internet

RFC 1171

A Border Gateway Protocol 4

RFC 1700

Assigned Numbers

RFC 1966

BGP Route Reflection: An Alternative to Full Mesh IBGP

RFC 2283

Multiprotocol Extensions for BGP-4

RFC 2373

IP Version 6 Addressing Architecture

RFC 2547

BGP/MPLS VPNs

RFC 2842

Capabilities Advertisement with BGP-4

RFC 2858

Multiprotocol Extensions for BGP-4

RFC 3107

Carrying Label Information in BGP-4

Technical Assistance

Description

Link

The Cisco Support and Documentation website provides online resources to download documentation, software, and tools. Use these resources to install and configure the software and to troubleshoot and resolve technical issues with Cisco products and technologies. Access to most tools on the Cisco Support and Documentation website requires a Cisco.com user ID and password.

http://www.cisco.com/cisco/web/support/index.html

Feature Information for MPLS VPN eBGP Multipath Support for CSC and Inter-AS MPLS VPNs

The following table provides release information about the feature or features described in this module. This table lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.
Table 1. Feature Information for MPLS VPN eBGP Multipath Support for CSC and Inter-AS MPLS VPNs

Feature Name

Releases

Feature Information

MPLS VPN eBGP Multipath Support for CSC and Inter-AS MPLS VPNs

12.0(27)S

12.2(30)S

12.2(33)SRA

12.2(33)SXH

Cisco IOS XE Release 2.2

The MPLS VPN eBGP Multipath Support for CSC and Inter-AS MPLS VPNs feature installs multiple paths in the IP routing table when the eBGP paths are learned from a neighboring Autonomous System (AS), instead of picking one best path.

In Cisco IOS Release 12.0(27)S, this feature was introduced.

In Cisco IOS Release 12.2(30)S, 12.2(33)SRA, and 12.2(33)SXH, this feature was integrated.

In Cisco IOS XE Release 2.2, this feature was implemented on the Cisco ASR 1000 Series Routers.

No commands were introduced or modified.