Configure L2VPN Autodiscovery and Signaling

This chapter describes the L2VPN Autodiscovery and Signaling feature which enables the discovery of remote Provider Edge (PE) routers and the associated signaling in order to provision the pseudowires.

L2VPN Autodiscovery and Signaling

Autodiscovery refers to the process of finding the Provider Edge (PE) routers that participates in a given L2VPN instance. One of the protocols used for this is BGP.

Once the PE routers are discovered, pseudowires are signaled and established across each pair of PE routers. Signaling refers to the exchange of Virtual Circuit (VC) labels between the PE routers. The signaling protocol can be either LDP or BGP.

BGP-based VPLS Autodiscovery

VPLS is a multipoint Layer 2 bridging service for which BGP-based autodiscovery is well suited. BGP-based VPLS autodiscovery eliminates the need to manually provision the VPLS neighbors. VPLS autodiscovery enables each VPLS PE router to discover the other provider edge (PE) routers that are part of the same VPLS domain. VPLS Autodiscovery also tracks when PE routers are added to or removed from the VPLS domain. When the discovery process is complete, each PE router has the information required to setup VPLS pseudowires (PWs).

Even when BGP autodiscovery is enabled, pseudowires can be manually configured for VPLS PE routers that are not participating in the autodiscovery process.

BGP-based VPLS Autodiscovery with BGP Signaling

The BGP signaling and autodiscovery scheme have the following components:

  • A means for a PE to learn which remote PEs are members of a given VPLS. This process is known as autodiscovery.

  • A means for a PE to learn the pseudowire label expected by a given remote PE for a given VPLS. This process is known as signaling.

The BGP Network Layer Reachability Information (NLRI) takes care of the above two components simultaneously. The NLRI generated by a given PE contains the necessary information required by any other PE. These components enable the automatic setting up of a full mesh of pseudowires for each VPLS without having to manually configure those pseudowires on each PE.

Figure 1. Discovery and Signaling Attributes

Discovery and Signaling Attributes

Configuring BGP and LDP for BGP-based Autodiscovery

This is the basic BGP and LDP configuration that is required before proceeding to configure BGP-based autodiscovery.

Configuration Example:
Router(config)# interface loopback-interface
Router(config-if)# ipv4 address ipv4-address subnet-mask
Router(config-if)# exit
Router(config)# mpls ldp
Router(config-ldp)# router-id ipv4-address
Router(config-ldp-if)# interface interface-name
Router(config-ldp-if)# exit
Router(config-ldp)# exit
Router(config)# router bgp as-number
Router(config-bgp)# address-family l2vpn vpls-vpws
Router(config-bgp-af)# exit
Router(config-bgp)# neighbor loopback ipv4 address of neighbor
Router(config-bgp-nbr)# remote-as remote-as-number
Router(config-bgp-nbr)# update-source loopback-interface
Router(config-bgp-nbr)# address-family l2vpn vpls-vpws
Running Configuration

The following figure illustrates an example of LDP and BGP network topology that is required for enabling BGP based autodiscovery.

Figure 2. LDP and BGP Configuration Example


Configuration at PE1:


interface Loopback1
	ipv4 address 1.1.1.10 255.255.255.255
!
mpls ldp
	router-id 1.1.1.1
	interface GigabitEthernet0/1/0/0
!
router bgp 120
	address-family l2vpn vpls-vpws
!
	neighbor 2.2.2.20
	remote-as 120
	update-source Loopback1
	address-family l2vpn vpls-vpws
Configuration at PE2:

interface Loopback1
	ipv4 address 2.2.2.20 255.255.255.255
!
mpls ldp
	router-id 2.2.2.2
	interface GigabitEthernt0/1/0/0
!
router bgp 120
	address-family l2vpn vpls-vpws
!
	neighbor 1.1.1.10
	remote-as 120
	update-source Loopback1
	address-family l2vpn vpls-vpws

Configuring BGP-based VPLS Autodiscovery with BGP Signaling

BGP and LDP need to be configured as indicated in the section Configuring BGP and LDP for BGP-based Autodiscovery before proceeding to the configurations in this section.

Configuration Example:
Router(config)# l2vpn
Router(config-l2vpn)# bridge group bridge-group-name
Router(config-l2vpn-bg)# bridge-domain bridge-domain-name
Router(config-l2vpn-bg-bd)# vfi vfi-name
Router(config-l2vpn-bg-bd-vfi)# autodiscovery bgp
Router(config-l2vpn-bg-bd-vfi-ad)# vpn-id vpn-id
Router(config-l2vpn-bg-bd-vfi-ad)# rd auto
Router(config-l2vpn-bg-bd-vfi-ad)# route-target 1.1.1.1:100
Router(config-l2vpn-bg-bd-vfi-ad-sig)# signaling-protocol bgp
Router(config-l2vpn-bg-bd-vfi-ad-sig)# ve-id 1
Running Configuration:
Figure 3. BGP-based VPLS Autodiscovery with BGP signaling


Configuration at PE1:

l2vpn
  bridge group gr1
   bridge-domain bd1
    interface GigabitEthernet0/1/0/1.1
    vfi vf1
    ! AD independent VFI attributes
    vpn-id 100
    ! Auto-discovery attributes
    autodiscovery bgp
    rd auto
    route-target 2.2.2.2:100
    ! Signaling attributes
    signaling-protocol bgp
    ve-id 3
Configuration at PE2:

l2vpn
  bridge group gr1
   bridge-domain bd1
    interface GigabitEthernet0/1/0/2.1
    vfi vf1
    ! AD independent VFI attributes
    vpn-id 100
    ! Auto-discovery attributes
    autodiscovery bgp
    rd auto
    route-target 2.2.2.2:100
    ! Signaling attributes
    signaling-protocol bgp
    ve-id 5

BGP-based VPLS Autodiscovery with LDP Signaling

A PE router advertises an identifier through BGP for each VPLS instance. This identifier is unique within the VPLS instance and acts like a VPLS ID. The identifier enables the PE router receiving the BGP advertisement to identify the VPLS associated with the advertisement and import it to the correct VPLS instance. In this manner, for each VPLS, a PE router learns the other PE routers that are members of the VPLS.

The signaling of pseudowires between provider edge devices, uses targeted LDP sessions to exchange label values and attributes. Forwarding Equivalence Class (FEC) 129 is used for the signaling. The information carried by FEC 129 includes the VPLS ID, the Target Attachment Individual Identifier (TAII) and the Source Attachment Individual Identifier (SAII).

The LDP advertisement also contains the inner label or VPLS label that is expected for the incoming traffic over the pseudowire. This enables the LDP peer to identify the VPLS instance with which the pseudowire is to be associated and the label value that it is expected to use when sending traffic on that pseudowire.

Figure 4. Discovery and Signaling Attributes

Configuring BGP-based VPLS Autodiscovery with LDP Signaling

BGP and LDP need to be configured as indicated in the section Configuring BGP and LDP for BGP-based Autodiscovery before proceeding to the configurations in this section.

Configuration Example:

The below code block shows the basic configuration steps required for BGP-based VPLS autodiscovery with LDP Signaling.

Router(config)# l2vpn
Router(config-l2vpn)# bridge group {bridge group name}
Router(config-l2vpn-bg)# bridge-domain {bridge domain name}
Router(config-l2vpn-bg-bd)# vfi {vfi name}
Router(config-l2vpn-bg-bd-vfi)# autodiscovery bgp
Router(config-l2vpn-bg-bd-vfi-ad)# vpn-id 10
Router(config-l2vpn-bg-bd-vfi-ad)# rd auto
Router(config-l2vpn-bg-bd-vfi-ad)# route-target 1.1.1.1:100
Router(config-l2vpn-bg-bd-vfi-ad)# signaling-protocol ldp
Router(config-l2vpn-bg-bd-vfi-ad-sig)# vpls-id 120:200
Router(config-l2vpn-bg-bd-vfi-ad-sig)# commit
Running Configuration:

The following figure illustrates an example of configuring VPLS with BGP autodiscovery (AD) and LDP Signaling.

Figure 5. VPLS with BGP autodiscovery and LDP signaling

VPLS with BGP autodiscovery and LDP signaling

Configuration at PE1:

l2vpn
  router-id 10.10.10.10
  bridge group bg1
   bridge-domain bd1
    vfi vf1
    vpn-id 100
    autodiscovery bgp
    rd 1:100
    router-target 12:12
    signaling-protocol ldp
       vpls-id 120:200
Configuration at PE2:

l2vpn
  router-id 20.20.20.20
  bridge group bg1
   bridge-domain bd1
    vfi vf1
     vpn-id 100
     autodiscovery bgp
      rd 2:200
      router-target 12:12
      signaling-protocol ldp
       vpls-id 120:100

BGP-based VPWS Autodiscovery

BGP-based autodiscovery is possible even for point-to-point L2VPN services such as VPWS. However, true autodiscovery is not possible in VPWS as it is in VPLS. In VPWS, in order to connect the Customer Edge (CE) routers, an explicit configuration has to be done at each PE. Only the existence of other PEs can be indicated by autodiscovery.

BGP-based VPWS Autodiscovery with BGP Signaling

The two primary functions of the VPWS control plane are: auto-discovery and signaling. Both of these functions are accomplished with a single BGP Update advertisement.

When a VPWS cross-connect is configured with BGP autodiscovery and signaling enabled, BGP distributes NLRI for the cross-connect with the PE as the BGP next-hop and appropriate CE-ID. Additionally, the cross-connect is associated with one or more BGP export Route Targets (RTs) that are also distributed (along with NLRI).

Configuring BGP-based VPWS Autodiscovery with BGP Signaling

BGP and LDP need to be configured as indicated in the section Configuring BGP and LDP for BGP-based Autodiscovery before proceeding to the configurations in this section.

Configuration Example:

The below code block shows the basic configuration steps required for BGP-based VPWS autodiscovery with BGP Signaling.

Router(config)# l2vpn
Router(config-l2vpn)# xconnect group {xconnect group name}
Router(config-l2vpn-xc)# mp2mp {instance name}
Router(config-l2vpn-xc-mp2mp)# vpn-id {vpn-id}
Router(config-l2vpn-xc-mp2mp)# l2-encapsulation vlan
Router(config-l2vpn-xc-mp2mp)# autodiscovery bgp
Router(config-l2vpn-xc-mp2mp-ad)# rd auto
Router(config-l2vpn-xc-mp2mp-ad)# route-target 2.2.2.2:100
Router(config-l2vpn-xc-mp2mp-ad)# signaling-protocol bgp
Router(config-l2vpn-xc-mp2mp-ad-sig)# ce-id 1
Router(config-l2vpn-xc-mp2mp-ad-sig-ce)# interface GigabitEthernet0/1/0/1.1 remote-ce-id 2
Running Configuration:

The following figure illustrates an example of configuring VPWS with BGP autodiscovery and BGP Signaling.

Figure 6. VPWS with BGP autodiscovery and BGP signaling


Configuration at PE1:

l2vpn
  xconnect group gr1
   mp2mp mp1
   vpn-id 100
   l2 encapsulation vlan
    autodiscovery bgp
    rd auto
    route-target 2.2.2.2:100
    ! Signaling attributes
    signaling-protocol bgp
    ce-id 1
    interface GigabitEthernet0/1/0/1.1 remote-ce-id 2
Configuration at PE2:

l2vpn
  xconnect group gr1
   mp2mp mp1
   vpn-id 100
   l2 encapsulation vlan
    autodiscovery bgp
    rd auto
    route-target 2.2.2.2:100
    ! Signaling attributes
    signaling-protocol bgp
    ce-id 2
    interface GigabitEthernet0/1/0/2.1 remote-ce-id 1
Verification:

PE1:

PE1# show l2vpn discovery xconnect

Service Type: VPWS, Connected

List of VPNs (1 VPNs):

XC Group: gr1, MP2MP mp1

   List of Local Edges (1 Edges):

     Local Edge ID: 1, Label Blocks (1 Blocks)

       Label base Offset   Size     Time Created      

       ---------- ------   ----     -------------------

       16030     1         10       01/24/2009 21:23:04

        Status Vector: 9f ff

   List of Remote Edges (1 Edges):

     Remote Edge ID: 2, NLRIs (1 NLRIs)

       Label base Offset   Size     Peer ID         Time Created      

       ---------- ------   ----     --------------- -------------------

      16045     1         10       1.1.1.1         01/24/2009 21:29:35

       Status Vector: 7f ff
 

PE1# show l2vpn xconnect mp2mp detail

Group gr1, MP2MP mp1, state: up

VPN ID: 100

VPN MTU: 1500

L2 Encapsulation: VLAN

Auto Discovery: BGP, state is Advertised (Service Connected)

     Route Distinguisher: (auto) 3.3.3.3:32770

   Import Route Targets:

       2.2.2.2:100

   Export Route Targets:

       2.2.2.2:100

   Signaling protocol:BGP

    CE Range:10

….

Group gr1, XC mp1.1:2, state is up; Interworking none

Local CE ID: 1, Remote CE ID: 2, Discovery State: Advertised

AC: GigabitEthernet0/1/0/1.1, state is up

   Type VLAN; Num Ranges: 1

   VLAN ranges: [1, 1]

   MTU 1500; XC ID 0x2000013; interworking none

PW: neighbor 1.1.1.1, PW ID 65538, state is up ( established )

   PW class not set, XC ID 0x2000013

   Encapsulation MPLS, Auto-discovered (BGP), protocol BGP

     MPLS         Local                         Remote                       

     ------------ ------------------------------ -----------------------------

     Label       16031                         16045                        

     MTU         1500                           1500                        

   Control word enabled                       enabled                      

     PW type     Ethernet VLAN                 Ethernet VLAN                

     CE-ID       1                             2                            

     ------------ ------------------------------ -----------------------------

 

...

PE1# show bgp l2vpn vpws

BGP router identifier 3.3.3.3, local AS number 100

BGP generic scan interval 60 secs

BGP table state: Active

Table ID: 0x0

BGP main routing table version 913

BGP NSR converge version 3

BGP NSR converged

BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best

             i - internal, S stale

Origin codes: i - IGP, e - EGP, ? - incomplete

   Network           Next Hop       Rcvd Label     Local Label

Route Distinguisher: 1.1.1.1:32775

*>i2:1/32             1.1.1.1         16045           nolabel        

*>i3:1/32             1.1.1.1         16060           nolabel        

Route Distinguisher: 3.3.3.3:32770 (default for vrf gr1:mp1)

*> 1:1/32             0.0.0.0         nolabel         16030          

*>i2:1/32             1.1.1.1         16045           nolabel        

*>i3:1/32             1.1.1.1         16060           nolabel        

 

Processed 5 prefixes, 5 paths

PE2:

PE2# show l2vpn discovery xconnect

Service Type: VPWS, Connected

List of VPNs (1 VPNs):

XC Group: gr1, MP2MP mp1

   List of Local Edges (2 Edges):

     Local Edge ID: 2, Label Blocks (1 Blocks)

       Label base Offset   Size     Time Created      

       ---------- ------   ----     -------------------

       16045     1         10       01/24/2009 21:09:14

       Status Vector: 7f ff

     Local Edge ID: 3, Label Blocks (1 Blocks)

       Label base Offset   Size     Time Created      

       ---------- ------   ----     -------------------

       16060     1         10       01/24/2009 21:09:14

       Status Vector: 7f ff

   List of Remote Edges (1 Edges):

     Remote Edge ID: 1, NLRIs (1 NLRIs)

       Label base Offset   Size     Peer ID         Time Created      

       ---------- ------   ----     --------------- -------------------

       16030     1         10       3.3.3.3         01/24/2009 21:09:16

     Status Vector: 9f ff

 

PE2# show l2vpn xconnect mp2mp detail

Group gr1, MP2MP mp1, state: up

VPN ID: 100

VPN MTU: 1500

L2 Encapsulation: VLAN

Auto Discovery: BGP, state is Advertised (Service Connected)

     Route Distinguisher: (auto) 1.1.1.1:32775

   Import Route Targets:

       2.2.2.2:100

   Export Route Targets:

       2.2.2.2:100

   Signaling protocol:BGP

     CE Range:10

...

Group gr1, XC mp1.2:1, state is up; Interworking none

Local CE ID: 2, Remote CE ID: 1, Discovery State: Advertised

AC: GigabitEthernet0/1/0/2.1, state is up

   Type VLAN; Num Ranges: 1

   VLAN ranges: [1, 1]

   MTU 1500; XC ID 0x2000008; interworking none

PW: neighbor 3.3.3.3, PW ID 131073, state is up ( established )

   PW class not set, XC ID 0x2000008

   Encapsulation MPLS, Auto-discovered (BGP), protocol BGP

     MPLS         Local                         Remote                      

     ------------ ------------------------------ -----------------------------

     Label       16045                         16031                        

     MTU         1500                           1500                        

     Control word enabled                       enabled                      

     PW type     Ethernet VLAN                  Ethernet VLAN                

     CE-ID       2                             1                            

     ------------ ------------------------------ -----------------------------

...

 

PE2# show bgp l2vpn vpws

BGP router identifier 1.1.1.1, local AS number 100

BGP generic scan interval 60 secs

BGP table state: Active

Table ID: 0x0

BGP main routing table version 819

BGP NSR converge version 7

BGP NSR converged

BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best

             i - internal, S stale

Origin codes: i - IGP, e - EGP, ? - incomplete

   Network           Next Hop       Rcvd Label     Local Label

Route Distinguisher: 1.1.1.1:32775 (default for vrf gr1:mp1)

*>i1:1/32             3.3.3.3         16030           nolabel        

*> 2:1/32             0.0.0.0         nolabel         16045          

*> 3:1/32             0.0.0.0         nolabel         16060          

Route Distinguisher: 3.3.3.3:32770

*>i1:1/32             3.3.3.3        16030           nolabel        

 

Processed 4 prefixes, 4 paths

BGP-based VPWS Autodiscovery with LDP Signaling

Signaling of pseudowires requires exchange of information between two endpoints. LDP is better suited for point-to-point signaling.

A PE router advertises an identifier through BGP for the VPWS instance. The signaling of pseudowires between provider edge devices uses targeted LDP sessions to exchange label values and attributes and to configure the pseudowires. FEC 129 is used for the signaling. The information carried by FEC 129 includes the xconnect ID, the Target Attachment Individual Identifier (TAII) and the Source Attachment Individual Identifier (SAII).

Configuring BGP-basedased VPWS Autodiscovery with LDP Signaling

BGP and LDP need to be configured as indicated in the section Configuring BGP and LDP for BGP-based Autodiscovery before proceeding to the configurations in this section.

Configuration Example:

The below code block shows the basic configuration steps required for BGP based VPWS autodiscovery with LDP Signaling.

Router(config)# l2vpn
Router(config-l2vpn)# xconnect group {xconnect group name}
Router(config-l2vpn-xc)# mp2mp {instance name}
Router(config-l2vpn-xc-mp2mp)# vpn-id {vpn-id}
Router(config-l2vpn-xc-mp2mp)# l2-encapsulation vlan
Router(config-l2vpn-xc-mp2mp)# autodiscovery bgp
Router(config-l2vpn-xc-mp2mp-ad)# rd auto
Router(config-l2vpn-xc-mp2mp-ad)# route-target 2.2.2.2:100
Router(config-l2vpn-xc-mp2mp-ad)# signaling-protocol ldp
Router(config-l2vpn-xc-mp2mp-ad-sig)# ce-id 1
Router(config-l2vpn-xc-mp2mp-ad-sig-ce)# interface GigabitEthernet0/1/0/1.1 remote-ce-id 2
Running Configuration:

The following figure illustrates an example of configuring VPWS with BGP autodiscovery and LDP Signaling.

Figure 7. VPWS with BGP autodiscovery and LDP signaling


Configuration at PE1:

l2vpn
  xconnect group gr1
   mp2mp mp1
   vpn-id 100
   l2 encapsulation vlan
    autodiscovery bgp
    rd auto
    route-target 2.2.2.2:100
    ! Signaling attributes
    signaling-protocol ldp
    ce-id 1
    interface GigabitEthernet0/1/0/1.1 remote-ce-id 2
Configuration at PE2:

l2vpn
  xconnect group gr1
   mp2mp mp1
   vpn-id 100
   l2 encapsulation vlan
    autodiscovery bgp
    rd auto
    route-target 2.2.2.2:100
    ! Signaling attributes
    signaling-protocol ldp
    ce-id 2
    interface GigabitEthernet0/1/0/2.1 remote-ce-id 1