DEV Community

edgeslink sdwan
edgeslink sdwan

Posted on

I built an overlay network with a NAT gateway and offline LAN device access (cross-platform, experimental project)

I built an overlay network with a NAT gateway and offline LAN device access (cross-platform, experimental project)

Over the past months I’ve been experimenting with building a small overlay networking system to explore some limitations I often hit with existing tools like Tailscale or ZeroTier.

This is not a commercial product.
It’s an engineering exploration around:

  • NAT behavior inside an overlay
  • exporting LAN subnets
  • reaching offline / isolated devices
  • testing different node roles
  • cross-platform networking on macOS/Windows/Linux

I’m sharing it here to document the project and hopefully collect some technical feedback from the community.

🔧 Why I built this

Existing mesh/overlay systems are excellent—but I had three gaps I wanted to explore deeper:

  1. Embedding a NAT Gateway inside the overlay

Most overlay networks tunnel traffic between nodes without providing a full internal NAT gateway.
I wanted to experiment with:

  • exporting local LAN subnets
  • routing remote peers into isolated networks
  • using the overlay as a security boundary
  • having a gateway node that acts as egress for others
  1. Accessing offline LAN devices (USB-NIC scenario) In many industrial / IoT / camera / printer deployments:
  • Devices live on isolated LANs with no Internet
  • They expose only Ethernet
  • They cannot run an agent

By plugging a USB-NIC into a laptop/mini-PC running the overlay client, I can:

  • bridge the isolated LAN
  • expose selected devices to the overlay
  • manage them remotely without touching the LAN configuration

This has been surprisingly useful for cameras, printers, PLCs, and small embedded systems.

  1. Multiple internal node roles

I introduced three simple node roles:

  • Edge – the standard client
  • Master (hub-like) – provides a stable anchor for peers
  • Direct-Relay – helps forward traffic between nodes when direct routing is impossible These roles are not SD-WAN standards, just internal behaviors I wanted to prototype.

🌐 Cross-platform support

The client currently works on:

  • macOS (Intel + Apple Silicon)
  • Windows
  • Linux

I wanted to ensure consistent routing and NAT behavior across systems, especially for:

  • exporting subnets
  • managing multiple interfaces
  • ensuring stable point-to-point links

🛠 Architecture overview

High-level components:

  • control plane for peer coordination
  • data plane based on encrypted P2P tunnels
  • NAT gateway module
  • USB-NIC detection + LAN export
  • fallback routing via relay nodes
  • peer metadata/state tracking If the HN/Dev community is interested, I can publish a full architecture breakdown.

🔗 Project link

https://www.edgeslink.com

📬 Contact (optional)

If anyone wants to discuss deeper technical details:

🙏 Thanks for reading

Happy to answer questions or elaborate on any part of the project.

Top comments (0)