Host implementations of draft-vanmook-intarea-ipv6-resolved-gateway — IPv4 on IPv6-only segments via gateway 192.0.0.11, resolved from the IPv6 neighbor cache instead of ARP.
/32 gateway and resolves it by ARP, which the router
answers. The packages below add the draft's §4 guarantees — the host resolves
192.0.0.11 from Neighbor Discovery, never ARP, and follows the live
IPv6 default router — which is what lets the gateway stop answering ARP.
| Platform | Package | When |
|---|---|---|
| Linux | v4gwd (.deb/.rpm) | General-purpose. Any distro with systemd; pure Python user-space daemon. |
| Linux | systemd-networkd | Hosts already on networkd wanting the behaviour native and in-process, no extra daemon. |
| FreeBSD | v4gwd | FreeBSD 13.1+; uses the in-kernel RFC 5549 data plane. |
| macOS | v4gwd-arp | macOS (Apple Silicon). Static-neighbor realization. |
| Windows | v4gwd.ps1 | Windows 10/11. PowerShell daemon; static-neighbor realization. |
Linux ≥ 5.2 and FreeBSD carry IPv4-route-with-IPv6-next-hop (RFC 5549) in the kernel; macOS, Windows, and pre-5.2 Linux reach identical on-wire behaviour by pinning 192.0.0.11 to the router's link-layer address. The Linux daemon picks the right mode from the running kernel automatically.
Portable user-space daemon (Python + pyroute2). Installing enables
and starts v4gwd.service; it manages every ethernet interface and
stays inert until a DHCPv4 server hands out 192.0.0.11. Architecture-independent.
Debian / Ubuntu
wget https://remcovanmook.github.io/v4-with-v6-nh/v4gwd.deb sudo apt install ./v4gwd.deb
Fedora / RHEL
wget https://remcovanmook.github.io/v4-with-v6-nh/v4gwd.rpm sudo dnf install ./v4gwd.rpm
Files: v4gwd.deb · v4gwd.rpm · details
Native alternative for hosts already using networkd:
DHCPv4 client and Neighbor Discovery in one process, enabled per-link with
[DHCPv4] UseIPv6ResolvedGateway=yes — no separate daemon. These are
the stock package rebuilt with the patch; a later system upgrade replaces them
with the unpatched binary, so reinstall (or rebuild) afterwards.
Fedora 44 (aarch64 / x86_64)
curl -LO https://remcovanmook.github.io/v4-with-v6-nh/systemd-networkd-259.7-1.fc44.$(uname -m).rpm sudo rpm -Uvh --force systemd-networkd-259.7-1.fc44.$(uname -m).rpm
Ubuntu 26.04 / Debian (arm64 / amd64)
curl -LO https://remcovanmook.github.io/v4-with-v6-nh/systemd_259.5-0ubuntu3_$(dpkg --print-architecture).deb sudo dpkg -i systemd_259.5-0ubuntu3_$(dpkg --print-architecture).deb
Files: fc44.aarch64.rpm · fc44.x86_64.rpm · ubuntu3_arm64.deb · ubuntu3_amd64.deb · details
Single-file C daemon for FreeBSD 13.1+, using the in-kernel
RFC 5549 data plane. Wire it to dhclient-exit-hooks / rc.d per the
docs.
fetch https://remcovanmook.github.io/v4-with-v6-nh/v4gwd-freebsd-$(uname -m) install -m 755 v4gwd-freebsd-$(uname -m) /usr/local/sbin/v4gwd
Files: v4gwd-freebsd-amd64 · v4gwd-freebsd-arm64 · details
C daemon that follows the IPv6 default router and holds a static
ARP entry for 192.0.0.11. macOS has no in-kernel RFC 5549, so it uses the
static-neighbor realization. Apple Silicon binary; on Intel, build from source
(make). Unsigned — run via sudo.
curl -LO https://remcovanmook.github.io/v4-with-v6-nh/v4gwd-arp-macos-arm64 sudo install -m 755 v4gwd-arp-macos-arm64 /usr/local/sbin/v4gwd-arp
File: v4gwd-arp-macos-arm64 · details
Single-file PowerShell daemon on the in-box NetTCPIP cmdlets; pins 192.0.0.11 to the IPv6 router's MAC and follows it. A native C service variant (IP Helper API) is in the repo. Run from an elevated PowerShell; see the docs to install it as a boot-time SYSTEM task.
Invoke-WebRequest https://remcovanmook.github.io/v4-with-v6-nh/v4gwd.ps1 -OutFile v4gwd.ps1 powershell -ExecutionPolicy Bypass -File v4gwd.ps1 -Interface Ethernet