-
Notifications
You must be signed in to change notification settings - Fork 708
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.
Please see [1].
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.
SRv6 L3VPN 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.
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]
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]
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]
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]
- VPP 2022 Make Test Use Case Poll
- VPP-AArch64
- VPP-ABF
- VPP Alternative Builds
- VPP API Concepts
- VPP API Versioning
- VPP-ApiChangeProcess
- VPP-ArtifactVersioning
- VPP-BIER
- VPP-Bihash
- VPP-BugReports
- VPP Build System Deep Dive
- VPP Build, Install, And Test Images
- VPP-BuildArtifactRetentionPolicy
- VPP-c2cpel
- VPP Code Walkthrough VoD
- VPP Code Walkthrough VoD Topic Index
- VPP Code Walkthrough VoDs
- VPP-CodeStyleConventions
- VPP-CodingTips
- VPP Command Line Arguments
- VPP Command Line Interface CLI Guide
- VPP-CommitMessages
- VPP-Committers-SMEs
- VPP-CommitterTasks-ApiFreeze
- VPP CommitterTasks Compare API Changes
- VPP-CommitterTasks-CutPointRelease
- VPP-CommitterTasks-CutRelease
- VPP-CommitterTasks-FinalReleaseCandidate
- VPP-CommitterTasks-PullThrottleBranch
- VPP-CommitterTasks-ReleasePlan
- VPP Configuration Tool
- VPP Configure An LW46 MAP E Terminator
- VPP Configure VPP As A Router Between Namespaces
- VPP Configure VPP TAP Interfaces For Container Routing
- VPP-CoreFileMismatch
- VPP-cpel
- VPP-cpeldump
- VPP-CurrentData
- VPP-DHCPKit
- VPP-DHCPv6
- VPP-DistributedOwnership
- VPP-Documentation
- VPP DPOs And Feature Arcs
- VPP EC2 Instance With SRIOV
- VPP-elog
- VPP-FAQ
- VPP Feature Arcs
- VPP-Features
- VPP-Features-IPv6
- VPP-FIB
- VPP-g2
- VPP Getting VPP 16.06
- VPP Getting VPP Release Binaries
- VPP-HA
- VPP-HostStack
- VPP-HostStack-BuiltinEchoClientServer
- VPP-HostStack-EchoClientServer
- VPP-HostStack-ExternalEchoClientServer
- VPP HostStack Hs Test
- VPP-HostStack-LDP-iperf
- VPP-HostStack-LDP-nginx
- VPP-HostStack-LDP-sshd
- VPP-HostStack-nginx
- VPP-HostStack-SessionLayerArchitecture
- VPP-HostStack-TestHttpServer
- VPP-HostStack-TestProxy
- VPP-HostStack-TLS
- VPP-HostStack-VCL
- VPP-HostStack-VclEchoClientServer
- VPP-Hotplug
- VPP How To Add A Tunnel Encapsulation
- VPP How To Build The Sample Plugin
- VPP How To Connect A PCI Interface To VPP
- VPP How To Create A VPP Binary Control Plane API
- VPP How To Deploy VPP In EC2 Instance And Use It To Connect Two Different VPCs
- VPP How To Optimize Performance %28System Tuning%29
- VPP How To Use The API Trace Tools
- VPP How To Use The C API
- VPP How To Use The Packet Generator And Packet Tracer
- VPP-Howtos
- VPP-index
- VPP Installing VPP Binaries From Packages
- VPP Interconnecting vRouters With VPP
- VPP Introduction To IP Adjacency
- VPP Introduction To N Tuple Classifiers
- VPP IP Adjacency Introduction
- VPP-IPFIX
- VPP-IPSec
- VPP IPSec And IKEv2
- VPP IPv6 SR VIRL Topology File
- VPP Java API
- VPP Java API Plugin Support
- VPP Jira Workflow
- VPP-Macswapplugin
- VPP-MakeTestFramework
- VPP-Meeting
- VPP-MFIB
- VPP Missing Prefetches
- VPP Modifying The Packet Processing Directed Graph
- VPP MPLS FIB
- VPP-NAT
- VPP Nataas Test
- VPP-OVN
- VPP Per Feature Notes
- VPP Performance Analysis Tools
- VPP-perftop
- VPP Progressive VPP Tutorial
- VPP Project Meeting Minutes
- VPP Pulling, Building, Running, Hacking And Pushing VPP Code
- VPP Pure L3 Between Namespaces With 32s
- VPP Pure L3 Container Networking
- VPP Pushing And Testing A Tag
- VPP Python API
- VPP-PythonVersionPolicy
- VPP-QuickTrexSetup
- VPP Random Hints And Kinks For KVM Usage
- VPP Release Plans Release Plan 16.09
- VPP Release Plans Release Plan 17.01
- VPP Release Plans Release Plan 17.04
- VPP Release Plans Release Plan 17.07
- VPP Release Plans Release Plan 17.10
- VPP Release Plans Release Plan 18.01
- VPP Release Plans Release Plan 18.04
- VPP Release Plans Release Plan 18.07
- VPP Release Plans Release Plan 18.10
- VPP Release Plans Release Plan 19.01
- VPP Release Plans Release Plan 19.04
- VPP Release Plans Release Plan 19.08
- VPP Release Plans Release Plan 20.01
- VPP Release Plans Release Plan 20.05
- VPP Release Plans Release Plan 20.09
- VPP Release Plans Release Plan 21.01
- VPP Release Plans Release Plan 21.06
- VPP Release Plans Release Plan 21.10
- VPP Release Plans Release Plan 22.02
- VPP Release Plans Release Plan 22.06
- VPP Release Plans Release Plan 22.10
- VPP Release Plans Release Plan 23.02
- VPP Release Plans Release Plan 23.06
- VPP Release Plans Release Plan 23.10
- VPP Release Plans Release Plan 24.02
- VPP Release Plans Release Plan 24.06
- VPP Release Plans Release Plan 24.10
- VPP Release Plans Release Plan 25.02
- VPP Release Plans Release Plan 25.06
- VPP Release Plans Release Plan 25.10
- VPP Release Plans Release Plan 26.02
- VPP Release Plans Release Plan 26.06
- VPP-RM
- VPP-SecurityGroups
- VPP Segment Routing For IPv6
- VPP Segment Routing For MPLS
- VPP Setting Up Your Dev Environment
- VPP-SNAT
- VPP Software Architecture
- VPP STN Testing
- VPP The VPP API
- VPP Training Events
- VPP-Troubleshooting
- VPP-Troubleshooting-BuildIssues
- VPP-Troubleshooting-Vagrant
- VPP Tutorial DPDK And MacSwap
- VPP Tutorial Routing And Switching
- VPP-Tutorials
- VPP Use VPP To Chain VMs Using Vhost User Interface
- VPP Use VPP To Connect VMs Using Vhost User Interface
- VPP Using mTCP User Mode TCP Stack With VPP
- VPP Using VPP As A VXLAN Tunnel Terminator
- VPP Using VPP In A Multi Thread Model
- VPP-VOM
- VPP VPP BFD Nexus
- VPP VPP Home Gateway
- VPP VPP WIKI DEPRECATED CONTENT
- VPP-VPPCommunicationsLibrary
- VPP-VPPConfig
- VPP What Is ODP4VPP
- VPP What Is VPP
- VPP Working Environments
- VPP Working With The 16.06 Throttle Branch

