Example: Configuring BGP-Based H-VPLS Using Different Mesh Groups for Each Spoke Router
This example shows how to configure H-VPLS using different mesh groups to provide H-VPLS functionality and provides steps for verifying and troubleshooting the configuration. This is one type of H-VPLS configuration possible in the Juniper Networks implementation.
Using mesh groups improves LDP-based VPLS control plane scalability and avoids the requirement for a full mesh of LDP sessions. This example uses BGP-based VPLS.
This example is organized into the following sections:
Requirements
This example uses the following hardware components:
- Four MX Series Universal Edge Routers for Routers PE1, PE2, PE3, and PE4
- Two M Series Multiservice Edge Routers for Routers CE4 and PE5
- Two EX Series Ethernet Switches for Devices CE1 and CE2
- Two T Series Core Routers for Routers P1 and the route reflector
- One J Series Services Router for Router CE3
Overview and Topology
Figure 2 shows the physical topology used in this example.
Figure 2: Physical Topology of H-VPLS

The following describes the base configuration used in this example:
- Routers PE1, PE2, and PE4 are configured as MTU devices.
- Routers PE3 and PE5 are configured as PE-r routers, each using an LDP-based VPLS routing instance.
- The LDP and OSPF protocols are configured on all of the MTU devices and PE-r routers.
- Core-facing interfaces are enabled with the MPLS address family.
- The VPLS routing instance is configured on PE-r routers with the no-tunnel-interface statement. This allows the MX Series routers to use a label-switched interface (LSI).
- The M320 router has a tunnel PIC installed.
- All of the routers are configured with loopback IP addresses and the autonomous system number is 65000.
- BGP is configured on the PE-r routers and the route reflector. The BGP configuration includes the signaling statement at the [edit protocols bgp group group-name family l2vpn] hierarchy level to support Layer 2 VPN signaling using BGP.
Figure 3 shows the logical topology used in this example.
Figure 3: Logical Topology of H-VPLS

In Figure 3:
- Routers PE1, PE2, and PE4 are configured as MTU devices. All of the MTU devices have Layer 2 circuit connections to the PE-r routers. For redundancy, a backup neighbor is configured for the Layer 2 circuit connections to the PE-r routers.
- It is not necessary to enable VPLS on the MTU devices.
- The VPLS routing instance is only configured on the PE-r routes.
- On the PE-r routers, a mesh group is created under the H-VPLS routing instance to terminate the Layer 2 circuit connections.
- It is not necessary to include the l2circuit statement in the [edit protocols] hierarchy on the PE-r routers. The mesh group configuration under the VPLS routing instance terminates the Layer 2 circuit pseudowires from all MTU devices in the VPLS domain.
- Each MTU device can be configured with a different virtual circuit ID or the same ID, within a single VPLS domain. The mesh groups configuration allows you to use different VPLS ID values for each mesh group.
Configuration
To configure H-VPLS with different mesh groups for each spoke PE router using BGP-based VPLS, perform the following tasks:
Configuring the Spoke PE Routers
Step-by-Step Procedure
- On Router PE1, configure the
Gigabit Ethernet interface connected to Router CE1. Include the encapsulation statement and specify the ethernet-ccc option. Also configure the logical interface by including the family statement and specifying the ccc option.[edit interfaces]ge-1/0/0 {encapsulation ethernet-ccc;unit 0 {family ccc;}}
- On Router PE1, configure the Layer 2
circuit by including the neighbor statement and specifying
the IP address of Router PE5 as the neighbor. Configure the Gigabit
Ethernet logical interface by including the virtual-circuit-id statement and specifying 100 as the ID. Also configure
a backup neighbor for the Layer 2 circuit by including the backup-neighbor statement, specifying the IP address of PE3 as the backup neighbor,
and including the standby statement.[edit protocols]l2circuit {neighbor 5.5.5.5 {interface ge-1/0/0.0 {virtual-circuit-id 100;backup-neighbor 3.3.3.3 { # Backup H-VPLS PE routerstandby;}}}}
- On Router PE2, configure the Gigabit
Ethernet interface connected to Router CE2. Include the encapsulation statement and specify the ethernet-ccc option. Also configure
the logical interface by including the family statement and
specifying the ccc option.[edit interfaces]ge-1/0/2 {encapsulation ethernet-ccc;unit 0 {family ccc;}}
- On Router PE2, configure the Layer 2
circuit by including the neighbor statement and specifying
the IP address of Router PE5 as the neighbor. Configure the Gigabit
Ethernet logical interface by including the virtual-circuit-id statement and specifying 200 as the ID. Configure the encapsulation
by including the encapsulation-type statement and specifying
the ethernet option. Also configure a backup neighbor for
the Layer 2 circuit by including the backup-neighbor statement,
specifying the IP address of Router PE3 as the backup neighbor, and
including the standby statement.[edit protocols]l2circuit {neighbor 5.5.5.5 {interface ge-1/0/2.0 {virtual-circuit-id 200; # different VC-IDencapsulation-type ethernet; # default encapsulationbackup-neighbor 3.3.3.3 {standby;}}}}
- On Router PE4, configure the Gigabit
Ethernet interface connected to Router CE4. Include the encapsulation statement and specify the ethernet-ccc option. Also configure
the logical interface by including the family statement and
specifying the ccc option.ge-1/2/0 {encapsulation ethernet-ccc;unit 0 {family ccc;}}
- On Router PE4, configure the Layer 2
circuit by including the neighbor statement and specifying
the IP address of Router PE5 as the neighbor. Configure the Gigabit
Ethernet logical interface by including the virtual-circuit-id statement and specifying 400 as the ID. Also configure
a backup neighbor for the Layer 2 circuit by including the backup-neighbor statement, specifying the IP address of Router PE3 as the backup
neighbor and including the standby statement.l2circuit {neighbor 5.5.5.5 {interface ge-1/2/0.0 {virtual-circuit-id 400;backup-neighbor 3.3.3.3 {standby;}}}}
Configuring the Hub PE (PE-r)
Step-by-Step Procedure
- On Router PE5 (the primary hub),
configure the Gigabit Ethernet interface connected to Router CE5.
Include the encapsulation statement and specify the ethernet-vpls option. Also configure the logical interface by including the family inet statement and specifying the IPv4 address for the
interface.ge-2/0/0 {encapsulation ethernet-vpls;unit 0 {family vpls;}}lo0 {unit 0 {family inet {address 5.5.5.5/32;}}}
- On PE-r Router PE5. configure the BGP-based
VPLS routing instance by including the instance-type statement
at the [edit routing-instances H-VPLS] hierarchy level and
specifying the vpls option. Include the interface statement
and specify the Gigabit Ethernet interface connected to Router CE5.
Configure a route distinguisher to ensure that the route advertisement
is unique by including the route-distinguisher statement
and specifying 7.7.7.7:77 as the value. Also configure the
VPN routing and forwarding (VRF) route target to be included in the
route advertisements to the other routers participating in the VPLS.
To configure the VRF route target, include the vrf-target statement and specify target:65000:2 as the value.routing-instances {H-VPLS {instance-type vpls;interface ge-2/0/0.0;route-distinguisher 7.7.7.7:77;vrf-target target:65000:2;}}
- On PE-r Router PE5, configure a provider
tunnel that makes use of dynamic point-to-multipoint LSPs by including
the provider-tunnel statement at the [edit routing-instances
H-VPLS] hierarchy level. Configure a dynamic label switched path
that uses resource reservation protocol (RSVP) signaling to dynamically
create the LSP. To configure the LSP, include the label-switched-path-template statement at the [edit routing-instances H-VPLS provider-tunnel] hierarchy level and specify vpls-GOLD-p2mp-template as
the name of the template to use.
The configuration of the vpls-GOLD-p2mp-template template is shown in the results section of this example.
routing-instances H-VPLS {provider-tunnel {rsvp-te {label-switched-path-template {vpls-GOLD-p2mp-template;}}}} - On PE-r Router PE5, configure the VPLS
protocol and the mesh groups for each of the spoke PE routers. It
is not necessary to configure the Layer 2 circuit (L2-circuit) protocol
on the hub PE. Configuring mesh groups under the VPLS instance terminates
the Layer 2 circuit into the VPLS instance without the use of a logical
tunnel interface.
To configure the VPLS protocol, include the vpls statement at the [edit routing-instances H-VPLS protocols] hierarchy level. Include the site-range statement and specify 8 as the value. Include the no-tunnel-services statement to enable the use of LSI interfaces. Include the site statement and specify CE5 as the name of the site. Include the interface statement and specify the Gigabit Ethernet interface connected to CE5.
To configure each mesh group, include the mesh-group statement and specify the mesh group name. In this example, the mesh group name is the name of the spoke PE router associated with each mesh group. Include the vpls-id statement and specify the site ID that matches the virtual circuit ID configured in the Configuring the Spoke PE Routers section of this example. Also include the neighbor statement and specify the IP address of the spoke PE router associated with each mesh group. For the mesh group for Router PE2, include the encapsulation-type statement and specify the ethernet option.
[edit routing-instances H-VPLS]protocols {vpls {site-range 8;site CE5 {site-identifier 5;interface ge-2/0/0.0;}mesh-group pe4 {vpls-id 400;neighbor 4.4.4.4;}mesh-group pe2 {vpls-id 200;neighbor 2.2.2.2 {encapsulation-type ethernet;}}mesh-group pe1 {vpls-id 100;neighbor 1.1.1.1;}}} - On Router PE3 (the backup hub), configure
the Gigabit Ethernet interface connected to Router CE3 by including
the encapsulation statement and specifying the ethernet-ccc option. Also configure the logical interface. Include the family
inet statement and specify the IP address for the interface.ge-1/0/1 {encapsulation ethernet-vpls;unit 0 {family vpls;}}lo0 {unit 0 {family inet {address 3.3.3.3/32;}}}
- On PE-r Router PE3, configure the BGP-based
VPLS routing instance by including the instance-type statement
at the [edit routing-instances H-VPLS] hierarchy level and
specifying the vpls option. Include the interface statement
and specify the Gigabit Ethernet interface connected to Router CE3.
Configure a route distinguisher to ensure that the route advertisement
is unique. To configure the route distinguisher, include the route-distinguisher statement and specify 3.3.3.3:33 as the value. Also configure
the VPN routing and forwarding (VRF) route target to be included in
the route advertisements to the other routers participating in the
VPLS. To configure the VRF route target, include the vrf-target statement and specify target:65000:2 as the value.[edit routing-instances]H-VPLS {instance-type vpls;interface ge-1/0/1.0;route-distinguisher 3.3.3.3:33;vrf-target target:65000:2;}
- On PE-r Router PE3, configure a provider
tunnel that makes use of dynamic point-to-multipoint LSPs by including
the provider-tunnel statement at the [edit routing-instances
H-VPLS] hierarchy level. Configure a dynamic LSP that uses resource
reservation protocol (RSVP) signaling to dynamically create the LSP.
To configure the LSP, include the label-switched-path-template statement at the [edit routing-instances H-VPLS provider-tunnel] hierarchy level and specify vpls-GOLD-p2mp-template as
the name of the template to use.
The configuration of the vpls-GOLD-p2mp-template template is shown in the results section of this example.
[edit routing-instances H-VPLS]provider-tunnel {rsvp-te {label-switched-path-template {vpls-GOLD-p2mp-template;}}} - On PE-r Router PE3. configure the VPLS
protocol and the mesh groups for each of the spoke PE routers. It
is not necessary to configure the Layer 2 circuit (L2-circuit) protocol
on the Hub PE. Configuring mesh groups under the VPLS instance terminates
the Layer 2 circuit into the VPLS instance without the use of a logical
tunnel interface.
To configure the VPLS protocol, include the vpls statement at the [edit routing-instances H-VPLS protocols] hierarchy level. Include the site-range statement and specify 8 as the value. Include the no-tunnel-services statement to enable the use of LSI interfaces. Include the site statement and specify mtu-pe4 as the name of the site. Include the interface statement and specify the Gigabit Ethernet interface connected to CE3.
To configure each mesh group, include the mesh-group statement and specify the mesh group name. In this example, the mesh group name is the name of the spoke PE router associated with each mesh group. Include the vpls-id statement and specify the site ID that matches the virtual circuit ID configured in the Configuring the Spoke PE Routers section of this example. Also include the neighbor statement and specify the IP address of the spoke PE router associated with each mesh group.
[edit routing-instances H-VPLS]protocols {vpls {site-range 8;no-tunnel-services;site mtu-pe4 {site-identifier 3;interface ge-1/0/1.0;}mesh-group pe4 {vpls-id 400;neighbor 4.4.4.4;}mesh-group pe2 {vpls-id 200;neighbor 2.2.2.2;}mesh-group pe1 {vpls-id 100;neighbor 1.1.1.1;}}}
Verifying the H-VPLS Operation
Step-by-Step Procedure
This section describes the show commands you can use to validate that the H-VPLS is working as expected.
- On Router PE1, use the show l2circuit connections command to verify that the Layer 2 circuit to Router PE5 is Up and the Layer 2 circuit to Router PE3 is in standby mode.
The output also shows the assigned label, virtual circuit ID, and the ETHERNET encapsulation type .
user@PE1# show l2circuit connectionsLayer-2 Circuit Connections: Legend for connection status (St) EI -- encapsulation invalid NP -- interface h/w not present MM -- mtu mismatch Dn -- down EM -- encapsulation mismatch VC-Dn -- Virtual circuit Down CM -- control-word mismatch Up -- operational VM -- vlan id mismatch CF -- Call admission control failure OL -- no outgoing label IB -- TDM incompatible bitrate NC -- intf encaps not CCC/TCC TM -- TDM misconfiguration BK -- Backup Connection ST -- Standby Connection CB -- rcvd cell-bundle size bad XX -- unknown SP -- Static Pseudowire Legend for interface status Up -- operational Dn -- down Neighbor: 3.3.3.3 Interface Type St Time last up # Up trans ge-1/0/0.0(vc 100) rmt ST Neighbor: 5.5.5.5 Interface Type St Time last up # Up trans ge-1/0/0.0(vc 100) rmt Up Jan 2 14:52:20 2010 1 Remote PE: 5.5.5.5, Negotiated control-word: No Incoming label: 301296, Outgoing label: 800005 Local interface: ge-1/0/0.0, Status: Up, Encapsulation: ETHERNET - On Router PE1, use the show ldp neighbor command to verify that the targeted LDP sessions have been created
between the loopback interface to the primary and backup H-VPLS hub
neighbors.
user@PE1# show ldp neighborAddress Interface Label space ID Hold time 3.3.3.3 lo0.0 3.3.3.3:0 40 5.5.5.5 lo0.0 5.5.5.5:0 37
- On Router PE5, use the show vpls connections command to verify that the VPLS connection status is Up for both the LDP-based VPLS and the BGP-based VPLS Layer 2 circuits
that are terminated.
user@PE5# show vpls connectionsInstance: H-VPLS BGP-VPLS State <<<Local CE connected through BGP-based VPLS PE router Local site: mtu-pe4 (3) connection-site Type St Time last up # Up trans 5 rmt Up Jan 2 21:27:20 2010 1 Remote PE: 5.5.5.5, Negotiated control-word: No Incoming label: 262165, Outgoing label: 800258 Local interface: lsi.1057801, Status: Up, Encapsulation: VPLS Description: Intf - vpls H-VPLS local site 3 remote site 5 LDP-VPLS State <<<Layer 2 circuit terminated in VPLS using mesh groups Mesh-group connections: pe4 <<<mesh group Neighbor Type St Time last up # Up trans 4.4.4.4(vpls-id 400) rmt Up Jan 2 15:47:13 2010 1 Remote PE: 4.4.4.4, Negotiated control-word: No Incoming label: 262409, Outgoing label: 301088 Local interface: lsi.1057796, Status: Up, Encapsulation: ETHERNET Description: Intf - vpls H-VPLS neighbor 4.4.4.4 vpls-id 400 Mesh-group connections: pe2 Neighbor Type St Time last up # Up trans 2.2.2.2(vpls-id 200) rmt Up Jan 2 21:04:40 2010 1 Remote PE: 2.2.2.2, Negotiated control-word: No Incoming label: 262410, Outgoing label: 301488 Local interface: lsi.1057797, Status: Up, Encapsulation: ETHERNET Description: Intf - vpls H-VPLS neighbor 2.2.2.2 vpls-id 200 Mesh-group connections: pe1 Neighbor Type St Time last up # Up trans 1.1.1.1(vpls-id 100) rmt Up Jan 2 15:47:13 2010 1 Remote PE: 1.1.1.1, Negotiated control-word: No Incoming label: 262411, Outgoing label: 301328 Local interface: lsi.1057798, Status: Up, Encapsulation: ETHERNET Description: Intf - vpls H-VPLS neighbor 1.1.1.1 vpls-id 100 - On Router PE5, use the show ldp neighbor command to verify that a targeted LDP session has been created to
each of the spoke PE routers (MTUs).
user@PE5# show ldp neighborAddress Interface Label space ID Hold time 1.1.1.1 lo0.0 1.1.1.1:0 41 2.2.2.2 lo0.0 2.2.2.2:0 44 4.4.4.4 lo0.0 4.4.4.4:0 32
- On Router PE5, use the show vpls mac-table command
to verify that MAC addresses of Routers CE1, CE2, and CE3 have been
learned.
user@PE5# show vpls mac-tableMAC flags (S -static MAC, D -dynamic MAC, SE -Statistics enabled, NM -Non configured MAC) Routing instance : H-VPLS Bridging domain : __H-VPLS__, VLAN : NA MAC MAC Logical address flags interface 00:10:db:e9:4e:b6 D ge-1/0/1.0 <<<Local Site MAC 00:12:1e:c6:98:3e D lsi.1057801 <<<CE1 MAC 00:14:f6:75:78:1f D lsi.1057801 <<<CE3 MAC 00:1f:12:32:b1:d8 D lsi.1057801 <<<CE2 MAC
Results
The configuration and verification parts of this example have been completed. The following section is for your reference.
The relevant sample configuration for the spoke Router PE1 follows.
Router PE1
The relevant sample configuration for Router PE3 follows.
Router PE3
Verification
To confirm that the complete configuration is working properly, perform these tasks:
Verifying VPLS Connections From Router CE1
Purpose
To verify the CE-to-CE VPLS connections from Router CE1.
Action
Use the ping command to verify connectivity from Router CE1 to Routers CE2, CE3, CE4, and CE5.
user@CE1# ping 40.40.40.2PING 40.40.40.2 (40.40.40.2): 56 data bytes 64 bytes from 40.40.40.2: icmp_seq=0 ttl=64 time=2.513 ms 64 bytes from 40.40.40.2: icmp_seq=1 ttl=64 time=1.940 ms
user@CE1# ping 40.40.40.3PING 40.40.40.3 (40.40.40.3): 56 data bytes 64 bytes from 40.40.40.3: icmp_seq=0 ttl=64 time=0.943 ms 64 bytes from 40.40.40.3: icmp_seq=1 ttl=64 time=0.868 ms
user@CE1# ping 40.40.40.5PING 40.40.40.5 (40.40.40.5): 56 data bytes 64 bytes from 40.40.40.5: icmp_seq=0 ttl=64 time=1.196 ms 64 bytes from 40.40.40.5: icmp_seq=1 ttl=64 time=17.260 ms
user@CE1# ping 40.40.40.11PING 40.40.40.11 (40.40.40.11): 56 data bytes 64 bytes from 40.40.40.11: icmp_seq=0 ttl=64 time=1.027 ms 64 bytes from 40.40.40.11: icmp_seq=1 ttl=64 time=1.013 ms
Verifying VPLS Connections From Router CE3
Purpose
To verify the CE-to-CE VPLS connections from Router CE3.
Action
Use the ping command to verify connectivity from Router CE3 to Routers CE1, CE2, CE4, and CE5.
user@CE3> ping 40.40.40.1PING 40.40.40.1 (40.40.40.1): 56 data bytes 64 bytes from 40.40.40.1: icmp_seq=0 ttl=64 time=1.999 ms 64 bytes from 40.40.40.1: icmp_seq=1 ttl=64 time=1.175 ms
user@CE3> ping 40.40.40.2PING 40.40.40.2 (40.40.40.2): 56 data bytes 64 bytes from 40.40.40.2: icmp_seq=0 ttl=64 time=3.483 ms 64 bytes from 40.40.40.2: icmp_seq=1 ttl=64 time=1.170 ms
user@CE3> ping 40.40.40.5PING 40.40.40.5 (40.40.40.5): 56 data bytes 64 bytes from 40.40.40.5: icmp_seq=0 ttl=64 time=2.813 ms 64 bytes from 40.40.40.5: icmp_seq=1 ttl=64 time=1.170 ms
user@CE3> ping 40.40.40.11PING 40.40.40.11 (40.40.40.11): 56 data bytes 64 bytes from 40.40.40.11: icmp_seq=0 ttl=64 time=2.125 ms 64 bytes from 40.40.40.11: icmp_seq=2 ttl=64 time=124.979 ms
Hide Navigation Pane
Show Navigation Pane
Download
SHA1