Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

header-navigation
keyboard_arrow_up
close
keyboard_arrow_left
list Table of Contents
file_download PDF
{ "lLangCode": "en", "lName": "English", "lCountryCode": "us", "transcode": "en_US" }
English
keyboard_arrow_right

Introduction to Configuring VPLS

date_range 22-May-24

Virtual private LAN service (VPLS) allows you to provide a point-to-multipoint LAN between a set of sites in a virtual private network (VPN).

To configure VPLS functionality, you must enable VPLS support on the provider edge (PE) router. You must also configure PE routers to distribute routing information to the other PE routers in the VPLS. In addition, you must also configure the circuits between the PE routers and the customer edge (CE) routers.

Note:

In the VPLS documentation, the word router in terms such as PE router is used to refer to any device that provides routing functions.

You can support VPLS traffic by configuring a routing instance with the instance-type of vpls on Junos OS or a routing instance on with the instance-type of virtual-switchJunos Evolve OS. . The routing instance carries Ethernet traffic transparently across the service provider’s network. As with other routing instances, all logical interfaces belonging to a VPLS routing instance are listed under that instance.

Note: When you configure normalized VLANs under a virtual-switch routing instance, either by not configuring vlan IDs or including the vlan-id none statement, then you must also include the service-type single statement at the [edit routing-instances routing-instance protocol vpls] hierarchy.

In addition to VPLS routing instance configuration, you must configure MPLS label-switched paths (LSPs) between the PE routers, IBGP sessions between the PE routers, and an interior gateway protocol (IGP) on the PE and provider (P) routers.

Many configuration procedures for VPLS are identical to the procedures for Layer 2 VPNs and Layer 3 VPNs.

Understanding VPLS Interfaces

Interface names:

For each VPLS routing instance on a PE router, you specify which interfaces are to be used to carry VPLS traffic between the PE and CE devices.

Specify both the physical and logical portions of the interface name, in the following format: physical.logical. For example, in ge-1/0/1.2, ge-1/0/1 is the physical portion of the interface name and 2 is the logical portion. If you do not specify the logical portion of the interface name, 0 is set by default.

A logical interface can be associated with only one routing instance.

Encapsulation Type:

The link-layer encapsulation type for a VPLS interface can be one of the following:

  • ethernet-vpls: Use Ethernet VPLS encapsulation on Ethernet interfaces that have VPLS enabled and that must accept packets carrying standard Tag Protocol Identifier (TPID) values.

    extended-vlan-vpls: Use extended virtual LAN (VLAN) VPLS encapsulation on Ethernet interfaces that have VLAN 802.1Q tagging and VPLS enabled and that must accept packets carrying TPIDs 0x8100, 0x9100, and 0x9901. All VLAN IDs from 1 through 1023 are valid for VPLS VLANs on Fast Ethernet interfaces, and all VLAN IDs from 1 through 4094 are valid for VPLS VLANs on Gigabit Ethernet interfaces.

    vlan-vpls: Use VLAN VPLS encapsulation on Ethernet interfaces with VLAN tagging and VPLS enabled. Interfaces with VLAN VPLS encapsulation accept packets carrying standard TPID values only. You must configure this encapsulation type on both the physical interface and the logical interface. VLAN IDs 1 through 511 are reserved for normal Ethernet VLANs, IDs 512 through 1023 are reserved for VPLS VLANs on Fast Ethernet interfaces, and IDs 512 through 4094 are reserved for VPLS VLANs on Gigabit Ethernet interfaces.

  • flexible-ethernet-services: Use flexible Ethernet services encapsulation when you want to configure multiple per-unit Ethernet encapsulations. This encapsulation type allows you to configure any combination of route, TCC, CCC, and VPLS encapsulations on a single physical port. Aggregated Ethernet bundles cannot use this encapsulation type.

    For flexible Ethernet services encapsulation, VLAN IDs from 1 through 511 are no longer reserved for normal VLANs.

VPLS CLI Configuration Hierarchy Differences between Junos OS and Junos OS Evolved

When you configure VPLS on devices running on Junos OS or Junos OS Evolved, be aware of the CLI hierarchy differences. Table explains the VPLS CLI hierarchy configuration differences on devices running on Junos OS and Junos OS Evolved.

To know about the devices running on Junos OS, see https://www.juniper.net/documentation/product/us/en/junos-os/#cat=by_product.

To know about the devices running on Junos OS Evolved, see https://www.juniper.net/documentation/product/us/en/junos-os-evolved/#cat=hardware_documentation.

Note:

Devices running on Junos OS Evolved do not support configuring family VPLS on the interfaces.

Note:
zoom_out_map
Table 1: VPLS Configuration CLI Differences between Junos OS and Junos OS Evolved
Task Junos OS Junos OS Evolved
Enable VPLS routing instance
user@host# set  routing-instances routing-instance-name instance-type vpls
user@host# set routing-instances routing-instance-name protocols vpls neighbor IP-address
user@host# set routing-instances routing-instance-name protocols vpls no-tunnel-services
user@host# set routing-instances routing-instance-name protocols vpls vpls-id number
user@host# set routing-instances routing-instance-name vlan-id number
user@host# set routing-instances routing-instance-name interface interface-name
user@host# set  routing-instances routing-instance-name instance-type virtual-switch
user@host# set routing-instances routing-instance-name protocols vpls neighbor IP-address
user@host# set routing-instances routing-instance-name protocols vpls no-tunnel-services
user@host# set routing-instances routing-instance-name protocols vpls vpls-id number
user@host# set routing-instances routing-instance-name vlans vlan-name vlan-id number
user@host# set routing-instances routing-instance-name vlans vlan-name interface interface-name
Note:

You need to mandatorily configure the no-tunnel-services configuration because tunnel interface is not supported on Junos OS Evolved.

Configure VLAN without VLAN IDs, or with VLAN ID as none, or VLAN ID as all
user@host# set routing-instances routing-instance-name
  • Configure VLAN without VLAN IDs

    user@host# set routing-instances routing-instance-name vlans vlan-name
    user@host# set routing-instances routing-instance-name vlans vlan-name protocols vpls service-type single
    
  • Configure VLAN with VLAN ID as none or all

    user@host# set routing-instances routing-instance-name vlans vlan-name vlan-id none
    user@host# set routing-instances routing-instance-name vlans vlan-name protocols vpls service-type single
    
Note:

When you configure a VLAN without VLAN IDs, or with VLAN ID as none, or VLAN ID as all, you must include the service-type single configuration statement at the [edit routing-instances routing-instance protocol vpls] hierarchy.

Note:

The ACX7000 family of routers do not support the vlan-id all statement.

Configure VPLS family on interfaces
user@host# set interfaces interface-name unit number family vpls

Devices running Junos OS Evolved do not support configuring the protocol family of VPLS on the interfaces.

Configure VPLS encapsulation on the interfaces
user@host# set interfaces interface-name flexible-vlan-tagging
user@host# set interfaces interface-name speed 100g
user@host# set interfaces interface-name encapsulation flexible-ethernet-services
user@host# set interfaces interface-name unit number encapsulation vlan-vpls
user@host# set interfaces interface-name unit number vlan-id number
user@host# set interfaces interface-name flexible-vlan-tagging
user@host# set interfaces interface-name speed 100g
user@host# set interfaces interface-name encapsulation flexible-ethernet-services
user@host# set interfaces interface-name unit number encapsulation vlan-vpls
user@host# set interfaces interface-name unit number vlan-id number
Configure VPLS encapsulation on the interfaces using bridge domain
user@host# set interfaces et-0/0/6 flexible-vlan-tagging
user@host# set interfaces et-0/0/6 encapsulation flexible-ethernet-services
user@host# set interfaces et-0/0/6 unit 0 encapsulation vlan-bridge
user@host# set interfaces et-0/0/6 unit 0 vlan-id 1
user@host# set interfaces et-0/0/6 flexible-vlan-tagging
user@host# set interfaces et-0/0/6 encapsulation flexible-ethernet-services
user@host# set interfaces et-0/0/6 unit 0 encapsulation vlan-bridge
user@host# set interfaces et-0/0/6 unit 0 vlan-id 1
Configure an IRB on VPLS
user@host# set routing-instances routing-instance-name instance-type vpls
user@host# set routing-instances routing-instance-name protocols vpls neighbor ip-address
user@host# set routing-instances routing-instance-name protocols vpls no-tunnel-services
user@host# set routing-instances routing-instance-name protocols vpls vpls-id number
user@host# set routing-instances routing-instance-name vlan-id number
user@host# set routing-instances routing-instance-name interface interface-name
user@host# set routing-instances routing-instance-name routing-interface interface-name
user@host# set routing-instances routing-instance-name route-distinguisher distinguisher
user@host# set routing-instances routing-instance-name vrf-target target;
user@host# set routing-instances routing-instance-name instance-type virtual-switch
user@host# set routing-instances routing-instance-name protocols vpls neighbor ip-address
user@host# set routing-instances routing-instance-name protocols vpls no-tunnel-services
user@host# set routing-instances routing-instance-name protocols vpls control-word
user@host# set routing-instances routing-instance-name protocols vpls vpls-id number
user@host# set routing-instances routing-instance-name vlans vlan-name vlan-id number
user@host# set routing-instances routing-instance-name vlans vlan-name interface interface-name
user@host# set  routing-instances routing-instance-name l3-interface interface-name

Sample VPLS Configuration on Junos OS

The following is a sample VPLS configuration on Junos OS:

Configuration

content_copy zoom_out_map
[edit]user@host# set interfaces xe-0/0/2 flexible-vlan-tagging
user@host# set interfaces xe-0/0/2 speed 40g
user@host# set interfaces xe-0/0/2 encapsulation flexible-ethernet-services
user@host# set interfaces xe-0/0/2 unit 108 encapsulation vlan-vpls
user@host# set interfaces xe-0/0/2  unit 108 vlan-id 108
user@host# set interfaces xe-0/0/2  unit 108 family vpls
user@host# set routing-instances VPLS instance-type vpls
user@host# set routing-instances VPLS interface xe-0/0/2.108
user@host# set routing-instances VPLS protocols vpls interface xe-0/0/2.108
user@host# set routing-instances VPLS protocols vpls neighbor 192.168.1.3
user@host# set routing-instances VPLS protocols vpls no-tunnel-services
user@host# set routing-instances VPLS protocols vpls vpls-id 1001

Result

content_copy zoom_out_map
user@host> show configuration interfaces xe-0/0/2
flexible-vlan-tagging;
speed 40g;
encapsulation flexible-ethernet-services;
}
unit 108 {
    encapsulation vlan-vpls;
    vlan-id 108;
    family vpls;
}

user@host> show configuration routing-instances
VPLS {
    protocols {
        vpls {
            interface xe-0/0/2.108;
            neighbor 192.168.1.3;
            no-tunnel-services;
            vpls-id 1001;
        }
    }
    instance-type vpls;
    interface xe-0/0/2.108;
}

Verification

Confirm that the configuration is working properly.

Verify the VPLS connection status by running the show vpls connections command.

content_copy zoom_out_map
user@host> show vpls connections Layer-2 VPN connections:
Legend for interface status 
Up -- operational           
Dn -- down
 
Instance: VPLS
  VPLS-id: 1001
    Neighbor                  Type  St     Time last up          # Up trans
    192.168.1.3(vpls-id 1001)     rmt   Up     Jun 12 12:50:07 2023           1
      Remote PE: 192.168.1.3, Negotiated control-word: No
      Incoming label: 259, Outgoing label: 22
      Negotiated PW status TLV: No
      Local interface: lsi.1049600, Status: Up, Encapsulation: ETHERNET
        Description: Intf - vpls VPLS neighbor 192.168.1.3 vpls-id 1001
      Flow Label Transmit: No, Flow Label Receive: No

In this output, the VPLS connection status is up between the two PE routers.

Verify the MAC address learnt on the local PE and the remote PE by running the show vpls mac-table command.

content_copy zoom_out_map
user@host> show vpls mac-table    
MAC flags       (S -static MAC, D -dynamic MAC, L -locally learned, C -Control MAC
    O -OVSDB MAC, SE -Statistics enabled, NM -Non configured MAC, R -Remote PE MAC, P -Pinned MAC)
 
Routing instance : VPLS
Bridging domain : __VPLS__, VLAN : NA
   MAC                 MAC      Logical          NH     MAC         active
   address             flags    interface        Index  property    source
   00:00:00:42:98:47   D        lsi.1049346     
   00:00:00:42:98:4a   D        xe-0/0/2.108

In this output, you can see the MAC address (00:00:00:42:98:47) is learned from the local PE interface (et-0/0/4) with VLAN ID 108 and the MAC address (00:00:00:42:98:4a) is learned from the remote PE interface (lsi.1048832) with VLAN ID 108.

Sample VPLS Configuration on Junos OS Evolved

The following is a sample VPLS configuration on Junos OS Evolved:

Configuration

content_copy zoom_out_map
[edit]
user@host# set interfaces et-0/0/4 flexible-vlan-tagging
user@host# set interfaces et-0/0/4 speed 40g
user@host# set interfaces et-0/0/4 encapsulation flexible-ethernet-services
user@host# set interfaces et-0/0/4 unit 108 encapsulation vlan-bridge
user@host# set interfaces et-0/0/4 unit 108 vlan-id 108
user@host# set routing-instances VPLS instance-type virtual-switch
user@host# set routing-instances VPLS protocols vpls neighbor 192.168.1.3
user@host# set routing-instances VPLS protocols vpls no-tunnel-services
user@host# set routing-instances VPLS protocols vpls vpls-id 1001
user@host# set routing-instances VPLS vlans v108 vlan-id 108
user@host# set routing-instances VPLS vlans v108 interface et-0/0/4.108

Result

content_copy zoom_out_map
user@host> show configuration interfaces et-0/0/4
flexible-vlan-tagging;
speed 40g;
encapsulation flexible-ethernet-services;
unit 108 {
    encapsulation vlan-bridge;
    vlan-id 108;
}

user@host> show configuration routing-instances
VPLS {
    instance-type virtual-switch;
    protocols {
        vpls {
            neighbor 192.168.1.3;
            no-tunnel-services;
            vpls-id 1001;
        }
    }
    vlans {
        V108 {
            vlan-id 108;
            interface et-0/0/4.108;
        }
    }
}

Verification

Confirm that the configuration is working properly.

Verify the VPLS connection status by running the show vpls connections command.

content_copy zoom_out_map
user@host> show vpls connections 
Layer-2 VPN connections:

Legend for interface status 
Up -- operational           
Dn -- down
 
Instance: VPLS
  VPLS-id: 1001
    Neighbor                  Type  St     Time last up          # Up trans
    192.168.1.3(vpls-id 1001)     rmt   Up     Jun 12 12:50:07 2023           1
      Remote PE: 192.168.1.3, Negotiated control-word: No
      Incoming label: 22, Outgoing label: 259
      Negotiated PW status TLV: No
      Local interface: lsi.1048576, Status: Up, Encapsulation: ETHERNET
        Description: Intf - vpls VPLS neighbor 192.168.1.3 vpls-id 1001
      Flow Label Transmit: No, Flow Label Receive: No

In this output, the VPLS connection status is up between the two PE routers.

Verify the MAC address learnt on the local PE and the remote PE by running the show ethernet-switching table instance VPLS command.

content_copy zoom_out_map
user@host> show ethernet-switching table instance VPLS    
 
MAC flags (S - static MAC, D - dynamic MAC, L - locally learned, P - Persistent static, C - Control MAC
           SE - statistics enabled, NM - non configured MAC, R - remote PE MAC, O - ovsdb MAC
           GBP - group based policy)
 
 
Ethernet switching table : 2 entries, 2 learned
Routing instance : VPLS
    Vlan                MAC                 MAC         Age   GBP     Logical                NH        RTR 
    name                address             flags             Tag     interface              Index     ID
    V108                00:00:00:42:98:47   D             -            et-0/0/4.108           0         0       
    V108                00:00:00:42:98:4a   D             -            lsi.1048832            0         0    

In this output, you can see the MAC address (00:00:00:42:98:47) is learned from the local PE interface (et-0/0/4) with VLAN ID 108 and the MAC address (00:00:00:42:98:4a) is learned from the remote PE interface (lsi.1048832) with VLAN ID 108.

footer-navigation