VPP/Segment Routing for MPLS
This example shows how to use the VPP platform to setup a L3VPN with SR MPLS. For further information regarding the SR MPLS implementation and CLI please visit the doxygen documentation. For further information on SR, tutorials and videos please visit www.segment-routing.net.
Contents
Introduction
Please see [1].
Topology Diagram
Our topology is simply going to be four VPP nodes with both, an IPv4 and IPv6 clients and servers attached to this core network. The 'core' network is running IPv4 only.
L3VPN for IPv6 traffic
On all nodes we will configure the nodal SID for that node (value 100 + node) and reachability to each of the other nodal SIDs. For brevity reachability is added only in the left to right direction.
In this example what we will do is on C1 create a SR Policy with only one SID list. This SID list will be <C2, C4>. On C1 I will add an steering policy to steer all the L3 traffic destined to B::/112 via the BindingSID of the SR policy we just created before.
Note that this is a L3VPN for all traffic from A:: to B::. In this example the returning path is not shown. The user must create another SR policy at C4 with the appropriate SR LocalSIDs at the different nodes for the returning path.
Configuration on C1
Reachability to other nodes:
vpp# mpls local-label add 102 non-eos via 10.0.0.2 GigEthernet0/0/0 out-labels 102 vpp# mpls local-label add 102 eos via 10.0.0.2 GigEthernet0/0/0 out-labels 102 vpp# mpls local-label add 103 non-eos via 10.0.1.2 GigEthernet0/0/1 out-labels 103 vpp# mpls local-label add 103 eos via 10.0.1.2 GigEthernet0/0/1 out-labels 103 vpp# mpls local-label add 104 non-eos via 10.0.0.2 GigEthernet0/0/1 out-labels 104 vpp# mpls local-label add 104 eos via 10.0.0.2 GigEthernet0/0/1 out-labels 104
Policy and steering:
vpp# sr mpls policy add bsid 999 next 102 104
The SID list (102, 104) is interpreted as; forward the packet as if it is being sent to 102 and add the MPLS label 104. Forwarding via 102 means VPP will perform a recursive lookup for 102, which in this case would forward via [10.0.0.2 GigEthernet0/0/0] and add label 102. So the packet will leave C1 with an outer label 102 and inner 104.
vpp# sr steer l3 B::/112 via sr policy bsid 999
This configuration can be verified with the CLI:
vpp# show sr mpls pol [todo] ----------- vpp# show sr mpls steering policies [todo]
Configuration on C2
The nodal SID
vpp# mpls local-label add 102 non-eos via mpls-lookup-in-table 0 vpp# mpls local-label add 102 eos via ip4-lookup-in-table 0
Reachability to other nodes
vpp# mpls local-label add 103 non-eos via 10.0.2.2 GigEthernet0/0/0 out-labels 103 vpp# mpls local-label add 103 eos via 10.0.2.2 GigEthernet0/0/0 out-labels 103 vpp# mpls local-label add 104 non-eos via 10.0.2.2 GigEthernet0/0/0 out-labels 104 vpp# mpls local-label add 104 eos via 10.0.2.2 GigEthernet0/0/0 out-labels 104
This configuration can be verified with the CLI:
vpp# show mpls fib [todo]
Configuration on C3
The nodal SID
vpp# mpls local-label add 103 non-eos via mpls-lookup-in-table 0 vpp# mpls local-label add 103 eos via ip4-lookup-in-table 0
Reachability to other nodes
vpp# mpls local-label add 104 non-eos via 10.0.3.2 GigEthernet0/0/0 out-labels 104 vpp# mpls local-label add 104 eos via 10.0.3.2 GigEthernet0/0/0 out-labels 104
This configuration can be verified with the CLI:
vpp# show mpls fib [todo]
Configuration on C4
The nodal SID
vpp# mpls local-label add 104 non-eos via mpls-lookup-in-table 0 vpp# mpls local-label add 104 eos via ip4-lookup-in-table 0
This configuration can be verified with the CLI:
vpp# show mpls fib [todo]