MPLS in Linux

MPLS old tutorial
https://www.netdevconf.org/1.1/proceedings/slides/prabhu-mpls-tutorial.pdf

Routing 10.10.10.10/32 to 192.168.1.2 with label 100:

ip route add 10.10.10.10/32 encap mpls 100 via inet 192.168.1.2

Label swapping 100 for 200 and sent to 192.168.2.2:

ip -f mpls route add 100 as 200 via inet 192.168.2.2

Decapsulating label 300 and delivering locally:

ip -f mpls route add 300 dev lo

To show MPLS routes you can do:

ip -f mpls route show

containerlab + FRR and MPLS

MPLS networks implementation using FRRouting
This repository includes three MPLS implementations using FRR routers. The first lab sets the MPLS labels manually in three-router topology. In the second lab, the labels are distributed using LDP (Label Distribution Protocol) in three-router ISP network connecting two customer routers. The third lab uses Virtual Routing and Forwarding (VRF) and BGP to create L3 VPN tunnels across an ISP network.

Configuring MPLS TE examples > FRR configuration example

https://codilime.com/blog/linux-network-features-isp-point-of-view

End-to-End MPLS Not Working On Docker Container

MPLS Lab – Playing with static LSPs and VRFs on Linux

GNS3: Basic MPLS L3VPN and OSPF in PE-CE routing

https://github.com/thomarite/mpls-basic
This is a basic MPLS L3VPN network built in GNS3 to understand this technology.