<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/netlab-using-l3vpn-mpls-vpn-with-sr-mpls-core-ipspace-net-blog-akgfrfe9u" -->

---
title: netlab: Using L3VPN (MPLS/VPN) with SR-MPLS Core «...
description: A practical walkthrough of building an MPLS/VPN (BGP/MPLS IP VPN) lab with an SR-MPLS core using the netlab network lab tool. The topology uses Arista EOS cEOS...
canonical: https://daily.dev/posts/netlab-using-l3vpn-mpls-vpn-with-sr-mpls-core-ipspace-net-blog-akgfrfe9u
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: netlab: Using L3VPN (MPLS/VPN) with SR-MPLS Core « ipSpace.net blog | daily.dev
og:description: A practical walkthrough of building an MPLS/VPN (BGP/MPLS IP VPN) lab with an SR-MPLS core using the netlab network lab tool. The topology uses Arista EOS cEOS...
og:url: https://daily.dev/posts/netlab-using-l3vpn-mpls-vpn-with-sr-mpls-core-ipspace-net-blog-akgfrfe9u
og:image: https://api.daily.dev/og/posts/Akgfrfe9u.png
og:image:alt: netlab: Using L3VPN (MPLS/VPN) with SR-MPLS Core « ipSpace.net blog
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# netlab: Using L3VPN (MPLS/VPN) with SR-MPLS Core « ipSpace.net blog

**[ipSpace.net Blog](https://daily.dev/sources/ipspace)** · 5 min read · 0 upvotes · 0 comments

## Summary

A practical walkthrough of building an MPLS/VPN (BGP/MPLS IP VPN) lab with an SR-MPLS core using the netlab network lab tool. The topology uses Arista EOS cEOS containers as PE routers, FRRouting containers as P routers, and Linux containers as hosts, organized into two VRFs. The post explains the YAML topology definition, how LDP must be disabled when using SR-MPLS, how VPN and transport labels are assigned (VPN label from BGP VPNv4, transport label from SR node SIDs), and the difference between SRGB ranges on EOS vs FRRouting nodes. Instructions are provided for running the lab locally in a Linux VM, via WSL, on Apple Silicon, or in GitHub Codespaces.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://blog.ipspace.net/2026/03/netlab-sr-mpls-l3vpn>

## Questions this post answers

### Why do I need to disable LDP when using SR-MPLS with the netlab MPLS module?

netlab assumes LDP should run whenever the MPLS module is enabled, so when using SR-MPLS as the transport instead, LDP must be explicitly disabled by setting mpls.ldp: False in the topology file. Without this, netlab will attempt to configure LDP alongside SR-MPLS, which is not the intended behavior for a pure SR-MPLS core.

_Network engineers building SR-MPLS labs track netlab quirks like this on daily.dev._

### How does a PE router choose which MPLS transport label to use when the SRGB differs between EOS and FRRouting nodes?

The PE router must use the label from the adjacent P router's SRGB, not the label advertised by the remote PE. In a mixed EOS/FRRouting topology, FRRouting uses SRGB base 16000 while Arista EOS uses 900000. So PE1 reaching PE2 via P1 uses label 16006 (P1's SRGB base 16000 + node SID 6), not PE2's advertised label 900006.

_Engineers mixing EOS and FRRouting in SR-MPLS labs find edge cases like this covered on daily.dev._

## Similar posts on daily.dev

- [MPLS/VPN with SR-MPLS Core « ipSpace.net blog](https://daily.dev/posts/mpls-vpn-with-sr-mpls-core-ipspace-net-blog-nw3uwiphe) · ipSpace.net Blog · 0 upvotes · 0 comments
- [BGP-Free Core with SR-MPLS « ipSpace.net blog](https://daily.dev/posts/bgp-free-core-with-sr-mpls-ipspace-net-blog-h7kronzy3) · ipSpace.net Blog · 0 upvotes · 0 comments
- [EVPN with SR-MPLS Core « ipSpace.net blog](https://daily.dev/posts/evpn-with-sr-mpls-core-ipspace-net-blog-taobtibzc) · ipSpace.net Blog · 0 upvotes · 0 comments
- [Multivendor SR-MPLS « ipSpace.net blog](https://daily.dev/posts/multivendor-sr-mpls-ipspace-net-blog-qekokwduk) · ipSpace.net Blog · 0 upvotes · 0 comments
- [Sample netlab SRv6 Lab Topologies « ipSpace.net blog](https://daily.dev/posts/sample-netlab-srv6-lab-topologies-ipspace-net-blog-s8nppf7yo) · ipSpace.net Blog · 0 upvotes · 0 comments

---

Tags: [#bgp](https://daily.dev/tags/bgp), [#networking](https://daily.dev/tags/networking)

[View this post on daily.dev](https://daily.dev/posts/netlab-using-l3vpn-mpls-vpn-with-sr-mpls-core-ipspace-net-blog-akgfrfe9u)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"netlab: Using L3VPN (MPLS/VPN) with SR-MPLS Core « ipSpace.net blog","url":"https://daily.dev/posts/netlab-using-l3vpn-mpls-vpn-with-sr-mpls-core-ipspace-net-blog-akgfrfe9u","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/netlab-using-l3vpn-mpls-vpn-with-sr-mpls-core-ipspace-net-blog-akgfrfe9u"},"datePublished":"2026-08-11T08:52:22.492Z","dateModified":"2026-10-14T02:24:51.897Z","description":"A practical walkthrough of building an MPLS/VPN (BGP/MPLS IP VPN) lab with an SR-MPLS core using the netlab network lab tool. The topology uses Arista EOS cEOS...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/10dbb6ed93876aaf71f92914d2c30713?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/10dbb6ed93876aaf71f92914d2c30713?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"ipSpace.net Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"ipSpace.net Blog","logo":"https://media.daily.dev/image/upload/s--xS7E82MT--/f_auto,q_auto/v1786438303/logos/ipspace?_a=BAMAMicg0","url":"https://daily.dev/sources/ipspace"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/netlab-using-l3vpn-mpls-vpn-with-sr-mpls-core-ipspace-net-blog-akgfrfe9u","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"bgp,networking","timeRequired":"PT5M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"ipSpace.net Blog","item":"https://daily.dev/sources/ipspace"},{"@type":"ListItem","position":3,"name":"netlab: Using L3VPN (MPLS/VPN) with SR-MPLS Core « ipSpace.net blog"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/netlab-using-l3vpn-mpls-vpn-with-sr-mpls-core-ipspace-net-blog-akgfrfe9u#faq","mainEntity":[{"@type":"Question","name":"Why do I need to disable LDP when using SR-MPLS with the netlab MPLS module?","acceptedAnswer":{"@type":"Answer","text":"netlab assumes LDP should run whenever the MPLS module is enabled, so when using SR-MPLS as the transport instead, LDP must be explicitly disabled by setting mpls.ldp: False in the topology file. Without this, netlab will attempt to configure LDP alongside SR-MPLS, which is not the intended behavior for a pure SR-MPLS core. Network engineers building SR-MPLS labs track netlab quirks like this on daily.dev."}},{"@type":"Question","name":"How does a PE router choose which MPLS transport label to use when the SRGB differs between EOS and FRRouting nodes?","acceptedAnswer":{"@type":"Answer","text":"The PE router must use the label from the adjacent P router's SRGB, not the label advertised by the remote PE. In a mixed EOS/FRRouting topology, FRRouting uses SRGB base 16000 while Arista EOS uses 900000. So PE1 reaching PE2 via P1 uses label 16006 (P1's SRGB base 16000 + node SID 6), not PE2's advertised label 900006. Engineers mixing EOS and FRRouting in SR-MPLS labs find edge cases like this covered on daily.dev."}}]}
```

