<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Networking on Tom Meurs</title>
    <link>https://tommeurs.nl/en/tags/networking/</link>
    <description>Recent content in Networking on Tom Meurs</description>
    <generator>Hugo</generator>
    <language>en</language>
    <copyright>© Tom Meurs</copyright>
    <lastBuildDate>Sun, 10 May 2026 18:45:00 +0100</lastBuildDate>
    <atom:link href="https://tommeurs.nl/en/tags/networking/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Tailscale for Homelab: Secure Remote Access Without Port Forwarding</title>
      <link>https://tommeurs.nl/en/posts/tailscale-homelab/</link>
      <pubDate>Sun, 10 May 2026 18:45:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/tailscale-homelab/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; Tailscale puts every device I own on one WireGuard mesh, so I reach the cluster in the closet from a coffee shop without a single port forwarded on the router. Subnet router, exit node, the Kubernetes operator, ACLs, and Headscale for the part I&amp;rsquo;d rather host myself, in that order.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;My &lt;a href=&#34;https://tommeurs.nl/en/posts/k3s-cluster-setup/&#34;&gt;homelab cluster&lt;/a&gt; runs in a closet at home. I don&amp;rsquo;t. I work from coffee shops, from a client&amp;rsquo;s office, and now and then from a hotel with WiFi that seems to resent me. I still want my own machines while I&amp;rsquo;m out there.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cilium: eBPF Networking for Kubernetes</title>
      <link>https://tommeurs.nl/en/posts/cilium-ebpf-networking/</link>
      <pubDate>Wed, 08 Apr 2026 20:23:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/cilium-ebpf-networking/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; Cilium is the CNI I run in every cluster. It replaces kube-proxy and its iptables chains with eBPF programs in the kernel, enforces network policies on identity and on HTTP paths, and Hubble shows me every flow and every drop. WireGuard between the pods, BGP to the switch, no sidecars. My production values are at the bottom.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;The first time a service stopped resolving in one of my clusters, I spent an evening reading iptables chains. Hundreds of rules, generated by kube-proxy, evaluated top to bottom. I never found the problem. I restarted the node and it went away.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kubernetes Network Policies: A Visual Guide to Pod Security</title>
      <link>https://tommeurs.nl/en/posts/kubernetes-network-policies-visual/</link>
      <pubDate>Sat, 08 Feb 2025 19:34:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/kubernetes-network-policies-visual/</guid>
      <description>&lt;p&gt;Picture this: an attacker pops a single pod in your cluster, maybe through a vulnerable image or a leaked token. From that one foothold, they can reach every database, every internal API, every secret-fetching sidecar you run. Nothing stops them, because by default nothing tries to.&lt;/p&gt;&#xA;&lt;p&gt;Network Policies are the thing that stops them. They turn &amp;ldquo;one compromised pod&amp;rdquo; into &amp;ldquo;one compromised pod, and that&amp;rsquo;s it.&amp;rdquo; Everyone knows they should use them. Almost nobody actually does, because the YAML looks scary and the behaviour is weird until the mental model clicks.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
