Introduction to Configuring VPLS
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.
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-switch
Junos 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.
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
- VPLS CLI Configuration Hierarchy Differences between Junos OS and Junos OS Evolved
- Sample VPLS Configuration on Junos OS
- Sample VPLS Configuration on Junos OS Evolved
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.
Devices running on Junos OS Evolved do not support configuring family VPLS on the interfaces.
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
|
Configure VLAN without VLAN IDs, or with VLAN ID as
none , or VLAN ID as
all |
user@host# set routing-instances routing-instance-name |
Note:
When you configure a VLAN without VLAN IDs, or with
VLAN ID as Note:
The ACX7000 family of routers do not support the
|
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 |
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
[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
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.
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.
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
[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
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.
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.
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.