Multiprotocol BGP MPLS VPN: Finding Feature Information
Multiprotocol BGP MPLS VPN: Finding Feature Information
Multiprotocol BGP MPLS VPN: Finding Feature Information
A Multiprotocol Label Switching (MPLS) virtual private network (VPN) consists of a set of sites that are
interconnected by means of an MPLS provider core network. At each site, there are one or more customer
edge (CE) devices, which attach to one or more provider edge (PE) devices. PEs use the Multiprotocol-Border
Gateway Protocol (MP-BGP) to dynamically communicate with each other.
Conventional VPNs are created by configuring a full mesh of tunnels or permanent virtual circuits (PVCs) to
all sites in a VPN. This type of VPN is not easy to maintain or expand, because adding a new site requires
changing each edge device in the VPN.
MPLS-based VPNs are created in Layer 3 and are based on the peer model. The peer model enables the service
provider and the customer to exchange Layer 3 routing information. The service provider relays the data
between the customer sites without the customer’s involvement.
MPLS VPNs are easier to manage and expand than conventional VPNs. When a new site is added to an MPLS
VPN, only the service provider’s edge device that provides services to the customer site needs to be updated.
The different parts of the MPLS VPN are described as follows:
• Provider (P) device—Device in the core of the provider network. P devices run MPLS switching, and
do not attach VPN labels to routed packets. The MPLS label in each route is assigned by the provider
edge (PE) device. VPN labels are used to direct data packets to the correct egress device.
• PE device—Device that attaches the VPN label to incoming packets based on the interface or subinterface
on which they are received. A PE device attaches directly to a customer edge (CE) device.
• Customer (C) device—Device in the ISP or enterprise network.
• CE device—Edge device on the network of the ISP that connects to the PE device on the network. A
CE device must interface with a PE device.
How Virtual Routing and Forwarding Tables Work in an MPLS Virtual Private Network
Each virtual private network (VPN) is associated with one or more virtual routing and forwarding (VRF)
instances. A VRF defines the VPN membership of a customer site attached to a PE device. A VRF consists
of the following components:
• An IP routing table
• A derived Cisco Express Forwarding table
• A set of interfaces that use the forwarding table
• A set of rules and routing protocol parameters that control the information that is included in the routing
table
A one-to-one relationship does not necessarily exist between customer sites and VPNs. A site can be a member
of multiple VPNs. However, a site can associate with only one VRF. A site’s VRF contains all the routes
available to the site from the VPNs of which it is a member.
Packet forwarding information is stored in the IP routing table and the Cisco Express Forwarding table for
each VRF. A separate set of routing and Cisco Express Forwarding tables is maintained for each VRF. These
tables prevent information from being forwarded outside a VPN, and they also prevent packets that are outside
a VPN from being forwarded to a device within the VPN.
The IP prefix is a member of the IPv4 address family. After the PE device learns the IP prefix, the PE converts
it into a VPN-IPv4 prefix by combining it with an 8-byte route distinguisher (RD). The generated prefix is a
member of the VPN-IPv4 address family. It uniquely identifies the customer address, even if the customer
site is using globally nonunique (unregistered private) IP addresses. The route distinguisher used to generate
the VPN-IPv4 prefix is specified by a configuration command associated with the virtual routing and forwarding
(VRF) instance on the PE device.
BGP distributes reachability information for VPN-IPv4 prefixes for each VPN. BGP communication occurs
at two levels:
• Within an IP domains, known as an autonomous system (interior BGP [IBGP])
• Between autonomous systems (external BGP [EBGP])
PE-PE or PE-RR (route reflector) sessions are IBGP sessions, and PE-CE sessions are EBGP sessions. In an
Enhanced Interior Gateway Routing Protocol (EIGRP) PE-CE environment, when an EIGRP internal route
is redistributed into BGP by one PE, and then back into EIGRP by another PE, the originating router ID for
the route is set to the router ID of the second PE, replacing the original internal router ID.
BGP propagates reachability information for VPN-IPv4 prefixes among PE devices by means of the BGP
multiprotocol extensions (refer to RFC 2283, Multiprotocol Extensions for BGP-4), which define support for
address families other than IPv4. Using the extensions ensures that the routes for a given VPN are learned
only by other members of that VPN, enabling members of the VPN to communicate with each other.
A one-to-one relationship does not necessarily exist between customer sites and VPNs. A given site can be a
member of multiple VPNs. However, a site can associate with only one VRF. A customer-site VRF contains
all the routes available to the site from the VPNs of which it is a member.
1. enable
2. configure terminal
3. router bgp as-number
4. no bgp default ipv4-unicast
5. neighbor {ip-address | peer-group-name} remote-as as-number
6. neighbor {ip-address | peer-group-name} activate
7. address-family vpnv4 [unicast]
8. neighbor {ip-address | peer-group-name} send-community extended
9. neighbor {ip-address | peer-group-name} activate
10. end
DETAILED STEPS
Example:
Device# configure terminal
Step 3 router bgp as-number Configures a Border Gateway Protocol (BGP) routing process and enters
router configuration mode.
Example: • The as-number argument indicates the number of an autonomous
Device(config)# router bgp 100 system that identifies the device to other BGP devices and tags
the routing information passed along. The range is 0 to 65535.
Private autonomous system numbers that can be used in internal
networks are 64512 to 65535.
Step 4 no bgp default ipv4-unicast (Optional) Disables the IPv4 unicast address family on all neighbors.
• Use the no bgp default ipv4-unicast command if you are using
Example: this neighbor for Multiprotocol Label Switching (MPLS) routes
Device(config-router)# no bgp default only.
ipv4-unicast
Step 5 neighbor {ip-address | peer-group-name} Adds an entry to the BGP or multiprotocol BGP neighbor table.
remote-as as-number
• The ip-address argument specifies the IP address of the neighbor.
Example: • The peer-group-name argument specifies the name of a BGP peer
group.
Device(config-router)# neighbor 10.0.0.1
remote-as 100 • The as-number argument specifies the autonomous system to
which the neighbor belongs.
Step 6 neighbor {ip-address | peer-group-name} Enables the exchange of information with a neighboring BGP device.
activate
• The ip-address argument specifies the IP address of the neighbor.
Example: • The peer-group-name argument specifies the name of a BGP peer
group.
Device(config-router)# neighbor 10.0.0.1
activate
Step 8 neighbor {ip-address | peer-group-name} Specifies that a communities attribute should be sent to a BGP neighbor.
send-community extended
• The ip-address argument specifies the IP address of the
BGP-speaking neighbor.
Example:
• The peer-group-name argument specifies the name of a BGP peer
Device(config-router-af)# neighbor
10.0.0.1 send-community extended group.
Step 9 neighbor {ip-address | peer-group-name} Enables the exchange of information with a neighboring BGP device.
activate
• The ip-address argument specifies the IP address of the neighbor.
Example: • The peer-group-name argument specifies the name of a BGP peer
group.
Device(config-router-af)# neighbor
10.0.0.1 activate
Example:
Device(config-router-af)# end
Troubleshooting Tips
You can enter a show ip bgp neighbor command to verify that the neighbors are up and running. If this
command is not successful, enter a debug ip bgp ip-address events command, where ip-address is the IP
address of the neighbor.
1. enable
2. configure terminal
3. router bgp as-number
4. address-family ipv4 [multicast | unicast | vrf vrf-name]
5. neighbor {ip-address | peer-group-name} remote-as as-number
6. neighbor {ip-address | peer-group-name} activate
7. exit-address-family
8. end
DETAILED STEPS
Example:
Device# configure terminal
Step 3 router bgp as-number Configures a Border Gateway Protocol (BGP) routing process and enters
router configuration mode.
Example: • The as-number argument indicates the number of an autonomous
Device(config)# router bgp 100 system that identifies the device to other BGP devices 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 | Specifies the IPv4 address family type and enters address family
vrf vrf-name] configuration mode.
• The multicast keyword specifies IPv4 multicast address prefixes.
Example:
• The unicast keyword specifies IPv4 unicast address prefixes.
Device(config-router)# address-family
ipv4 vrf vpn1 • 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 neighbor {ip-address | peer-group-name} Enables the exchange of information with a neighboring BGP device.
activate
• The ip-address argument specifies the IP address of the neighbor.
Example: • The peer-group-name argument specifies the name of a BGP peer
group.
Device(config-router-af)# neighbor
10.0.0.1 activate
Example:
Device(config-router-af)#
exit-address-family
Example:
Device(config-router)# end
SUMMARY STEPS
1. show ip vrf
DETAILED STEPS
show ip vrf
Displays the set of defined VRF instances and associated interfaces. The output also maps the VRF instances to the
configured route distinguisher.
SUMMARY STEPS
1. enable
2. ping [protocol] {host-name | system-address}
3. trace [protocol] [destination]
4. show ip route [ip-address [mask] [longer-prefixes]] | protocol [process-id]] | [list [access-list-name |
access-list-number]
DETAILED STEPS
Step 1 enable
Enables privileged EXEC mode.
Step 4 show ip route [ip-address [mask] [longer-prefixes]] | protocol [process-id]] | [list [access-list-name | access-list-number]
Displays the current state of the routing table. Use the ip-address argument to verify that CE1 has a route to CE2. Verify
the routes learned by CE1. Make sure that the route for CE2 is listed.
Verifying That the Local and Remote CE Devices Are in the PE Routing Table
SUMMARY STEPS
1. enable
2. show ip route vrf vrf-name [prefix]
3. show ip cef vrf vrf-name [ip-prefix]
DETAILED STEPS
Step 1 enable
Enables privileged EXEC mode.
Additional References
Related Documents
Description of commands associated with MPLS and Cisco IOS Multiprotocol Label Switching Command
MPLS applications Reference
Configuring MPLS virtual private networks “MPLS Virtual Private Networks” module in the
MPLS Layer 3 VPNs Configuration Guide
RFC Title
RFC 2283 Multiprotocol Extensions for BGP-4
Technical Assistance
Description Link
The Cisco Support and Documentation website http://www.cisco.com/cisco/web/support/index.html
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.