For quite some time, I struggled with the question of how to connect multiple logical systems together on the same broadcast domain or subnet.
Typically logical systems are connected to each other using logical tunnel (lt-) interfaces. These are point-to-point connections with only two endpoints. I always ended up with something that looked like the topology in figure 1.

What I want, is something that looks like figure 2, where the four logical systems (or more) are on the same subnet so I can test out things like VRRP, OSPF DR election, or IS-IS DIS elections.

The answer to this question is quite simple, once you know what it is. Instead of connecting the logical systems directly to one another, you connect the logical tunnel interfaces into a VPLS instance as per figure 3.

This allows the four logical systems to all be on the same subnet. The lt interfaces on the logical system end are configured with IP addresses, whilst the lt interfaces connected to the VPLS instance don’t have any addressing.
Logical Systems and VPLS example
The following example is based on figure 4. We have four logical systems connected to the same subnet, and we are running OSPF to demonstrate the connectivity. Note that the VPLS instance does not participate in OSPF, it is only providing layer 2 connectivity between the logical systems.
LS-A and LS-B are configured to be the DR and BDR respectively.

Logical System Configuration
Firstly we’ll look at LS-A. The other logical systems are configured almost the same, with minor differences in interface and OSPF priority settings.
With logical systems, the interfaces are configured directly under the logical-system itself, rather than configured in the base or default instance. The logical tunnel encapsulation is set to ethernet.
logical-systems {
LS-A {
interfaces {
lt-0/0/0 {
unit 1 {
encapsulation ethernet;
peer-unit 2;
family inet {
address 10.0.10.1/24;
}
}
}
lo0 {
unit 1 {
family inet {
address 192.168.0.1/32;
}
}
}
}
protocols {
ospf {
area 0.0.0.0 {
interface lt-0/0/0.1 {
priority 150;
}
}
}
}
}
}
VPLS Configuration
The VPLS configuration below is only showing what is relevant for the connection to LS-A. Additional interfaces need to be defined for the other logical systems.
There are a few things to note here. Because the vpls instance is being configured in the base or default logical system, the interfaces and routing-instance are defined as normal.
The lt interface has an encapsulation of ethernet-vpls because we are placing the interface into a VPLS instance. The VPLS instance does not need to specify a route-target or route-distinguisher because everything is being done on the one device.
interfaces {
lt-0/0/0 {
unit 2 {
encapsulation ethernet-vpls;
peer-unit 1;
}
}
}
routing-instances {
VPLS-Test {
instance-type vpls;
interface lt-0/0/0.2;
}
}
The Results
Once we have configured all four logical systems and the lt interfaces, we can run some show commands to see what we get. We need the logical-system parameter for all the commands so the router knows which logical system to look at.
LS-A
LS-A has been elected as the DR due to its priority and has a full adjacency with the other three routers.
lab@vMX-1> show ospf interface logical-system LS-A
Interface State Area DR ID BDR ID Nbrs
lt-0/0/0.1 DR 0.0.0.0 192.168.0.1 192.168.0.2 3
lab@vMX-1> show ospf neighbor logical-system LS-A
Address Interface State ID Pri Dead
10.0.10.2 lt-0/0/0.1 Full 192.168.0.2 140 39
10.0.10.3 lt-0/0/0.1 Full 192.168.0.3 128 30
10.0.10.4 lt-0/0/0.1 Full 192.168.0.4 128 33
LS-B
LS-B is similar to LS-A. It has become BDR and again established a full adjacency with the other three routers.
lab@vMX-1> show ospf interface logical-system LS-B
Interface State Area DR ID BDR ID Nbrs
lt-0/0/0.3 BDR 0.0.0.0 192.168.0.1 192.168.0.2 3
lab@vMX-1> show ospf neighbor logical-system LS-B
Address Interface State ID Pri Dead
10.0.10.4 lt-0/0/0.3 Full 192.168.0.4 128 39
10.0.10.3 lt-0/0/0.3 Full 192.168.0.3 128 37
10.0.10.1 lt-0/0/0.3 Full 192.168.0.1 150 37
LS-C
The output for LS-C differs from LS-A and LS-B. It has become DRother, which is to be expected since it is neither the DR nor the BDR. Something that might be surprising though is the 2Way state it has established with LS-D.
This is completely normal behavior when there are more than three OSPF routers on a broadcast network. The DRother routers form full adjacencies with the DR and BDR routers only. Since LS-C and LS-D will have exchanged hello messages they are aware of one another, but will not form a full adjacency unless one of them moves into the DR or BDR role for some reason, such as the removal of LS-A.
lab@vMX-1> show ospf interface logical-system LS-C
Interface State Area DR ID BDR ID Nbrs
lt-0/0/0.5 DRother 0.0.0.0 192.168.0.1 192.168.0.2 3
lab@vMX-1> show ospf neighbor logical-system LS-C
Address Interface State ID Pri Dead
10.0.10.4 lt-0/0/0.5 2Way 192.168.0.4 128 34
10.0.10.1 lt-0/0/0.5 Full 192.168.0.1 150 31
10.0.10.2 lt-0/0/0.5 Full 192.168.0.2 140 31
LS-D
LS-D is very similar to LS-C, forming two full adjacencies and showing the 2Way state with LS-C.
lab@vMX-1> show ospf interface logical-system LS-D
Interface State Area DR ID BDR ID Nbrs
lt-0/0/0.7 DRother 0.0.0.0 192.168.0.1 192.168.0.2 3
lab@vMX-1> show ospf neighbor logical-system LS-D
Address Interface State ID Pri Dead
10.0.10.1 lt-0/0/0.7 Full 192.168.0.1 150 32
10.0.10.2 lt-0/0/0.7 Full 192.168.0.2 140 32
10.0.10.3 lt-0/0/0.7 2Way 192.168.0.3 128 37
As you can see, combining lt interfaces with a VPLS instance allows you to create some useful topologies for your lab environment and can enhance your study options.
Is There Another Option?
With the MX and vMX there is another option. Instead of a VPLS instance, we can create a bridge domain.
The lt interfaces will need to be configured with encapsulation of ethernet-bridge, rather than ethernet-vpls, and you will need to configure a basic bridge domain.
interfaces {
lt-0/0/0 {
unit 2 {
encapsulation ethernet-bridge;
peer-unit 1;
}
unit 4 {
encapsulation ethernet-bridge;
peer-unit 3;
}
unit 6 {
encapsulation ethernet-bridge;
peer-unit 5;
}
unit 8 {
encapsulation ethernet-bridge;
peer-unit 7;
}
}
}
bridge-domains {
BD-Test {
interface lt-0/0/0.2;
interface lt-0/0/0.4;
interface lt-0/0/0.6;
interface lt-0/0/0.8;
}
}
The following output from LS-A shows that it has formed full adjacencies with all three other routers.
lab@vMX-1> show ospf interface logical-system LS-A
Interface State Area DR ID BDR ID Nbrs
lt-0/0/0.1 DR 0.0.0.0 192.168.0.1 192.168.0.2 3
lab@vMX-1> show ospf neighbor logical-system LS-A
Address Interface State ID Pri Dead
10.0.10.3 lt-0/0/0.1 Full 192.168.0.3 128 31
10.0.10.4 lt-0/0/0.1 Full 192.168.0.4 128 35
10.0.10.2 lt-0/0/0.1 Full 192.168.0.2 140 35
Complete VPLS Example Configuration
If you want to try this out yourself, the full configuration for the VPLS example is shown below and worked on a vMX. You will need a device that supports logical systems such as the MX, vMX, M, or T series and support for logical tunnel interfaces. On the MX or vMX you can achieve this by turning on tunnel-services under the chassis configuration. The M and T series usually require additional hardware to provide the lt interface.
chassis {
fpc 0 {
pic 0 {
tunnel-services;
}
}
}
logical-systems {
LS-A {
interfaces {
lt-0/0/0 {
unit 1 {
encapsulation ethernet;
peer-unit 2;
family inet {
address 10.0.10.1/24;
}
}
}
lo0 {
unit 1 {
family inet {
address 192.168.0.1/32;
}
}
}
}
protocols {
ospf {
area 0.0.0.0 {
interface lt-0/0/0.1 {
priority 150;
}
}
}
}
}
LS-B {
interfaces {
lt-0/0/0 {
unit 3 {
encapsulation ethernet;
peer-unit 4;
family inet {
address 10.0.10.2/24;
}
}
}
lo0 {
unit 2 {
family inet {
address 192.168.0.2/32;
}
}
}
}
protocols {
ospf {
area 0.0.0.0 {
interface lt-0/0/0.3 {
priority 140;
}
}
}
}
}
LS-C {
interfaces {
lt-0/0/0 {
unit 5 {
encapsulation ethernet;
peer-unit 6;
family inet {
address 10.0.10.3/24;
}
}
}
lo0 {
unit 3 {
family inet {
address 192.168.0.3/32;
}
}
}
}
protocols {
ospf {
area 0.0.0.0 {
interface lt-0/0/0.5;
}
}
}
}
LS-D {
interfaces {
lt-0/0/0 {
unit 7 {
encapsulation ethernet;
peer-unit 8;
family inet {
address 10.0.10.4/24;
}
}
}
lo0 {
unit 4 {
family inet {
address 192.168.0.4/32;
}
}
}
}
protocols {
ospf {
area 0.0.0.0 {
interface lt-0/0/0.7;
}
}
}
}
}
interfaces {
lt-0/0/0 {
unit 2 {
encapsulation ethernet-vpls;
peer-unit 1;
}
unit 4 {
encapsulation ethernet-vpls;
peer-unit 3;
}
unit 6 {
encapsulation ethernet-vpls;
peer-unit 5;
}
unit 8 {
encapsulation ethernet-vpls;
peer-unit 7;
}
}
}
routing-instances {
VPLS-Test {
instance-type vpls;
interface lt-0/0/0.2;
interface lt-0/0/0.4;
interface lt-0/0/0.6;
interface lt-0/0/0.8;
}
}