IPv6 Issues When Bridging on Windows
Categories:
-
IPv6 Issues When Bridging on Windows
-
IPv6 Issues When Bridging on Windows Server
Nowadays, many soft-router machines come with good hardware specs. Running OpenWrt alone is overkill, so most tinkerers like to squeeze out more value. The difficulty with Linux lies in the command line, but those who use it daily often find that this is also what makes Linux easy.
Anyone who enjoys tinkering will eventually need external network access. Since Linux is usually maintained by non-professionals and security patches arrive slowly, some decide to use Windows Server instead. The software originally running on OpenWrt can be deployed via WSL plus Docker, satisfying all the same needs.
When Windows (Server) bridges multiple networks, IPv6 addresses often fail to refresh even though IPv4 works fine. Because the IPv6 prefix is assigned automatically by the ISP, it cannot be changed manually, so the bridge’s network configuration must be tweaked.
References
Generally, bridging is purely layer 2 so no IP address is required, so just like an unmanaged switch should be IPv6 capable.
However, if you can plug the bridge into a switch and more than one client at a time can have internet access through the bridge, then IPv6 will most likely only work with one of the clients because the main router handling IPv6 connections can only see the bridge’s MAC address. I’m not sure how SLAAC decides which client gets the IPv6 but you could test this out with a switch.
DHCP is of course for IPv4. It may be possible to use stateful DHCPv6 to assign DUIDs to each client and make this work but I have no idea how this would be done. Good luck!
In short, because bridging operates at layer 2, no IP configuration is necessary. However, when the bridged network plugs into a switch, the upstream router only sees the bridge’s single MAC address and cannot distinguish the multiple devices behind the bridge, so it allocates IPv6 to only one of them.
A canonical working configuration looks like:
PS C:\Users\jqkno> netsh interface ipv6 show interface "wi-fi"
Interface Wi-Fi Parameters
----------------------------------------------
IfLuid : wireless_32768
IfIndex : 24
State : connected
Metric : 45
Link MTU : 1480 bytes
Reachable Time : 29000 ms
Base Reachable Time : 30000 ms
Retransmission Interval : 1000 ms
DAD Transmits : 1
Site Prefix Length : 64
Site Id : 1
Forwarding : disabled
Advertising : disabled
Neighbor Discovery : enabled
Neighbor Unreachability Detection : enabled
Router Discovery : enabled
Managed Address Configuration : enabled
Other Stateful Configuration : enabled
Weak Host Sends : disabled
Weak Host Receives : disabled
Use Automatic Metric : enabled
Ignore Default Routes : disabled
Advertised Router Lifetime : 1800 seconds
Advertise Default Route : disabled
Current Hop Limit : 64
Force ARPND Wake up patterns : disabled
Directed MAC Wake up patterns : disabled
ECN capability : application
RA Based DNS Config (RFC 6106) : enabled
DHCP/Static IP coexistence : enabled
To change the setting: netsh interface ipv6 set interface "Network Bridge" managedaddress=enabled