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:
- 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
- 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.
- 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
📬 Contact (optional)
If anyone wants to discuss deeper technical details:
- Email: edgeslinksdwan@gmail.com
- Telegram: https://t.me/edgeslink
🙏 Thanks for reading
Happy to answer questions or elaborate on any part of the project.
Top comments (0)