<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nuno Amaral</title>
    <description>The latest articles on DEV Community by Nuno Amaral (@n20amaral).</description>
    <link>https://dev.to/n20amaral</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F314990%2Fc52d531d-a691-41ee-bceb-3d712766fd5c.jpg</url>
      <title>DEV Community: Nuno Amaral</title>
      <link>https://dev.to/n20amaral</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/n20amaral"/>
    <language>en</language>
    <item>
      <title>Making It Two Locations: A Routed WireGuard Tunnel Between My Labs</title>
      <dc:creator>Nuno Amaral</dc:creator>
      <pubDate>Wed, 18 Feb 2026 16:40:45 +0000</pubDate>
      <link>https://dev.to/n20amaral/making-it-two-locations-a-routed-wireguard-tunnel-between-my-labs-4o3m</link>
      <guid>https://dev.to/n20amaral/making-it-two-locations-a-routed-wireguard-tunnel-between-my-labs-4o3m</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;A few years ago I downsized from a full-size rack to... just my ISP router. Practical? Sure. Boring? Absolutely.&lt;br&gt;&lt;br&gt;
Now I'm getting back into homelabbing, this time with mini PCs and SBCs running a multi-node Kubernetes cluster to sharpen my skills. But before I could spin up workloads, I needed to rebuild my home network with proper segmentation, dual-site connectivity to a secondary location (my backup lab location), and secure VPN access when traveling.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;This 3 part series documents that rebuild:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Part 1&lt;/strong&gt; - &lt;a href="https://dev.to/n20amaral/i-got-lazy-with-my-home-network-so-i-rebuilt-it-properly-13-4e33"&gt;Got Lazy With My Home Network—So I Rebuilt It Properly&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Part 2&lt;/strong&gt; - &lt;a href="https://dev.to/n20amaral/turning-one-lan-into-five-networks-vlans-wi-fi-segmentation-at-home-h55"&gt;Turning One LAN Into Five Networks: VLANs + Wi‑Fi Segmentation at Home&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Part 3&lt;/strong&gt; (this post) - Making It Two Locations: A Routed WireGuard Tunnel Between My Labs&lt;/p&gt;


&lt;h2&gt;
  
  
  Recap and what Part 3 covers
&lt;/h2&gt;

&lt;p&gt;In Part 1, I explained why I tore down my “it mostly works” home network and rebuilt it with clear boundaries: VLAN segmentation, predictable addressing, and a design that could eventually stretch across two locations. In Part 2, I implemented that design at Site A (my house): the GL.iNet Brume 2 runs OpenWrt with VLAN interfaces, the Netgear managed switch carries those VLANs end-to-end, and the Omada AP maps SSIDs to VLAN IDs so Wi‑Fi clients land in the right networks.&lt;/p&gt;

&lt;p&gt;Part 3 is where the lab becomes truly &lt;strong&gt;dual-site&lt;/strong&gt;. I turn my parents’ house into “Site B” using a Xiaomi router flashed with OpenWrt, then connect Site A and Site B using a routed site‑to‑site WireGuard tunnel (Brume 2 as the hub/server, Xiaomi as the spoke/client). From there, the focus is on the practical glue that makes this usable in real life: which subnets are routed over the tunnel, what firewall forwardings are allowed (and which are explicitly not), and how I can still reach both sites securely when traveling without poking holes in the segmentation work from Part 2.&lt;/p&gt;


&lt;h2&gt;
  
  
  Why the Xiaomi, and how the tunnel starts
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F042452naf6anhjbakdxw.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F042452naf6anhjbakdxw.webp" alt=" " width="306" height="279"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The router I used at Site B (my parents’ house) started life as a basic Wi‑Fi extender, but it turned out to be the ideal “cheap lab edge” once I realized it could be flashed to OpenWrt. With OpenWrt on the Xiaomi, I can run WireGuard and have it establish a site‑to‑site tunnel back to my Site A router (the GL.iNet Brume 2), which turns that second location into a routable extension of my homelab instead of an isolated island.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbbuwrvickqt89sfqej8v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbbuwrvickqt89sfqej8v.png" alt=" " width="225" height="692"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the Site A side, I kept the initial WireGuard setup intentionally simple by using the Brume 2’s native GL.iNet UI rather than building everything manually in LuCI. I chose WireGuard because it’s lightweight and a good performance fit for small routers, and I configured the VPN server with a dedicated tunnel IP—10.11.255.1 in my case—so the VPN has a clean “transit” network that stays separate from my LAN subnets.​&lt;/p&gt;

&lt;p&gt;To bootstrap the site‑to‑site link, I created a new WireGuard client/profile in the GL.iNet UI, and the Brume 2 generated a ready-to-import configuration file for the other end. That file is the starting point on the Xiaomi side: import it, bring up the tunnel, and then move from “the interface is up” to “the sites can actually route to each other” by aligning AllowedIPs, routes, and firewall forwardings in the next sections.&lt;/p&gt;


&lt;h2&gt;
  
  
  Site B: Xiaomi client setup (WireGuard-focused)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff5b77sejeoe441dt7h72.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff5b77sejeoe441dt7h72.png" alt=" " width="800" height="158"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Site A is already prepared to accept a site‑to‑site peer, so the next job is turning the Xiaomi at Site B into a clean “WireGuard client that routes a subnet” device. In this post I’m deliberately not going deep into the Site B homelab itself; the point is getting a stable tunnel that can carry traffic between a Site B lab subnet (10.22.30.0/24 in the article) and the networks at Site A.&lt;/p&gt;
&lt;h3&gt;
  
  
  Flashing the Xiaomi to OpenWrt (high level)
&lt;/h3&gt;

&lt;p&gt;The Xiaomi firmware flash is a one-time prerequisite, and I’m not going to replicate the steps here because they vary by model and hardware revision. The key takeaway is that once the router is running OpenWrt (and you can access LuCI), it stops being “just an extender” and becomes a proper edge router that can run a routed WireGuard tunnel.&lt;/p&gt;
&lt;h3&gt;
  
  
  Installing WireGuard support on OpenWrt
&lt;/h3&gt;

&lt;p&gt;On a fresh OpenWrt install, WireGuard typically isn’t fully available in the UI until you install the kernel module and userland tools (and optionally the LuCI protocol helper). On the Xiaomi I installed the WireGuard packages first and rebooted, so the WireGuard protocol shows up cleanly when creating interfaces and peers.​&lt;/p&gt;

&lt;p&gt;Example (SSH):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;opkg update
opkg &lt;span class="nb"&gt;install &lt;/span&gt;wireguard-tools kmod-wireguard luci-proto-wireguard reboot
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A practical pitfall here is storage: some routers have limited free flash, so it’s worth checking before installing extra packages.​&lt;/p&gt;

&lt;h3&gt;
  
  
  Importing the profile and bringing up the tunnel
&lt;/h3&gt;

&lt;p&gt;With the Site A configuration exported and ready, the Xiaomi side becomes mostly an OpenWrt exercise: install WireGuard support, create a WireGuard interface, and then copy/import the peer settings so the Xiaomi knows how to reach the Brume 2. In my case I ended up with an interface named &lt;code&gt;wg_site_a&lt;/code&gt; carrying the Xiaomi’s tunnel address, and a peer entry pointing at the Brume 2 endpoint with &lt;code&gt;PersistentKeepalive&lt;/code&gt; enabled, since Site B sits behind NAT.​&lt;/p&gt;

&lt;p&gt;The detail that turns this from “remote access” into “site‑to‑site routing” is &lt;strong&gt;AllowedIPs&lt;/strong&gt; plus route creation on the WireGuard client.​&lt;br&gt;&lt;br&gt;
On the Xiaomi, with &lt;code&gt;route_allowed_ips&lt;/code&gt; enabled, OpenWrt automatically installs routes for the peer’s AllowedIPs, so traffic destined for Site A subnets is forwarded into the WireGuard interface instead of the regular WAN.[&lt;br&gt;
Also, remember AllowedIPs isn’t &lt;em&gt;just&lt;/em&gt; a routing convenience: it’s WireGuard’s traffic selector—outbound destinations matching AllowedIPs go to that peer, and inbound packets from that peer are only accepted if their source IPs are within that peer’s AllowedIPs.[&lt;/p&gt;

&lt;h3&gt;
  
  
  Minimal firewall glue (so it routes, but stays contained)
&lt;/h3&gt;

&lt;p&gt;To keep Site B intentionally small and safe, I didn’t open the tunnel to every local network on the Xiaomi. Instead, I put the WireGuard interface into its own firewall zone and allowed forwarding only between that zone and my “lab” interface at Site B (the one I use for homelab devices), which gives me bidirectional routing between the two labs without making the entire Site B router a wide-open bridge into everything.&lt;/p&gt;




&lt;h2&gt;
  
  
  Brume 2: firewall forwardings for site‑to‑site routing
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq0bnoi7d5qosd0sq1mh6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq0bnoi7d5qosd0sq1mh6.png" alt=" " width="741" height="822"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At this point the tunnel can be “up” and still be useless if the firewall won’t let traffic cross it, so on the Brume 2 my work was almost entirely firewall plumbing. I didn’t create any WireGuard devices or interfaces manually on the Brume 2: configuring the WireGuard server in the GL.iNet UI took care of the server-side interface and peer scaffolding for me.​&lt;/p&gt;

&lt;h3&gt;
  
  
  Treat the tunnel as its own zone
&lt;/h3&gt;

&lt;p&gt;On the Brume 2 I keep the WireGuard server side grouped into its own firewall zone (I use &lt;code&gt;wgserver&lt;/code&gt;), so it’s easy to reason about paths like “Management VLAN → VPN” or “Homelab VLAN → VPN.” This keeps the mental model clean: VLAN zones are internal networks, &lt;code&gt;wgserver&lt;/code&gt; is the inter-site transit, and forwardings are the only doors between them.​&lt;/p&gt;

&lt;h3&gt;
  
  
  Allow only the VLANs that should reach Site B
&lt;/h3&gt;

&lt;p&gt;To keep the site‑to‑site link useful without flattening my segmentation, I only allow the tunnel to talk to two VLANs at Site A: VLAN 10 (management) and VLAN 30 (homelab). Concretely, that means adding forwardings in both directions:​&lt;/p&gt;

&lt;p&gt;&lt;code&gt;wgserver → vlan10&lt;/code&gt;, &lt;code&gt;vlan10 → wgserver&lt;/code&gt;, &lt;code&gt;wgserver → vlan30&lt;/code&gt;, and &lt;code&gt;vlan30 → wgserver&lt;/code&gt;.​&lt;/p&gt;

&lt;p&gt;The practical effect is exactly what I wanted: management clients in VLAN 10 can administer across sites, and lab workloads in VLAN 30 can reach lab services at Site B, while the other VLANs remain isolated from the tunnel by default.​&lt;/p&gt;

&lt;h3&gt;
  
  
  Common pitfall: “handshake works, but nothing routes”
&lt;/h3&gt;

&lt;p&gt;If you ever see a healthy WireGuard handshake but can’t ping anything across sites, the firewall forwardings are one of the first things to double-check. With OpenWrt’s zone model, “the interface exists” doesn’t imply “traffic is permitted”—those inter-zone forwardings are the difference between a connected tunnel and a routed inter-site network.&lt;/p&gt;




&lt;h2&gt;
  
  
  Travel access: two “road‑warrior” profiles on top of the site‑to‑site VPN
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fec1fkbism0ac9q4u5zjp.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fec1fkbism0ac9q4u5zjp.webp" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With the site‑to‑site tunnel in place, the last piece I wanted was the ability to reach everything when I’m away from home—without exposing any management services to the public internet. Instead of changing the site‑to‑site design, I simply added two more WireGuard profiles on the Brume 2: one for my GL.iNet Beryl AX travel router, and one for my daily-driver laptop for the cases where I’m not using the travel router.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why two profiles
&lt;/h3&gt;

&lt;p&gt;The Beryl AX profile gives me a “VPN bubble” I can carry anywhere, and in my case its WAN comes from &lt;strong&gt;USB phone tethering&lt;/strong&gt; (not hotel Wi‑Fi). That means I plug my phone into the Beryl, the Beryl treats the phone as its upstream internet, and then it brings up WireGuard back to the Brume 2—anything behind the Beryl can use the VPN without needing individual client configs.&lt;/p&gt;

&lt;p&gt;The laptop profile is the fallback for those times I’m traveling light, or when I only need access from a single device. It’s also useful at home when I want to join via VPN from the laptop directly instead of routing through the travel router.​&lt;/p&gt;

&lt;h3&gt;
  
  
  What these profiles need to reach
&lt;/h3&gt;

&lt;p&gt;These travel profiles are classic road‑warrior configs: they should be able to reach my trusted admin and lab networks at Site A, and they should also include the Site B lab subnet so I can manage the backup location through the existing site‑to‑site tunnel. The key idea is that the Brume 2 remains the hub: once a road‑warrior client is connected to it, the Brume 2 can route the client into the allowed Site A VLANs (per firewall policy) and onward to Site B across the site‑to‑site link.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keeping access intentional (not “everything everywhere”)
&lt;/h3&gt;

&lt;p&gt;I treat these travel profiles as privileged access, so I keep their reach aligned with my segmentation model: the goal is seamless admin and homelab access, not letting an untrusted travel network have a path into every VLAN. In practice, that means the travel profiles are designed to reach only the VLANs and subnets I explicitly manage (plus the Site B lab subnet), while everything else stays isolated unless I make a conscious decision to open it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Lessons learned and future Kubernetes plans
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft70n0vul2beos086v5h9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft70n0vul2beos086v5h9.jpg" alt=" " width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This rebuild delivered what I wanted at the start: a network with strong segmentation at Site A, a real routed extension at Site B, and secure remote access when I’m away. The best part is that it’s predictable now—predictable addressing, predictable boundaries, and no more “I wonder what network this device is on.”&lt;/p&gt;

&lt;h3&gt;
  
  
  What worked better than my old “mostly works” setup
&lt;/h3&gt;

&lt;p&gt;The biggest win was making the firewall the source of truth for segmentation. VLANs create the separate networks, but the forwardings between zones are what make (or break) isolation, so keeping those paths intentional gave me a clean “default deny between VLANs” posture while still allowing my management VLAN to reach what it needs.​&lt;/p&gt;

&lt;p&gt;The second win was treating the VPN the same way: not as a magic private backdoor, but as another zone with explicit forwardings. On the Brume 2 I leaned on the GL.iNet UI to handle the WireGuard server setup, and then I focused my effort where it matters: which VLANs are allowed to forward into the tunnel (and back).​&lt;/p&gt;

&lt;h3&gt;
  
  
  Practical lessons I’m keeping for next time
&lt;/h3&gt;

&lt;p&gt;Simple scaling beats cleverness. The “site is the second octet, VLAN is the third octet” scheme makes it simple to identify where an IP belongs (which site, which network) when you’re looking at routes, firewall rules, or client addresses.​&lt;/p&gt;

&lt;h3&gt;
  
  
  Where Kubernetes fits next
&lt;/h3&gt;

&lt;p&gt;This network redesign was always in service of the next phase: running a small multi-node Kubernetes cluster on low-power machines without turning the network into the bottleneck. I’ve got a pile of hardware waiting for that job—HP G3 mini PCs, a Raspberry Pi, and a few other older systems—and while I plan to run separate clusters per site, having the option to connect things across sites later (cleanly, without renumbering) is a nice capability to have.​&lt;/p&gt;

&lt;p&gt;The immediate plan is to start simple: get a cluster running on the Site A homelab VLAN, then treat Site B as its own independent lab environment. The nice thing is that the “network foundation” work is done—adding nodes should now feel like plugging machines into the right VLAN (or subnet) and letting routing and VPN do their job.&lt;/p&gt;

</description>
      <category>wireguard</category>
      <category>openwrt</category>
      <category>vpn</category>
      <category>homelab</category>
    </item>
    <item>
      <title>Turning One LAN Into Five Networks: VLANs + Wi‑Fi Segmentation at Home</title>
      <dc:creator>Nuno Amaral</dc:creator>
      <pubDate>Wed, 18 Feb 2026 16:17:57 +0000</pubDate>
      <link>https://dev.to/n20amaral/turning-one-lan-into-five-networks-vlans-wi-fi-segmentation-at-home-h55</link>
      <guid>https://dev.to/n20amaral/turning-one-lan-into-five-networks-vlans-wi-fi-segmentation-at-home-h55</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;A few years ago I downsized from a full-size rack to... just my ISP router. Practical? Sure. Boring? Absolutely.&lt;br&gt;&lt;br&gt;
Now I'm getting back into homelabbing, this time with mini PCs and SBCs running a multi-node Kubernetes cluster to sharpen my skills. But before I could spin up workloads, I needed to rebuild my home network with proper segmentation, dual-site connectivity to a secondary location (my backup lab location), and secure VPN access when traveling.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;This 3 part series documents that rebuild:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Part 1&lt;/strong&gt; - &lt;a href="https://dev.to/n20amaral/i-got-lazy-with-my-home-network-so-i-rebuilt-it-properly-13-4e33"&gt;Got Lazy With My Home Network—So I Rebuilt It Properly&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Part 2&lt;/strong&gt; (this post) - Turning One LAN Into Five Networks: VLANs + Wi‑Fi Segmentation at Home&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Part 3&lt;/strong&gt; - &lt;a href="https://dev.to/n20amaral/making-it-two-locations-a-routed-wireguard-tunnel-between-my-labs-4o3m"&gt;Making It Two Locations: A Routed WireGuard Tunnel Between My Labs&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Recap (from Part 1)
&lt;/h2&gt;

&lt;p&gt;Part 1 set the "why" and the blueprint: rebuild the home network with strong VLAN isolation, predictable addressing, and a path to a dual-site homelab connected over VPN.&lt;br&gt;&lt;br&gt;
It also locked in the roles and topology: the GL.iNet Brume 2 (OpenWrt) is the Site A core router, with VLANs trunked through a managed Netgear switch and extended to an Omada AP where SSIDs map to VLAN IDs.&lt;br&gt;&lt;br&gt;
Finally, it defined the VLAN/IP scheme (10.11.VLANVLAN.0/24 at Site A) so Part 2 can focus purely on implementation without redesigning along the way.&lt;/p&gt;




&lt;h2&gt;
  
  
  Brume 2 (OpenWrt) as the core router — my take on the gear
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3fwbyyonm0a2b8cuxtph.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3fwbyyonm0a2b8cuxtph.png" alt=" " width="550" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I've had the Brume 2 for a while as a "VPN gateway" for otherwise non-managed devices (think streaming boxes), and that's where I learned that GL.iNet gear is genuinely excellent: solid build quality and a UI that's easy to live with, while still being OpenWrt underneath.   That "easy mode" has limits though: the GL.iNet UI doesn't really cover advanced segmentation like VLANs, so the trick is to treat their UI as a convenience layer and switch to LuCI (or SSH) whenever you outgrow it. &lt;/p&gt;

&lt;p&gt;When I connected the Brume 2 behind my ISP router, I found I couldn't use bridge mode anymore, so I went with the pragmatic approach: put the Brume 2 in the ISP router's DMZ to get it working quickly and keep the WAN side simple. DMZ on ISP routers is usually ‘forward all inbound to this host’ (not a true isolated network), so WAN-side admin services must remain closed; use VPN for remote management.&lt;/p&gt;

&lt;p&gt;For VLAN segmentation on OpenWrt, there are two steps: first you create 802.1Q &lt;strong&gt;devices&lt;/strong&gt;, then you create one &lt;strong&gt;interface&lt;/strong&gt; per VLAN on top of those devices. &lt;br&gt;
﻿&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fivghqvo6fq9ebslxnvai.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fivghqvo6fq9ebslxnvai.png" alt=" " width="378" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the Brume 2, the LAN side is a bridge device (in my case named &lt;code&gt;br-lan&lt;/code&gt;). The trick is to reuse that name and append the VLAN ID as a suffix when creating the new devices, for example: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;br-lan.10&lt;/code&gt; for VLAN 10 (management) &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;br-lan.20&lt;/code&gt; for VLAN 20 (family) &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;br-lan.30&lt;/code&gt; for VLAN 30 (homelab) &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;br-lan.40&lt;/code&gt; for VLAN 40 (IoT) &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;br-lan.50&lt;/code&gt; for VLAN 50 (entertainment) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After creating the VLAN devices, create one &lt;strong&gt;interface&lt;/strong&gt; per VLAN (e.g., &lt;code&gt;mgmt&lt;/code&gt;, &lt;code&gt;family&lt;/code&gt;, &lt;code&gt;lab&lt;/code&gt;, &lt;code&gt;iot&lt;/code&gt;, &lt;code&gt;entertainment&lt;/code&gt;) and attach it to the matching device (&lt;code&gt;br-lan.10&lt;/code&gt;, &lt;code&gt;br-lan.20&lt;/code&gt;, etc.). Set the interface protocol to &lt;strong&gt;Static address&lt;/strong&gt;, assign the IPv4 address and subnet mask (for VLAN 30 / 10.11.30.0/24 I used &lt;code&gt;10.11.30.1/24&lt;/code&gt;), enable the DHCP server on that interface, and (optionally) create and assign a dedicated firewall zone right away (e.g., &lt;code&gt;vlan30&lt;/code&gt;)—we’ll tighten the rules for those zones later.&lt;/p&gt;

&lt;p&gt;This is straightforward in LuCI, but there's one setting that's easy to miss and can save you from weird behavior later: &lt;strong&gt;"Force DHCP on this network even if another server is detected."&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foxvp1mhvth5ya97ph7sj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foxvp1mhvth5ya97ph7sj.png" alt=" " width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One more gotcha: once you configure VLANs this way, the GL.iNet UI doesn't "understand" the VLAN interfaces—so the device list in their beautiful UI may look empty or incomplete, even while everything is working correctly at the OpenWrt level.&lt;/p&gt;




&lt;h2&gt;
  
  
  OpenWrt firewall: zones and isolation rules
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi3lty273y1973n74xjyu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi3lty273y1973n74xjyu.png" alt=" " width="800" height="594"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;VLANs create separate networks, but the firewall is what decides which of those networks can talk to each other (and to the internet). OpenWrt does this with &lt;strong&gt;firewall zones&lt;/strong&gt; (groups of interfaces) and &lt;strong&gt;forwardings&lt;/strong&gt; (allowed paths between zones).​&lt;/p&gt;

&lt;h3&gt;
  
  
  Create (or confirm) one zone per VLAN
&lt;/h3&gt;

&lt;p&gt;If you didn’t create a firewall zone while creating the VLAN interfaces, do it now: create one zone per VLAN (for example &lt;code&gt;vlan10&lt;/code&gt;, &lt;code&gt;vlan20&lt;/code&gt;, &lt;code&gt;vlan30&lt;/code&gt;, &lt;code&gt;vlan40&lt;/code&gt;, &lt;code&gt;vlan50&lt;/code&gt;) and set the &lt;strong&gt;covered networks&lt;/strong&gt; to the matching VLAN interface. This keeps the rest of the rules easy to understand because each zone maps 1:1 to a VLAN.​&lt;/p&gt;

&lt;h3&gt;
  
  
  My baseline zone settings
&lt;/h3&gt;

&lt;p&gt;For each VLAN zone, I kept the defaults permissive to avoid breaking basic connectivity (gateway, DHCP, DNS):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;INPUT: ACCEPT&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;OUTPUT: ACCEPT&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;FORWARD: ACCEPT&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This ensures clients can talk to the router on their VLAN and get online without needing a pile of extra “allow DHCP/DNS” rules.​&lt;/p&gt;

&lt;h3&gt;
  
  
  Isolation is enforced by forwardings
&lt;/h3&gt;

&lt;p&gt;The real segmentation happens in the &lt;strong&gt;zone forwarding&lt;/strong&gt; section:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;For “regular” VLANs (family, homelab, IoT, entertainment), I only allow forwarding to &lt;code&gt;wan&lt;/code&gt; so they can reach the internet but not other internal VLANs.​&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For my admin VLAN (VLAN 10), I allow forwarding to &lt;code&gt;wan&lt;/code&gt; &lt;strong&gt;and&lt;/strong&gt; to the other VLAN zones so my laptop can manage devices across the whole network (e.g., &lt;code&gt;vlan10 → vlan20&lt;/code&gt;, &lt;code&gt;vlan10 → vlan30&lt;/code&gt;, &lt;code&gt;vlan10 → vlan40&lt;/code&gt;, &lt;code&gt;vlan10 → vlan50&lt;/code&gt;).​&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That gives me the best of both worlds: strong isolation by default, but full access from the one VLAN I trust.​&lt;/p&gt;

&lt;h3&gt;
  
  
  Common pitfalls
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Missing a &lt;code&gt;vlanX → wan&lt;/code&gt; forwarding: clients get an IP but have no internet access.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Accidentally adding &lt;code&gt;vlan30 → vlan10&lt;/code&gt; (or &lt;code&gt;vlan30 → any other internal VLAN&lt;/code&gt;): you effectively undo segmentation.​&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Putting untrusted devices into VLAN 10: VLAN 10 becomes “keys to the kingdom” once it can forward everywhere.​&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Netgear switch: trunks, access ports, and PVIDs (GS308Ev4)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faytarnazi8jhpx4di7tc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faytarnazi8jhpx4di7tc.png" alt=" " width="374" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;VLAN tagging on a managed switch can feel confusing at first, but it becomes pretty clear once you internalize two ideas: &lt;strong&gt;access ports&lt;/strong&gt; carry one VLAN (usually untagged), and &lt;strong&gt;trunk ports&lt;/strong&gt; carry multiple VLANs (usually tagged). A short YouTube explanation that helped me a lot is here: &lt;a href="https://youtu.be/C81pyQaJgj8" rel="noopener noreferrer"&gt;https://youtu.be/C81pyQaJgj8&lt;/a&gt;​&lt;/p&gt;

&lt;p&gt;On my Netgear switch, I configured &lt;strong&gt;two trunk ports&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Port 8 → uplink to the Brume 2 (router-on-a-stick)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Port 7 → uplink to the Omada EAP610 access point (so multiple SSIDs can map to different VLANs)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then I configured ports 1–5 as “one VLAN per port” access ports. &lt;strong&gt;Port 6 is disabled&lt;/strong&gt; and kept available for future expansion.&lt;/p&gt;

&lt;h3&gt;
  
  
  My port layout
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Port&lt;/th&gt;
&lt;th&gt;Connected to&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Untagged VLAN (PVID)&lt;/th&gt;
&lt;th&gt;Tagged VLANs allowed&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Laptop (VLAN 10)&lt;/td&gt;
&lt;td&gt;Access&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Umng. Switch (VLAN 20)&lt;/td&gt;
&lt;td&gt;Access&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Rspb. Pi (VLAN 30)&lt;/td&gt;
&lt;td&gt;Access&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;IoT server (VLAN 40)&lt;/td&gt;
&lt;td&gt;Access&lt;/td&gt;
&lt;td&gt;40&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Smart TV (VLAN 50)&lt;/td&gt;
&lt;td&gt;Access&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;(Disabled)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;Omada EAP610&lt;/td&gt;
&lt;td&gt;Trunk&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;10, 20, 30, 40, 50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Brume 2&lt;/td&gt;
&lt;td&gt;Trunk&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;10, 20, 30, 40, 50&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Why trunk PVID = VLAN 1
&lt;/h3&gt;

&lt;p&gt;The switch requires a PVID on each port, and the PVID is simply the VLAN where &lt;strong&gt;untagged&lt;/strong&gt; inbound frames are classified.​&lt;br&gt;&lt;br&gt;
By setting the trunk PVID (native VLAN) to VLAN 1, any accidental untagged traffic on ports 7 or 8 won’t land in my management VLAN; all the VLANs I actually use (10/20/30/40/50) are carried across those trunks as &lt;strong&gt;tagged&lt;/strong&gt; VLANs end‑to‑end.​  &lt;/p&gt;




&lt;h2&gt;
  
  
  Omada Wi‑Fi: mapping SSIDs to VLANs (EAP610)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3dpn8cgbs8cisnpmxtri.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3dpn8cgbs8cisnpmxtri.jpg" alt=" " width="590" height="590"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The only equipment I bought specifically for this redesign was the &lt;strong&gt;TP‑Link Omada EAP610&lt;/strong&gt;. I needed an access point that supports multiple SSIDs with per‑SSID VLAN tagging, and this was the only suitable model available locally—fortunately, it turned out to be a great fit: easy to manage and with enough coverage for my whole house.​&lt;/p&gt;

&lt;p&gt;A day after buying it, I also picked up a dedicated PoE injector so I could wall-mount the AP with just a single Ethernet cable going to it (data + power).&lt;/p&gt;

&lt;h3&gt;
  
  
  One SSID per VLAN (simple and predictable)
&lt;/h3&gt;

&lt;p&gt;My approach was intentionally simple: I created one Wi‑Fi SSID per VLAN and assigned the corresponding VLAN ID in Omada. This keeps Wi‑Fi segmentation aligned with the VLAN design from the wired network, and makes it obvious which devices belong where.&lt;a href="https://www.tp-link.com/us/support/faq/4303/" rel="noopener noreferrer"&gt;&lt;/a&gt;​​&lt;/p&gt;

&lt;h3&gt;
  
  
  Band choices: 2.4 GHz for IoT, 5 GHz for everything else
&lt;/h3&gt;

&lt;p&gt;For the IoT VLAN, I used &lt;strong&gt;2.4 GHz&lt;/strong&gt; to maximize compatibility with older/cheaper devices. For the remaining VLAN-backed SSIDs, I used &lt;strong&gt;5 GHz&lt;/strong&gt; for better performance and less interference.&lt;/p&gt;

&lt;h3&gt;
  
  
  Common pitfalls
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;SSID VLAN tagging won’t work if the AP uplink isn’t a trunk carrying those VLANs (tagged) back to the switch/router.​&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In Omada, double-check you’re setting the VLAN ID on the SSID itself (and not in a different “override” place), otherwise clients may join but end up in the wrong subnet.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final checks
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhgw4hghrjqs0vycccn0r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhgw4hghrjqs0vycccn0r.png" alt=" " width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At this point, the segmented network at Site A is fully built end-to-end: the Brume 2 routes and serves DHCP per VLAN, the Netgear switch carries those VLANs over trunks and breaks them out to access ports, and the Omada AP maps Wi‑Fi clients into the right VLANs.​&lt;/p&gt;

&lt;h3&gt;
  
  
  Validation checklist
&lt;/h3&gt;

&lt;p&gt;Before calling Part 2 “done”, I ran a quick set of tests from at least one device in each VLAN:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Verify IP addressing: the client gets an address from the expected subnet (10.11.VLANVLAN.0/24) and uses the router’s &lt;code&gt;.1&lt;/code&gt; address as its gateway.​&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verify internet access: the client can reach the internet (DNS + outbound traffic works).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verify isolation: from non-admin VLANs, you should not be able to reach devices on other internal VLANs; from the admin VLAN (VLAN 10 in my case), you should be able to reach the other VLANs for management.​&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verify Wi‑Fi VLAN tagging: connect to each Wi‑Fi network and confirm it lands in the correct VLAN/subnet (this catches trunk/tagging mistakes fast).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Security notes (kept simple on purpose)
&lt;/h3&gt;

&lt;p&gt;This setup doesn’t have a “broken” security flaw, but it does have a couple of soft spots that are worth calling out. I’m aware of them, and I’m comfortable with the trade-offs for a home lab where I control physical access and keep the admin side tightly held.​&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;FORWARD=ACCEPT everywhere:&lt;/strong&gt; with &lt;code&gt;INPUT/OUTPUT/FORWARD = ACCEPT&lt;/code&gt; on every VLAN zone, the firewall isn’t enforcing least-privilege inside a zone. In OpenWrt’s zone model, &lt;em&gt;segmentation is primarily enforced by inter‑zone forwardings&lt;/em&gt; (for example &lt;code&gt;vlan30 → wan&lt;/code&gt;, or &lt;code&gt;vlan10 → vlan30&lt;/code&gt;), because those forwardings are the explicit “doors” between zones.​  This baseline is acceptable for a homelab &lt;strong&gt;only&lt;/strong&gt; if you keep the forwardings list minimal (typically &lt;code&gt;vlanX → wan&lt;/code&gt; for internet, and only intentional admin paths like &lt;code&gt;vlan10 → vlan30&lt;/code&gt;), and avoid creating any accidental inter‑VLAN forwardings that would flatten your isolation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;VLAN 10 is powerful:&lt;/strong&gt; the risk shows up when you intentionally allow your admin VLAN (VLAN 10) to forward to all other VLANs: anything that ends up in VLAN 10 becomes “trusted” and can reach everything by design. In my case, only my personal laptop joins VLAN 10 and only when I’m doing admin work, so I consider the residual risk acceptable for simplicity.​&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DMZ awareness:&lt;/strong&gt; putting the Brume 2 in the ISP router’s DMZ is a pragmatic choice, but it makes it extra important to ensure you’re not accidentally exposing LuCI/SSH (or any other management services) on the WAN side. Remote access should be via VPN, not open admin ports.​&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;If you’re using GL.iNet’s UI on top of OpenWrt, remember that once you move to VLAN interfaces, the GL.iNet device list may no longer reflect your clients properly—LuCI/SSH becomes your source of truth.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  What’s next (&lt;a href="https://dev.to/n20amaral/making-it-two-locations-a-routed-wireguard-tunnel-between-my-labs-4o3m"&gt;Part 3&lt;/a&gt;)
&lt;/h2&gt;

&lt;p&gt;With Site A complete, the next step is to extend the same “predictable subnets + strict boundaries” mindset to Site B (my parents’ house) and connect both sites with a site-to-site WireGuard tunnel, plus add secure travel access so I can manage everything without exposing services to the public internet.&lt;/p&gt;

</description>
      <category>openwrt</category>
      <category>vlan</category>
      <category>wifi</category>
      <category>networking</category>
    </item>
    <item>
      <title>I Got Lazy With My Home Network—So I Rebuilt It Properly (1/3)</title>
      <dc:creator>Nuno Amaral</dc:creator>
      <pubDate>Wed, 18 Feb 2026 15:37:33 +0000</pubDate>
      <link>https://dev.to/n20amaral/i-got-lazy-with-my-home-network-so-i-rebuilt-it-properly-13-4e33</link>
      <guid>https://dev.to/n20amaral/i-got-lazy-with-my-home-network-so-i-rebuilt-it-properly-13-4e33</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;A few years ago I downsized from a full-size rack to... just my ISP router. Practical? Sure. Boring? Absolutely.&lt;br&gt;&lt;br&gt;
Now I'm getting back into homelabbing, this time with mini PCs and SBCs running a multi-node Kubernetes cluster to sharpen my skills. But before I could spin up workloads, I needed to rebuild my home network with proper segmentation, dual-site connectivity to a secondary location (my backup lab location), and secure VPN access when traveling.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;This 3-part series documents that rebuild:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Part 1&lt;/strong&gt; (this post) - Got Lazy With My Home Network—So I Rebuilt It Properly&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Part 2&lt;/strong&gt; - &lt;a href="https://dev.to/n20amaral/turning-one-lan-into-five-networks-vlans-wi-fi-segmentation-at-home-h55"&gt;Turning One LAN Into Five Networks: VLANs + Wi‑Fi Segmentation at Home&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Part 3&lt;/strong&gt; - &lt;a href="https://dev.to/n20amaral/making-it-two-locations-a-routed-wireguard-tunnel-between-my-labs-4o3m"&gt;Making It Two Locations: A Routed WireGuard Tunnel Between My Labs&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;I tore down my old "it mostly works" home network and rebuilt it as a small, intentional platform: segmented VLANs, predictable addressing, and a path to a dual‑site homelab connected by a site‑to‑site VPN.&lt;br&gt;&lt;br&gt;
This post sets the context, the goals, the hardware, and the VLAN/IP plan, so Part 2 can focus on implementation without constantly stopping to explain &lt;em&gt;why&lt;/em&gt; the design looks the way it does.&lt;/p&gt;


&lt;h2&gt;
  
  
  Why I tore down and rebuilt my home network
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0rp351yv2k8j99jvzyav.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0rp351yv2k8j99jvzyav.png" alt=" " width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Back in the days, I had my home network in full control, this was the pre-IoT era. Every room had network jacks, a few access points spread around the house, and servers running inside a 42U rack cabinet with network gear blinking all night, all centralized in my office.&lt;/p&gt;

&lt;p&gt;But life happens. I moved to a smaller house with no space for a full rack. Most of the equipment was donated; only a couple of computers and the cabinet itself remain, stored at my parents' house, waiting for a new life.&lt;/p&gt;

&lt;p&gt;Suddenly I was using just a laptop. No more servers. The smart home "devices" were just lightbulbs and power plugs, all relying on the ISP router's WiFi (which, to be fair, isn't terrible). I was traveling constantly, focused on work, with no time left for hobbies—so I never really missed the gear I used to manage.&lt;/p&gt;

&lt;p&gt;But slowly, the homelab interest started reclaiming its space. A Raspberry Pi here, a VPN gateway there, a NUC box... and the pitiful sight of an old Mac Mini gathering dust for years, begging to be repurposed. That's when I saw the potential: mini PCs as a Kubernetes cluster—low power consumption, minimal space.&lt;/p&gt;

&lt;p&gt;Then a new concern emerged: my home network was a mess. I had no sense of what was connected, and important concepts like security boundaries and reliability were nowhere to be found. My pragmatic "mostly works" approach had to stop. That's why I tore down everything and rebuilt my home network from scratch.&lt;/p&gt;


&lt;h2&gt;
  
  
  Requirements for the "new" homelab era
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjxs663zf96nwjgmj1j5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjxs663zf96nwjgmj1j5.png" alt=" " width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The rebuild was driven by two practical pain points:&lt;/p&gt;
&lt;h3&gt;
  
  
  Isolation and reliability
&lt;/h3&gt;

&lt;p&gt;One misbehaving device shouldn't impact everything else, and untrusted devices shouldn't reach critical infrastructure.&lt;br&gt;&lt;br&gt;
When everything shares a single broadcast domain, a chatty IoT gadget or a device stuck in a DHCP loop can degrade performance for the entire household. Worse, many consumer IoT devices have weak or outdated firmware, and guest devices are inherently untrusted—without network segmentation, a compromised device on the same flat LAN can potentially reach router admin panels, NAS management interfaces, or lab VMs.&lt;br&gt;&lt;br&gt;
Segmentation contains both reliability issues and security threats to their own VLAN, so a malfunctioning (or compromised) smart bulb doesn't slow down video calls, access management interfaces, or interfere with homelab services.&lt;/p&gt;
&lt;h3&gt;
  
  
  Future expansion
&lt;/h3&gt;

&lt;p&gt;I wanted a foundation that could later support a Kubernetes‑style lab without re‑addressing the entire house.&lt;br&gt;&lt;br&gt;
When you start planning multi-node clusters, persistent storage backends, or service meshes, clean subnet boundaries and predictable addressing save hours of debugging routing and firewall rules.&lt;br&gt;&lt;br&gt;
Getting the VLAN and IP scheme right now means I won't have to renumber everything when I scale from a single mini PC to a three-node cluster spanning two sites.&lt;/p&gt;
&lt;h3&gt;
  
  
  The concrete requirements
&lt;/h3&gt;

&lt;p&gt;These pain points translated into a specific set of technical requirements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;VLANs for segmentation&lt;/strong&gt; – separate networks for family, IoT, homelab, and management&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multiple SSIDs&lt;/strong&gt; – different Wi-Fi networks mapping to different VLANs, so guests and IoT devices don't share the same wireless space as trusted devices&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Site-to-site VPN&lt;/strong&gt; – connecting my home network to a secondary location so both labs can communicate as if they were on the same LAN&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Point-to-site VPN&lt;/strong&gt; – remote access when traveling, letting me reach any device on any VLAN from anywhere without fumbling with port forwards or exposing services to the internet&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Seamless admin access&lt;/strong&gt; – as the network admin, I should be able to connect from anywhere (home, secondary location, or traveling) to every device across all VLANs without extra steps&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal was simple: strong boundaries for everyone else, zero friction for me.&lt;/p&gt;


&lt;h2&gt;
  
  
  Hardware inventory and high-level topology
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F31af49byhmwpl68jix87.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F31af49byhmwpl68jix87.png" alt=" " width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This rebuild uses prosumer gear that's flexible enough for a homelab but doesn't require enterprise-grade budgets or complexity. Most of it I already had; a few pieces (like the Omada AP and Netgear managed switch) I added specifically for VLAN capabilities.&lt;/p&gt;
&lt;h3&gt;
  
  
  Network gear
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;At my house (Site A):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ISP router&lt;/strong&gt; – provided by my ISP, running in "DMZ mode" to pass traffic to the Brume 2&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GL.iNet Brume 2&lt;/strong&gt; – the heart of the network, running OpenWrt with VLAN interfaces and acting as the WireGuard VPN server&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Netgear GS308Ev4&lt;/strong&gt; – 8-port managed switch handling VLAN trunking between the Brume 2, access points, and wired devices&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;TP-Link Omada EAP610&lt;/strong&gt; – Wi-Fi 6 access point with per-SSID VLAN tagging, broadcasting separate networks for family, IoT, and homelab&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;TP-Link 8-port gigabit switch&lt;/strong&gt; – unmanaged switch extending wired connections to the second floor (receives a single VLAN from the Netgear trunk)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;At a secondary location (Site B):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ISP router&lt;/strong&gt; – their ISP-provided router&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Xiaomi Mi Router 4A Gigabit Edition&lt;/strong&gt; – flashed with OpenWrt, acting as the WireGuard VPN client and routing the homelab VLAN at Site B&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;TP-Link 5-port gigabit switch&lt;/strong&gt; – unmanaged switch connecting the Site B homelab devices&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For travel:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GL.iNet Beryl AX&lt;/strong&gt; – travel router that can connect to the site-to-site VPN as a point-to-site client, giving me seamless access to both sites from anywhere&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Devices to connect
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Active devices:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;MacBook (my daily driver)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lenovo ThinkPad (work machine)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Raspberry Pi 2 (small services, monitoring)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;N150 NUC box (testing Kubernetes workloads)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Family devices: desktop PCs, laptops, smartphones, smart TVs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;IoT devices: a bunch of smart lightbulbs and power plugs&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Old devices waiting to be repurposed as homelab nodes:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;5× HP G3 mini PCs (the future Kubernetes cluster)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mac Mini 2010 (lightweight services or storage node)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;MacBook 2008 (maybe a dedicated build server or CI/CD runner)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Desktop PC with i7-7700 and 8GB RAM (heavier workloads or a hypervisor)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These old devices are why the dual-site setup matters: some will stay at my house, some will live at my parents' house, and the site-to-site VPN will let them connect to each other when need without extra effort.&lt;/p&gt;
&lt;h3&gt;
  
  
  High-level topology
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Site A (my house):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ISP Router (DMZ)
     ↓ 
GL.iNet Brume 2 (OpenWrt, VLANs, WireGuard server)
     ↓ 
Netgear GS308Ev4 (managed switch, VLAN trunks)
     ├─→ TP-Link Omada EAP610 (Wi-Fi, per-SSID VLANs) → all wireless devices
     ├─→ TP-Link 8-port switch (2nd floor, access mode) → wired desktop PCs
     └─→ Raspberry Pi 2, NUC box, future HP mini PCs (direct VLAN access)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Site B (secondary location):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ISP Router
     ↓ 
Xiaomi Router 4A (OpenWrt, WireGuard client)
     ↓ 
TP-Link 5-port switch
     └─→ Old MacBook, Mac Mini, desktop PC (homelab VLAN)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Travel setup:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GL.iNet Beryl AX (point-to-site VPN client)
     ↓ 
Connects to Brume 2 WireGuard server
     ↓ 
Access to all VLANs at both Site A and Site B

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Brume 2 acts as the central hub: it terminates the WireGuard tunnel from Site B, routes between VLANs at Site A, and allows point-to-site VPN clients (like the Beryl AX when traveling or my laptop) to reach everything. The Xiaomi at Site B initiates and keeps the tunnel alive, since it's behind NAT with no public IP or port forwarding.&lt;/p&gt;




&lt;h2&gt;
  
  
  Designing a VLAN and IP scheme that will scale
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7l1pzpjohj8ap8jrhyya.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7l1pzpjohj8ap8jrhyya.png" alt=" " width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before touching any configs, I mapped out the VLAN IDs and IP ranges with three goals: make them easy to recognize, avoid collisions between sites, and leave room for growth.&lt;/p&gt;

&lt;h3&gt;
  
  
  VLAN mapping
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;VLAN ID&lt;/th&gt;
&lt;th&gt;Subnet&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;th&gt;Who uses it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;10&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;10.11.10.0/24&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Management&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Router admin interfaces, managed switch, AP controller&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;20&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;10.11.20.0/24&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Family&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Laptops, phones, tablets —trusted personal devices&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;30&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;10.11.30.0/24&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Homelab&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Raspberry Pi, NUC, HP mini PCs, any device running lab workloads&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;40&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;10.11.40.0/24&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;IoT&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Smart lightbulbs, power plugs, other IoT gadgets with questionable firmware&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;50&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;10.11.50.0/24&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Entertainment&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Media devices, smart TVs, gaming consoles, streaming boxes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Address space design
&lt;/h2&gt;

&lt;p&gt;I decided to use Class A private IP range (10.0.0.0/8) with a structured approach: the second octet represents the site, and the third octet represents the VLAN.&lt;/p&gt;

&lt;p&gt;For example, &lt;code&gt;10.11.30.200&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;11&lt;/code&gt; identifies the site (in this case, my house)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;30&lt;/code&gt; identifies the VLAN (in this case, the homelab VLAN)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;200&lt;/code&gt; is the specific host within that network&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This structure makes it instantly obvious where a device lives just by looking at its IP address. When I add the second site later, it will use &lt;code&gt;10.22.x.x&lt;/code&gt;, making cross-site routing and firewall rules straightforward—no subnet overlap, no NAT headaches, and clear visual distinction between locations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Room for growth
&lt;/h3&gt;

&lt;p&gt;Each VLAN gets a full &lt;code&gt;/24&lt;/code&gt; (254 usable IPs), which is overkill for now but leaves room to grow. If the Kubernetes cluster scales to 10+ nodes across both sites, or if I add more IoT devices or guest networks, I won't need to re-subnet anything—I just add more devices to the existing VLANs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Management isolation
&lt;/h3&gt;

&lt;p&gt;VLAN 10 is reserved for network infrastructure (router, switch, AP) and nothing else. Family devices, IoT gadgets, and even homelab workloads can't directly reach management interfaces unless firewall rules explicitly allow it. This means a compromised IoT device or a rogue VM can't start poking at the router's admin panel.&lt;/p&gt;




&lt;h2&gt;
  
  
  Wrapping up Part 1
&lt;/h2&gt;

&lt;p&gt;That's the foundation: the story of why I rebuilt, the requirements that drove the design, the hardware doing the work, and the VLAN/IP scheme that ties it all together.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;&lt;a href="https://dev.to/n20amaral/turning-one-lan-into-five-networks-vlans-wi-fi-segmentation-at-home-h55"&gt;Part 2&lt;/a&gt;&lt;/strong&gt;, I'll show you how to implement this at Site A: configuring VLAN interfaces on the Brume 2, setting up VLAN trunking and access ports on the Netgear switch, mapping SSIDs to VLANs on the Omada AP, and writing the firewall rules that enforce isolation between networks.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;&lt;a href="https://dev.to/n20amaral/making-it-two-locations-a-routed-wireguard-tunnel-between-my-labs-4o3m"&gt;Part 3&lt;/a&gt;&lt;/strong&gt;, we'll extend this to Site B, configure the site-to-site WireGuard tunnel, and set up point-to-site VPN access so everything works seamlessly whether you're at home, at the secondary site, or halfway around the world.&lt;/p&gt;

</description>
      <category>networking</category>
      <category>homelab</category>
      <category>vlan</category>
      <category>openwrt</category>
    </item>
  </channel>
</rss>
