MXimal Performance Lab
Let my introduce you to my MXimal Performance Lab (you get the joke?), which I purposely created for this website in order to show you different technologies.
And this is how it looks like:

Let me explain what is happening here. The lab consists of 6 vMX routers from Juniper, 4 of which play as P-router, the other 2 being PE-routers. The P-routers are all interconnected with direct links and each PE-router is connected to its nearest two P-routers.
IP-address wise, all the /30 transfernetwork IP-addresses are placed in the 10.255.255.X range; for IPv6 its 2a01:beef::X/127 networks. Each link has its local IP-address placed next to it. The loopback adresses for the P-routers stem from 172.16.0.Y/24 (2a01:beef:a::/64), for the PE-routers it’s 172.16.1.Z/24 (2a01:beef:b::/64).
For interfaces, it does not really matter which interfaces to use, as long as the IP-addresses match. They are all configured with the family mpls, inet, inet6 and iso. This makes them perfectly prepared for most use cases. Just for your convinience, I post the configuration for each router below, in case you want to recreate it in your homelab.
Configuration for P1
system {
host-name P1.mpl;
services {
ssh;
netconf {
ssh;
}
}
syslog {
user * {
any emergency;
}
file messages {
any error;
authorization info;
}
file interactive-commands {
interactive-commands any;
}
}
}
chassis {
fpc 0 {
pic 0 {
interface-type xe;
}
}
}
interfaces {
xe-0/0/0 {
description "P2 xe-0/0/0";
unit 0 {
family inet {
address 10.255.255.1/30;
}
family inet6 {
address 2a01:beef::1/127;
}
family iso;
family mpls;
}
}
xe-0/0/1 {
description "P3 xe-0/0/1";
unit 0 {
family inet {
address 10.255.255.9/30;
}
family inet6 {
address 2a01:beef::9/127;
}
family iso;
family mpls;
}
}
xe-0/0/2 {
description "P4 xe-0/0/2";
unit 0 {
family inet {
address 10.255.255.21/30;
}
family inet6 {
address 2a01:beef::21/127;
}
family iso;
family mpls;
}
}
xe-0/0/3 {
description "PE1 xe-0/0/3";
unit 0 {
family inet {
address 10.255.255.26/30;
}
family inet6 {
address 2a01:beef::26/127;
}
family iso;
family mpls;
}
}
fxp0 {
unit 0 {
family inet {
address 192.168.71.1/24;
}
}
}
lo0 {
unit 0 {
family inet {
address 172.16.0.1/32;
}
family inet6 {
address 2a01:beef:a::1/128;
}
family iso {
address 49.0001.1720.1600.0001.00;
}
}
}
}
routing-options {
static {
route 0.0.0.0/0 next-hop 192.168.71.254;
}
}
Configuration for P2
system {
host-name P2.mpl;
services {
ssh;
netconf {
ssh;
}
}
syslog {
user * {
any emergency;
}
file messages {
any error;
authorization info;
}
file interactive-commands {
interactive-commands any;
}
}
}
chassis {
fpc 0 {
pic 0 {
interface-type xe;
}
}
}
interfaces {
xe-0/0/0 {
description "P1 xe-0/0/0";
unit 0 {
family inet {
address 10.255.255.2/30;
}
family inet6 {
address 2a01:beef::2/127;
}
family iso;
family mpls;
}
}
xe-0/0/1 {
description "P4 xe-0/0/1";
unit 0 {
family inet {
address 10.255.255.5/30;
}
family inet6 {
address 2a01:beef::5/127;
}
family iso;
family mpls;
}
}
xe-0/0/2 {
description "P3 xe-0/0/2";
unit 0 {
family inet {
address 10.255.255.18/30;
}
family inet6 {
address 2a01:beef::18/127;
}
family iso;
family mpls;
}
}
xe-0/0/3 {
description "PE2 xe-0/0/3";
unit 0 {
family inet {
address 10.255.255.37/30;
}
family inet6 {
address 2a01:beef::37/127;
}
family iso;
family mpls;
}
}
fxp0 {
unit 0 {
family inet {
address 192.168.71.2/24;
}
}
}
lo0 {
unit 0 {
family inet {
address 172.16.0.2/32;
}
family inet6 {
address 2a01:beef:a::2/128;
}
family iso {
address 49.0001.1720.1600.0002.00;
}
}
}
}
routing-options {
static {
route 0.0.0.0/0 next-hop 192.168.71.254;
}
}
Configuration for P3
system {
host-name P3.mpl;
services {
ssh;
netconf {
ssh;
}
}
syslog {
user * {
any emergency;
}
file messages {
any error;
authorization info;
}
file interactive-commands {
interactive-commands any;
}
}
}
chassis {
fpc 0 {
pic 0 {
interface-type xe;
}
}
}
interfaces {
xe-0/0/0 {
description "P4 xe-0/0/0";
unit 0 {
family inet {
address 10.255.255.13/30;
}
family inet6 {
address 2a01:beef::13/127;
}
family iso;
family mpls;
}
}
xe-0/0/1 {
description "P1 xe-0/0/1";
unit 0 {
family inet {
address 10.255.255.10/30;
}
family inet6 {
address 2a01:beef::10/127;
}
family iso;
family mpls;
}
}
xe-0/0/2 {
description "P2 xe-0/0/2";
unit 0 {
family inet {
address 10.255.255.17/30;
}
family inet6 {
address 2a01:beef::17/127;
}
family iso;
family mpls;
}
}
xe-0/0/4 {
description "PE1 xe-0/0/4";
unit 0 {
family inet {
address 10.255.255.30/30;
}
family inet6 {
address 2a01:beef::30/127;
}
family iso;
family mpls;
}
}
fxp0 {
unit 0 {
family inet {
address 192.168.71.3/24;
}
}
}
lo0 {
unit 0 {
family inet {
address 172.16.0.3/32;
}
family inet6 {
address 2a01:beef:a::3/128;
}
family iso {
address 49.0001.1720.1600.0003.00;
}
}
}
}
routing-options {
static {
route 0.0.0.0/0 next-hop 192.168.71.254;
}
}
Configuration for P4
system {
host-name P4.mpl;
services {
ssh;
netconf {
ssh;
}
}
syslog {
user * {
any emergency;
}
file messages {
any error;
authorization info;
}
file interactive-commands {
interactive-commands any;
}
}
}
chassis {
fpc 0 {
pic 0 {
interface-type xe;
}
}
}
interfaces {
xe-0/0/0 {
description "P3 xe-0/0/0";
unit 0 {
family inet {
address 10.255.255.14/30;
}
family inet6 {
address 2a01:beef::14/127;
}
family iso;
family mpls;
}
}
xe-0/0/1 {
description "P2 xe-0/0/1";
unit 0 {
family inet {
address 10.255.255.6/30;
}
family inet6 {
address 2a01:beef::6/127;
}
family iso;
family mpls;
}
}
xe-0/0/2 {
description "P1 xe-0/0/2";
unit 0 {
family inet {
address 10.255.255.22/30;
}
family inet6 {
address 2a01:beef::22/127;
}
family iso;
family mpls;
}
}
xe-0/0/4 {
description "PE2 xe-0/0/4";
unit 0 {
family inet {
address 10.255.255.33/30;
}
family inet6 {
address 2a01:beef::33/127;
}
family iso;
family mpls;
}
}
fxp0 {
unit 0 {
family inet {
address 192.168.71.4/24;
}
}
}
lo0 {
unit 0 {
family inet {
address 172.16.0.4/32;
}
family inet6 {
address 2a01:beef:a::4/128;
}
family iso {
address 49.0001.1720.1600.0004.00;
}
}
}
}
routing-options {
static {
route 0.0.0.0/0 next-hop 192.168.71.254;
}
}
Configuration for PE1
system {
host-name PE1.mpl;
services {
ssh;
netconf {
ssh;
}
}
syslog {
user * {
any emergency;
}
file messages {
any error;
authorization info;
}
file interactive-commands {
interactive-commands any;
}
}
}
chassis {
fpc 0 {
pic 0 {
interface-type xe;
}
}
}
interfaces {
xe-0/0/3 {
description "P1 xe-0/0/3";
unit 0 {
family inet {
address 10.255.255.25/30;
}
family inet6 {
address 2a01:beef::25/127;
}
family iso;
family mpls;
}
}
xe-0/0/4 {
description "P3 xe-0/0/4";
unit 0 {
family inet {
address 10.255.255.29/30;
}
family inet6 {
address 2a01:beef::29/127;
}
family iso;
family mpls;
}
}
fxp0 {
unit 0 {
family inet {
address 192.168.71.11/24;
}
}
}
lo0 {
unit 0 {
family inet {
address 172.16.1.1/32;
}
family inet6 {
address 2a01:beef:b::1/128;
}
family iso {
address 49.0001.1720.1600.1001.00;
}
}
}
}
routing-options {
static {
route 0.0.0.0/0 next-hop 192.168.71.254;
}
}
Configuration for PE2
system {
host-name PE2.mpl;
services {
ssh;
netconf {
ssh;
}
}
syslog {
user * {
any emergency;
}
file messages {
any error;
authorization info;
}
file interactive-commands {
interactive-commands any;
}
}
}
chassis {
fpc 0 {
pic 0 {
interface-type xe;
}
}
}
interfaces {
xe-0/0/3 {
description "P2 xe-0/0/3";
unit 0 {
family inet {
address 10.255.255.38/30;
}
family inet6 {
address 2a01:beef::38/127;
}
family iso;
family mpls;
}
}
xe-0/0/4 {
description "P4 xe-0/0/4";
unit 0 {
family inet {
address 10.255.255.34/30;
}
family inet6 {
address 2a01:beef::34/127;
}
family iso;
family mpls;
}
}
fxp0 {
unit 0 {
family inet {
address 192.168.71.12/24;
}
}
}
lo0 {
unit 0 {
family inet {
address 172.16.1.2/32;
}
family inet6 {
address 2a01:beef:b::2/128;
}
family iso {
address 49.0001.1720.1600.1002.00;
}
}
}
}
routing-options {
static {
route 0.0.0.0/0 next-hop 192.168.71.254;
}
}