IPv6 Disconnect Issue on Long-Running Windows Server 2019

My Windows Server 2019 rarely shuts down; under a China Telecom/Redmi router, every time IPv6 is renewed, the local IPv6 connection shows “No Internet access.” Rebooting the machine or toggling the IPv6 feature fixes it, while Linux doesn’t exhibit this problem.

To automate the fix, I use these two commands:

Set-NetIPInterface -AddressFamily IPv6 -ifAlias Ethernet -RouterDiscovery Disabled; 
Set-NetIPInterface -AddressFamily IPv6 -ifAlias Ethernet -RouterDiscovery Enabled;

As you can see, the commands merely force Windows to refresh its route table; it’s unclear why Windows doesn’t do this automatically.

If you run into the same issue, this might help. If anyone has a better solution, feel free to share.

openvpn network connectivity issues

  • openvpn configuration

openvpn configuration

Tool script

openvpn-install

Windows firewall configuration

New-NetFirewallRule -DisplayName "@openvpn" -Direction Inbound  -RemoteAddress 10.8.0.1/24 -Action Allow
New-NetFirewallRule -DisplayName "@openvpn" -Direction Outbound -RemoteAddress 10.8.0.1/24 -Action Allow

IPv6 Issues When Bridging on Windows

  • 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.

picture 2

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

Baota Docker Source Acceleration

In Baota 8.2 and earlier, enabling Docker source acceleration is ineffective, and manually editing the configuration on the UI does not work.

This is because the Docker configuration file resides at /etc/docker/daemon.json. Both the directory and the file do not exist by default, so any direct edits will not be persisted.

Simply run mkdir /etc/docker first, then set the acceleration options in the UI to make the changes effective.

A Fix for Windows Edge Browser Stuttering

Browser Version

122.0.2365.80+

Stuttering Symptoms

  • Stuttering when opening a personal profile
  • Stuttering when accessing and searching stored passwords
  • Stuttering when creating or closing tabs
  • Stuttering when typing in a newly created tab

At present, this kind of stuttering has only been observed on Chinese-language Windows systems.

Solution

Chinese UI path: 隐私-搜索-服务 -> 地址栏和搜索 -> 搜索建议和筛选器 -> 搜索筛选器, turn off Search filters.

English UI path: Privacy search and services -> Address bar and search -> Search suggestions and filters -> Search filters, TURN OFF Search filters.

settings guide