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:

Overview and Topology

Figure 2 shows the physical topology used in this example.

Figure 2: Physical Topology of H-VPLS

Image g040546.gif

The following describes the base configuration used in this example:

Figure 3 shows the logical topology used in this example.

Figure 3: Logical Topology of H-VPLS

Image g040547.gif

In Figure 3:

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

  1. 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;}}
  2. 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;}}}}
  3. 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;}}
  4. 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;}}}}
  5. 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;}}
  6. 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

  1. 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;}}}
  2. 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;}}
  3. 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;}}}}
  4. 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;}}}
  5. 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;}}}
  6. 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;}
  7. 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;}}}
  8. 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.

  1. 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 connections
    Layer-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
    
  2. 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 neighbor
    Address            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
    
  3. 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 connections
    Instance: 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
    
  4. 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 neighbor
    Address            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
    
  5. 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-table
    MAC 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

interfaces {xe-0/1/0 {unit 0 {family inet {address 10.10.2.1/30;}family mpls;}}xe-0/2/0 {unit 0 {family inet {address 10.10.3.1/30;}family mpls;}}xe-0/3/0 {unit 0 {family inet {address 10.10.1.1/30;}family mpls;}}ge-1/0/0 {encapsulation ethernet-ccc;unit 0 {family ccc;}}lo0 {unit 0 {family inet {address 1.1.1.1/32;}}}}routing-options {static {route 172.0.0.0/8 next-hop 172.19.59.1;}autonomous-system 65000;}protocols {mpls {interface all;interface fxp0.0 {disable;}}ospf {traffic-engineering;area 0.0.0.0 {interface all;interface fxp0.0 {disable;}}}ldp {interface all;interface fxp0.0 {disable;}}l2circuit {neighbor 5.5.5.5 {interface ge-1/0/0.0 {virtual-circuit-id 100;backup-neighbor 3.3.3.3 {standby;}}}}}

The relevant sample configuration for Router PE3 follows.

Router PE3

interfaces {xe-0/0/0 {unit 0 {family inet {address 10.10.20.2/30;}family mpls;}}xe-0/1/0 {unit 0 {family inet {address 10.10.6.1/30;}family mpls;}}xe-0/2/0 {unit 0 {family inet {address 10.10.5.2/30;}family mpls;}}xe-0/3/0 {unit 0 {family inet {address 10.10.1.2/30;}family mpls;}}ge-1/0/1 {encapsulation ethernet-vpls;unit 0 {family vpls;}}lo0 {unit 0 {family inet {address 3.3.3.3/32;}}}}routing-options {static {route 172.0.0.0/8 next-hop 172.19.59.1;}autonomous-system 65000;}protocols {rsvp {interface all;interface fxp0.0 {disable;}interface xe-0/0/0.0 {link-protection;}interface xe-0/1/0.0 {link-protection;}interface xe-0/3/0.0 {link-protection;}interface xe-0/2/0.0 {link-protection;}}mpls {label-switched-path to-RR {to 7.7.7.7;}label-switched-path vpls-GOLD-p2mp-template {template;optimize-timer 50;link-protection;p2mp;}label-switched-path to-PE2 {to 2.2.2.2;}label-switched-path to-PE3 {to 3.3.3.3;}label-switched-path to-PE4 {to 4.4.4.4;}label-switched-path to-PE1 {to 1.1.1.1;}interface all;interface fxp0.0 {disable;}}bgp {group RR {type internal;local-address 3.3.3.3;family l2vpn {signaling;}neighbor 7.7.7.7;}}ospf {traffic-engineering;area 0.0.0.0 {interface all;interface fxp0.0 {disable;}}}ldp {interface all;interface fxp0.0 {disable;}}}routing-instances {H-VPLS {instance-type vpls;interface ge-1/0/1.0;route-distinguisher 3.3.3.3:33;provider-tunnel {rsvp-te {label-switched-path-template {vpls-GOLD-p2mp-template;}}}vrf-target target:65000:2;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;}}}}}

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.2
PING 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.3
PING 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.5
PING 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.11
PING 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.1
PING 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.2
PING 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.5
PING 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.11
PING 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

Related Topics