Perform this task to implement VPLS autodiscovery of each provider edge (PE) router that is a member of a specific VPLS. In Cisco IOS XE Release 2.6, the BGP L2VPN address family was introduced with a separate L2VPN RIB that contains endpoint provisioning information. BGP learns the endpoint provisioning information from the L2VPN database, which is updated each time any Layer 2 (L2) virtual forwarding instance (VFI) is configured. When BGP distributes the endpoint provisioning information in an update message to all its BGP neighbors, the endpoint information is used to set up a pseudowire mesh to support L2VPN-based services.
BGP-based VPLS autodiscovery eliminates the need to manually provision a VPLS neighbor. After a PE router configures itself to be a member of a particular VPLS, information needed to set up connections to remote routers in the same VPLS is distributed by a discovery process. When the discovery process is complete, each member of the VPLS will have the information needed to set up VPLS pseudowires to form the full mesh of pseudowires needed for the VPLS.
This task is configured at router N-PE3 in the figure below and must be repeated at routers N-PE1 and N-PE2 with the appropriate changes such as different IP addresses. For a full configuration of these routers, see the figure below.
Figure 1 |
Network Diagram for BGP Autodiscovery Using the L2VPN Address Family |
MISSING ILLO. EMBEDDED, NOT REFERENCED.
In this task, the PE router N-PE3 in the figure above is configured with a Layer 2 router ID, a VPN ID, a VPLS ID, and is enabled to automatically discover other PE routers that are part of the same VPLS domain. A BGP session is created to activate BGP neighbors under the L2VPN address family. Finally, two optional show commands are entered to verify the steps in the task.
Before You Begin
This task assumes that MPLS is configured with VPLS options. For more details, see the "VPLS Autodiscovery: BGP Based" feature.
SUMMARY STEPS
1. enable
2. configure terminal
3. l2 router-id ip-address
4. l2 vfi vfi-name autodiscovery
5. vpn id vpn-id
6. vpls-id vpls-id
7. exit
8. Repeat Step 4 through Step 6 to configure other L2 VFIs and associated VPN and VPLS IDs.
9. router bgp autonomous-system-number
10. no bgp default ipv4-unicast
11. bgp log-neighbor-changes
12. bgp update-delay seconds
13. neighbor {ip-address| peer-group-name} remote-as autonomous-system-number
14. neighbor {ip-address| peer-group-name} update-source interface-type interface-number
15. Repeat Step 13 and Step 14 to configure other BGP neighbors.
16. address-family l2vpn [vpls]
17. neighbor ip-address activate
18. neighbor {ip-address| peer-group-name} send-community[both| standard| extended]
19. Repeat Step 17 and Step 18 to activate other BGP neighbors under L2VPN address family.
20. end
21. show vfi
22. show ip bgp l2vpn vpls {all | rd vpn-rd}
DETAILED STEPS
|
Command or Action |
Purpose |
|
enable
Example:
Router> enable
|
Enables privileged EXEC mode.
-
Enter your password if prompted.
|
|
configure terminal
Example:
Router# configure terminal
|
Enters global configuration mode. |
|
l2 router-id ip-address
Example:
Router(config)# l2 router-id 10.1.1.3
|
Specifies a router ID (in IP address format) for the PE router to use with VPLS autodiscovery pseudowires.
-
In this example, the L2 router ID is defined as 10.1.1.3.
|
|
l2 vfi vfi-name autodiscovery
Example:
Router(config)# l2 vfi customerA autodiscovery
|
Creates an L2 VFI, enables the VPLS PE router to automatically discover other PE routers that are part of the same VPLS domain, and enters L2 VFI autodiscovery configuration mode.
-
In this example, the L2 VFI named customerA is created.
|
|
vpn id vpn-id
Example:
Router(config-vfi)# vpn id 100
|
Specifies a VPN ID.
-
Use the same VPN ID for the PE routers that belong to the same VPN. Make sure that the VPN ID is unique for each VPN in the service provider network.
-
Use the vpn-id argument to specify a number in the range from 1 to 4294967295.
-
In this example, a VPN ID of 100 is specified.
|
|
vpls-id vpls-id
Example:
Router(config-vfi)# vpls-id 65000:100
|
(Optional) Specifies a VPLS ID.
-
The VPLS ID is an identifier that is used to identify the VPLS domain. This command is optional because a default VPLS ID is automatically generated using the BGP autonomous system number and the VPN ID configured for the VFI. Only one VPLS ID can be configured per VFI, and the same VPLS ID cannot be configured in multiple VFIs on the same router.
-
In this example, a VPLS ID of 65000:100 is specified.
|
|
exit
Example:
Router(config-vfi)# exit
|
Exits L2 VFI autodiscovery configuration mode and returns to global configuration mode. |
|
Repeat Step 4 through Step 6 to configure other L2 VFIs and associated VPN and VPLS IDs.
|
-- |
|
router bgp autonomous-system-number
Example:
Router(config)# router bgp 65000
|
Enters router configuration mode for the specified routing process. |
|
no bgp default ipv4-unicast
Example:
Router(config-router)# no bgp default ipv4-unicast
|
Disables the IPv4 unicast address family for the BGP routing process.
Note |
Routing information for the IPv4 unicast address family is advertised by default for each BGP routing session configured with the neighbor remote-as router configuration command unless you configure the no bgp default ipv4-unicastrouter configuration command before configuring the neighbor remote-as command. Existing neighbor configurations are not affected. |
|
|
bgp log-neighbor-changes
Example:
Router(config-router)# bgp log-neighbor-changes
|
Enables logging of BGP neighbor resets. |
|
bgp update-delay seconds
Example:
Router(config-router)# bgp update-delay 1
|
Sets the maximum initial delay period before a BGP-speaking networking device sends its first updates.
-
Use the seconds argument to set the delay period.
|
|
neighbor {ip-address| peer-group-name} remote-as autonomous-system-number
Example:
Router(config-router)# neighbor 10.10.10.1 remote-as 65000
|
Adds the IP address or peer group name of the neighbor in the specified autonomous system to the IPv4 multiprotocol BGP neighbor table of the local router.
-
If the autonomous-system-number argument matches the autonomous system number specified in the router bgp command, the neighbor is an internal neighbor.
-
If the autonomous-system-number argument does not match the autonomous system number specified in the router bgp command, the neighbor is an external neighbor.
-
In this example, the neighbor at 10.10.10.1 is an internal BGP neighbor.
|
|
neighbor {ip-address| peer-group-name} update-source interface-type interface-number
Example:
Router(config-router)# neighbor 10.10.10.1 update-source loopback 1
|
(Optional) Configures a router to select a specific source or interface to receive routing table updates.
-
This example uses a loopback interface. The advantage to this configuration is that the loopback interface is not as susceptible to the effects of a flapping interface.
|
|
Repeat Step 13 and Step 14 to configure other BGP neighbors.
|
-- |
|
address-family l2vpn [vpls]
Example:
Router(config-router)# address-family l2vpn vpls
|
Specifies the L2VPN address family and enters address family configuration mode.
-
The optional vpls keyword specifies that VPLS endpoint provisioning information is to be distributed to BGP peers.
-
In this example, an L2VPN VPLS address family session is created.
|
|
neighbor ip-address activate
Example:
Router(config-router-af)# neighbor 10.10.10.1 activate
|
Enables the neighbor to exchange information for the L2VPN VPLS address family with the local router.
Note |
If you have configured a BGP peer group as a neighbor, you do not use this step. BGP peer groups are activated when a BGP parameter is configured. For example, the neighbor send-community command in the next step will automatically activate a peer group. |
|
|
neighbor {ip-address| peer-group-name} send-community[both| standard| extended]
Example:
Router(config-router-af)# neighbor 10.10.10.1 send-community extended
|
Specifies that a communities attribute should be sent to a BGP neighbor.
-
In this example, an extended communities attribute is sent to the neighbor at 10.10.10.1.
|
|
Repeat Step 17 and Step 18 to activate other BGP neighbors under L2VPN address family.
|
-- |
|
end
Example:
Router(config-router-af)# end
|
Exits address family configuration mode and returns to privileged EXEC mode. |
|
show vfi
Example:
Router# show vfi
|
(Optional) Displays information about the configured VFI instances. |
|
show ip bgp l2vpn vpls {all | rd vpn-rd}
Example:
Router# show ip bgp l2vpn vpls all
|
(Optional) Displays information about the L2 VPN VPLS address family. |
Examples
The following is sample output from the show vfi command that shows two VFIs, CustomerA and CustomerB, with their associated VPN and VPLS IDs:
Router# show vfi
Legend: RT=Route-target, S=Split-horizon, Y=Yes, N=No
VFI name: customerA, state: down, type: multipoint
VPN ID: 100, VPLS-ID: 65000:100
RD: 65000:100, RT: 65000:100
Local attachment circuits:
Neighbors connected via pseudowires:
Peer Address VC ID Discovered Router ID S
10.10.10.1 100 10.10.10.99 Y
VFI name: customerB, state: down, type: multipoint
VPN ID: 200, VPLS-ID: 65000:200
RD: 65000:200, RT: 65000:200
Local attachment circuits:
Neighbors connected via pseudowires:
Peer Address VC ID Discovered Router ID S
10.10.10.3 200 10.10.10.98 Y
The following is sample output from the show ip bgp l2vpn vpls all command that shows two VFIs identified by their VPN route distinguisher:
Router# show ip bgp l2vpn vpls all
BGP table version is 5, local router ID is 10.10.10.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 65000:100
*> 65000:100:10.10.10.1/96
0.0.0.0 32768 ?
*>i65000:100:192.168.1.1/96
10.10.10.2 0 100 0 ?
Route Distinguisher: 65000:200
*> 65000:200:10.10.10.3/96
0.0.0.0 32768 ?
*>i65000:200:192.168.2.2/96
10.10.10.2 0 100 0 ?