From 4f8d2745e177bdf2a14a2f16be8ffc0d0a378ae0 Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 7 May 2026 16:42:07 +0200 Subject: [PATCH 1/8] Add NLnet Labs podcast episode and logo Signed-off-by: Matthias --- content/podcast/s06e03-nlnet-labs/index.md | 61 ++++++++++++++ content/podcast/s06e03-nlnet-labs/logo.svg | 96 ++++++++++++++++++++++ 2 files changed, 157 insertions(+) create mode 100644 content/podcast/s06e03-nlnet-labs/index.md create mode 100644 content/podcast/s06e03-nlnet-labs/logo.svg diff --git a/content/podcast/s06e03-nlnet-labs/index.md b/content/podcast/s06e03-nlnet-labs/index.md new file mode 100644 index 00000000..3664dcc5 --- /dev/null +++ b/content/podcast/s06e03-nlnet-labs/index.md @@ -0,0 +1,61 @@ ++++ +title = "NLnet Labs" +date = 2026-05-07 +template = "episode.html" +aliases = ["/p/s06e03"] +[extra] +guest = "Arya Khanna and Martin Hoffmann" +role = "Engineers" +season = "06" +episode = "03" +series = "Podcast" ++++ + +
+ +Every time you load a website, send an email, or update an app, you're quietly relying on a handful of unglamorous services that route your packets to the right place: DNS to translate names into addresses, and BGP to figure out how to actually get there. When these systems break, or get attacked, the Internet doesn't just slow down. It stops working. + +For more than 25 years, NLnet Labs has been one of the small, non-profit teams keeping that core infrastructure running. Their software, including the DNS servers NSD and Unbound, the RPKI tools Krill and Routinator, and the new DNSSEC signer Cascade, is deployed everywhere from hobbyist Pi-Hole setups to Let's Encrypt and major Internet operators. And increasingly, it's written in Rust. + +In this episode, I talk to Arya Khanna and Martin Hoffmann from NLnet Labs about what it takes to maintain critical Internet infrastructure as a small team, why they bet on Rust for new projects like the `domain` crate and Cascade, how they think about long-term maintenance and supply chain security in a non-profit context, and what the rest of us can learn from a codebase whose users include the people who keep your routes flowing. + +{{ codecrafters() }} + +## Show Notes + +### About NLnet Labs + +NLnet Labs is a non-profit foundation based in Amsterdam that develops open source software and open standards for the core infrastructure of the Internet. Since 1999, the small but dedicated team has built some of the most widely deployed building blocks of the modern web, including the authoritative DNS nameserver [NSD](https://nlnetlabs.nl/projects/nsd/about/), the recursive DNS resolver [Unbound](https://nlnetlabs.nl/projects/unbound/about/), and the RPKI tools [Krill](https://github.com/NLnetLabs/krill) and [Routinator](https://nlnetlabs.nl/projects/routing/routinator/), which secure global Internet routing. Their work is trusted by operators ranging from hobbyist Pi-Hole users to Let's Encrypt and major Internet service providers. In recent years, NLnet Labs has been steadily moving its new development to Rust, with projects like the [domain](https://nlnetlabs.nl/projects/domain/about/) crate and the [Cascade](https://nlnetlabs.nl/news/2025/Oct/07/cascade-0.1.0-released/) DNSSEC signer leading the way. + + +### Links From The Episode + +- [NSD](https://nlnetlabs.nl/projects/nsd/about/) - NLNet Labs first project +- [Lychee](https://github.com/lycheeverse/lychee) - A link-checker that receives funding from NLNet, not NLNet labs +- [unbound](https://nlnetlabs.nl/projects/unbound/about/) - A DNS server like BIND, but only for recursive queries +- [Cascade](https://nlnetlabs.nl/news/2025/Oct/07/cascade-0.1.0-released/) - The new DNSSEC signing solution from NLNet Labs +- [Pi-Hole](https://pi-hole.net/) - A small usecase for unbound +- [Let's Encrypt](https://letsencrypt.org/) - A big user of unbound with scale and security requirements +- [Asahi Linux](https://asahilinux.org/) - Linux on Apple Silicon, mostly with Rust +- [Binder CVE](https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM) - A CVE in Rust +- [LDNS](https://nlnetlabs.nl/projects/ldns/about/) - A collection of DNS functions, written in C, now in maintenance mode +- [domain](https://nlnetlabs.nl/projects/domain/about/) - The new collection of DNS functions, written in Rust +- [tokio](https://tokio.rs/) - The biggest shared dependency across the Rust ecosystem, first announced in 2017 +- [Rust in Production: Helsing with Jon Gjengset](https://corrode.dev/podcast/s06e02-helsing/) - You _can_ take generics too far +- [bytes](https://github.com/tokio-rs/bytes) - Tokio's ARC of bytes +- [Arc Welding](https://en.wikipedia.org/wiki/Arc_welding) - The other type of "fixing" +- [Alejandra González' crate dependency analysis](https://tech.lgbt/@blyxyas/116252699616176134) - 46% of published crates depend directly on tokio +- [RPKI](https://en.wikipedia.org/wiki/Resource_Public_Key_Infrastructure) - Signing and validating IPs and routing information +- [Routinator](https://nlnetlabs.nl/projects/routing/routinator/) - A RPKI validator, one of the first Rust applications in production +- [hyper](https://hyper.rs/) - The ubiquitous HTTP crate +- [Krill](https://github.com/NLnetLabs/krill) - The RPKI Certificate Authority tool with "fun" shutdown code +- [Roto](https://codeberg.org/NLnetLabs/roto) - Tert's scripting language, used by another NLNet Labs project, Rotonda + +### Official Links + +- [NLnet Labs Website](https://nlnetlabs.nl) +- [Arya Khanna's Website](https://bal-e.org/) +- [Arya Khanna on GitHub](https://github.com/bal-e) +- [Arya Khanna on Mastodon](https://tech.lgbt/@bal4e) +- [Martin Hoffmann on GitHub](https://github.com/partim) +- [Martin Hoffmann on Mastodon](https://social.tchncs.de/@partim) diff --git a/content/podcast/s06e03-nlnet-labs/logo.svg b/content/podcast/s06e03-nlnet-labs/logo.svg new file mode 100644 index 00000000..576d14d4 --- /dev/null +++ b/content/podcast/s06e03-nlnet-labs/logo.svg @@ -0,0 +1,96 @@ + + + +image/svg+xml From 7b6033115ec84593d58ce38f1de5c80571dc23ee Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 7 May 2026 16:44:23 +0200 Subject: [PATCH 2/8] slightly change wording for readability Signed-off-by: Matthias --- content/podcast/s06e03-nlnet-labs/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/podcast/s06e03-nlnet-labs/index.md b/content/podcast/s06e03-nlnet-labs/index.md index 3664dcc5..6e4fd2ef 100644 --- a/content/podcast/s06e03-nlnet-labs/index.md +++ b/content/podcast/s06e03-nlnet-labs/index.md @@ -13,11 +13,11 @@ series = "Podcast"
-Every time you load a website, send an email, or update an app, you're quietly relying on a handful of unglamorous services that route your packets to the right place: DNS to translate names into addresses, and BGP to figure out how to actually get there. When these systems break, or get attacked, the Internet doesn't just slow down. It stops working. +Every time you load a website, send an email, or update an app, you're quietly relying on a handful of unglamorous services that route your packets to the right place: DNS to translate names into addresses, and BGP to figure out how to actually get there. When these systems break, or get attacked, the Internet doesn't just slow down but stops working. -For more than 25 years, NLnet Labs has been one of the small, non-profit teams keeping that core infrastructure running. Their software, including the DNS servers NSD and Unbound, the RPKI tools Krill and Routinator, and the new DNSSEC signer Cascade, is deployed everywhere from hobbyist Pi-Hole setups to Let's Encrypt and major Internet operators. And increasingly, it's written in Rust. +For more than 25 years, NLnet Labs has been one of the small, non-profit teams keeping that core infrastructure running. Their software, including the DNS servers NSD and Unbound, the RPKI tools Krill and Routinator, and the new DNSSEC signer Cascade, is deployed everywhere from hobbyist Pi-Hole setups to Let's Encrypt and major Internet operators. And increasingly, it's written in Rust! -In this episode, I talk to Arya Khanna and Martin Hoffmann from NLnet Labs about what it takes to maintain critical Internet infrastructure as a small team, why they bet on Rust for new projects like the `domain` crate and Cascade, how they think about long-term maintenance and supply chain security in a non-profit context, and what the rest of us can learn from a codebase whose users include the people who keep your routes flowing. +In this episode, I talk to Arya Khanna and Martin Hoffmann from NLnet Labs about what it takes to maintain critical Internet infrastructure as a small team, why they bet on Rust for new projects like the `domain` crate and Cascade and what the rest of us can learn from a codebase whose users include the people who keep your routes flowing. {{ codecrafters() }} From e62cea849b215d16bb2f66dc3dfd5c8434fe30d8 Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 7 May 2026 16:45:30 +0200 Subject: [PATCH 3/8] Update logo colors to black and dark gray Signed-off-by: Matthias --- content/podcast/s06e03-nlnet-labs/logo.svg | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/content/podcast/s06e03-nlnet-labs/logo.svg b/content/podcast/s06e03-nlnet-labs/logo.svg index 576d14d4..a473c427 100644 --- a/content/podcast/s06e03-nlnet-labs/logo.svg +++ b/content/podcast/s06e03-nlnet-labs/logo.svg @@ -52,8 +52,8 @@ inkscape:deskcolor="#d1d1d1" /> + style="fill:#7a7a7a" /> From 6fa542388b52b9fddf1537a9da35b109468042c7 Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 7 May 2026 16:45:57 +0200 Subject: [PATCH 4/8] Shrink logo size Signed-off-by: Matthias --- content/podcast/s06e03-nlnet-labs/logo.svg | 97 +--------------------- 1 file changed, 1 insertion(+), 96 deletions(-) diff --git a/content/podcast/s06e03-nlnet-labs/logo.svg b/content/podcast/s06e03-nlnet-labs/logo.svg index a473c427..30fe80d7 100644 --- a/content/podcast/s06e03-nlnet-labs/logo.svg +++ b/content/podcast/s06e03-nlnet-labs/logo.svg @@ -1,96 +1 @@ - - - -image/svg+xml + \ No newline at end of file From 6ceb05cca2c76c3d77a517dc74acbb1aa0c1fe05 Mon Sep 17 00:00:00 2001 From: M3t0r Date: Thu, 7 May 2026 17:30:51 +0200 Subject: [PATCH 5/8] Add player --- content/podcast/s06e03-nlnet-labs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/podcast/s06e03-nlnet-labs/index.md b/content/podcast/s06e03-nlnet-labs/index.md index 6e4fd2ef..ceaaab80 100644 --- a/content/podcast/s06e03-nlnet-labs/index.md +++ b/content/podcast/s06e03-nlnet-labs/index.md @@ -11,7 +11,7 @@ episode = "03" series = "Podcast" +++ -
+
Every time you load a website, send an email, or update an app, you're quietly relying on a handful of unglamorous services that route your packets to the right place: DNS to translate names into addresses, and BGP to figure out how to actually get there. When these systems break, or get attacked, the Internet doesn't just slow down but stops working. From 1671f92763b61f8c86c29cbdf096bb7e3bc15322 Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 7 May 2026 17:48:24 +0200 Subject: [PATCH 6/8] Create social.png Signed-off-by: Matthias --- content/podcast/s06e03-nlnet-labs/social.png | Bin 0 -> 32512 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 content/podcast/s06e03-nlnet-labs/social.png diff --git a/content/podcast/s06e03-nlnet-labs/social.png b/content/podcast/s06e03-nlnet-labs/social.png new file mode 100644 index 0000000000000000000000000000000000000000..6c8d08c10c6054154801af805d2ccd33e6078a68 GIT binary patch literal 32512 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 bHFh*(cW|~y-50s<3EBr~C8=@=qp$x93jn4L literal 0 HcmV?d00001 From afa241605fe2caccf61204c961b033f27396efdb Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 7 May 2026 17:52:07 +0200 Subject: [PATCH 7/8] Change podcast player size to small on s06e03 page Signed-off-by: Matthias --- content/podcast/s06e03-nlnet-labs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/podcast/s06e03-nlnet-labs/index.md b/content/podcast/s06e03-nlnet-labs/index.md index ceaaab80..5c7d6319 100644 --- a/content/podcast/s06e03-nlnet-labs/index.md +++ b/content/podcast/s06e03-nlnet-labs/index.md @@ -11,7 +11,7 @@ episode = "03" series = "Podcast" +++ -
+
Every time you load a website, send an email, or update an app, you're quietly relying on a handful of unglamorous services that route your packets to the right place: DNS to translate names into addresses, and BGP to figure out how to actually get there. When these systems break, or get attacked, the Internet doesn't just slow down but stops working. From f78d0adf9b02b43daad89cb3baceeb290c272512 Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 7 May 2026 17:56:54 +0200 Subject: [PATCH 8/8] fix some typos --- content/podcast/s06e03-nlnet-labs/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/podcast/s06e03-nlnet-labs/index.md b/content/podcast/s06e03-nlnet-labs/index.md index 5c7d6319..169a60b8 100644 --- a/content/podcast/s06e03-nlnet-labs/index.md +++ b/content/podcast/s06e03-nlnet-labs/index.md @@ -30,8 +30,8 @@ NLnet Labs is a non-profit foundation based in Amsterdam that develops open sour ### Links From The Episode -- [NSD](https://nlnetlabs.nl/projects/nsd/about/) - NLNet Labs first project -- [Lychee](https://github.com/lycheeverse/lychee) - A link-checker that receives funding from NLNet, not NLNet labs +- [NSD](https://nlnetlabs.nl/projects/nsd/about/) - NLNet Labs' first project +- [lychee](https://github.com/lycheeverse/lychee) - A link-checker that receives funding from NLNet (not NLNet labs!) - [unbound](https://nlnetlabs.nl/projects/unbound/about/) - A DNS server like BIND, but only for recursive queries - [Cascade](https://nlnetlabs.nl/news/2025/Oct/07/cascade-0.1.0-released/) - The new DNSSEC signing solution from NLNet Labs - [Pi-Hole](https://pi-hole.net/) - A small usecase for unbound @@ -42,9 +42,9 @@ NLnet Labs is a non-profit foundation based in Amsterdam that develops open sour - [domain](https://nlnetlabs.nl/projects/domain/about/) - The new collection of DNS functions, written in Rust - [tokio](https://tokio.rs/) - The biggest shared dependency across the Rust ecosystem, first announced in 2017 - [Rust in Production: Helsing with Jon Gjengset](https://corrode.dev/podcast/s06e02-helsing/) - You _can_ take generics too far -- [bytes](https://github.com/tokio-rs/bytes) - Tokio's ARC of bytes +- [bytes](https://github.com/tokio-rs/bytes) - Tokio's `Arc` of bytes - [Arc Welding](https://en.wikipedia.org/wiki/Arc_welding) - The other type of "fixing" -- [Alejandra González' crate dependency analysis](https://tech.lgbt/@blyxyas/116252699616176134) - 46% of published crates depend directly on tokio +- [Alejandra González' crate dependency analysis](https://tech.lgbt/@blyxyas/116252699616176134) - 46% of published crates depend directly on tokio - [RPKI](https://en.wikipedia.org/wiki/Resource_Public_Key_Infrastructure) - Signing and validating IPs and routing information - [Routinator](https://nlnetlabs.nl/projects/routing/routinator/) - A RPKI validator, one of the first Rust applications in production - [hyper](https://hyper.rs/) - The ubiquitous HTTP crate