<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/worth-reading-lab-as-code-containerlab-and-netlab-ipspace-net-blog-6nkyndkk1" -->

---
title: Worth Reading: Lab as Code (containerlab and netlab) «...
description: A pointer to an in-depth blog post on using containerlab and netlab to manage network labs as code. The author (netlab maintainer) notes that the referenced...
canonical: https://daily.dev/posts/worth-reading-lab-as-code-containerlab-and-netlab-ipspace-net-blog-6nkyndkk1
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Worth Reading: Lab as Code (containerlab and netlab) « ipSpace.net blog | daily.dev
og:description: A pointer to an in-depth blog post on using containerlab and netlab to manage network labs as code. The author (netlab maintainer) notes that the referenced...
og:url: https://daily.dev/posts/worth-reading-lab-as-code-containerlab-and-netlab-ipspace-net-blog-6nkyndkk1
og:image: https://api.daily.dev/og/posts/6NkyNDKK1.png
og:image:alt: Worth Reading: Lab as Code (containerlab and netlab) « 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.

# Worth Reading: Lab as Code (containerlab and netlab) « ipSpace.net blog

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

## Summary

A pointer to an in-depth blog post on using containerlab and netlab to manage network labs as code. The author (netlab maintainer) notes that the referenced post documented several netlab shortcomings, which were subsequently fixed in netlab release 26.04. Fixes include a new bgp.advertise attribute for advertising prefixes into BGP, dual-stack bgp.originate support in global and VRF BGP instances, documentation clarification for bgp.as vs vrf.as, a missing node router_id attribute, and a bug in the bgp.policy plugin that corrupted the module node attribute for hosts.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://blog.ipspace.net/2026/04/worth-reading-lab-as-code>

## Questions this post answers

### What does the bgp.advertise attribute do in netlab and how is it implemented?

The bgp.advertise attribute in netlab is a list of prefixes to advertise into BGP. It is implemented as network statements on Cisco IOS, Arista EOS, and FRR, and as prefix lists for BGP export policies on Junos, SR Linux, and SR OS. It was introduced alongside improvements to bgp.originate to support dual-stack operation in both global and VRF BGP instances.

_Network engineers building BGP labs with netlab track attribute changes like these on daily.dev._

### What bugs were fixed in netlab release 26.04?

Netlab 26.04 fixed several issues: a new bgp.advertise attribute was added for prefix advertisement, bgp.originate gained dual-stack support in global and VRF BGP instances, documentation for bgp.as vs vrf.as confusion was clarified, a missing node router_id attribute was restored, and a bug where the bgp.policy plugin corrupted the module node attribute for hosts was resolved.

_Developers managing network labs with netlab can follow releases like this on daily.dev._

## Similar posts on daily.dev

- [Networking Aspects of Running VMs in Containers « ipSpace.net blog](https://daily.dev/posts/networking-aspects-of-running-vms-in-containers-ipspace-net-blog-gttjndloc) · ipSpace.net Blog · 0 upvotes · 0 comments

---

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

[View this post on daily.dev](https://daily.dev/posts/worth-reading-lab-as-code-containerlab-and-netlab-ipspace-net-blog-6nkyndkk1)

```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":"Worth Reading: Lab as Code (containerlab and netlab) « ipSpace.net blog","url":"https://daily.dev/posts/worth-reading-lab-as-code-containerlab-and-netlab-ipspace-net-blog-6nkyndkk1","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/worth-reading-lab-as-code-containerlab-and-netlab-ipspace-net-blog-6nkyndkk1"},"datePublished":"2026-08-11T08:54:13.103Z","dateModified":"2026-08-11T09:15:56.243Z","description":"A pointer to an in-depth blog post on using containerlab and netlab to manage network labs as code. The author (netlab maintainer) notes that the referenced...","image":"https://media.daily.dev/image/upload/s--VDukGCjf--/f_auto/v1722860399/public/Placeholder%2002","thumbnailUrl":"https://media.daily.dev/image/upload/s--VDukGCjf--/f_auto/v1722860399/public/Placeholder%2002","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/worth-reading-lab-as-code-containerlab-and-netlab-ipspace-net-blog-6nkyndkk1","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"networking,iac,bgp","timeRequired":"PT2M"}
{"@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":"Worth Reading: Lab as Code (containerlab and netlab) « ipSpace.net blog"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/worth-reading-lab-as-code-containerlab-and-netlab-ipspace-net-blog-6nkyndkk1#faq","mainEntity":[{"@type":"Question","name":"What does the bgp.advertise attribute do in netlab and how is it implemented?","acceptedAnswer":{"@type":"Answer","text":"The bgp.advertise attribute in netlab is a list of prefixes to advertise into BGP. It is implemented as network statements on Cisco IOS, Arista EOS, and FRR, and as prefix lists for BGP export policies on Junos, SR Linux, and SR OS. It was introduced alongside improvements to bgp.originate to support dual-stack operation in both global and VRF BGP instances. Network engineers building BGP labs with netlab track attribute changes like these on daily.dev."}},{"@type":"Question","name":"What bugs were fixed in netlab release 26.04?","acceptedAnswer":{"@type":"Answer","text":"Netlab 26.04 fixed several issues: a new bgp.advertise attribute was added for prefix advertisement, bgp.originate gained dual-stack support in global and VRF BGP instances, documentation for bgp.as vs vrf.as confusion was clarified, a missing node router_id attribute was restored, and a bug where the bgp.policy plugin corrupted the module node attribute for hosts was resolved. Developers managing network labs with netlab can follow releases like this on daily.dev."}}]}
```

