My home internet connection has a dynamic IPv4 address, but it has a IPv6 range assigned to it, meaning that I can assign a static public IPv6 addresses to my VPN server.
I've successfully configured the WireGuard VPN client in LibreElec, using the current dynamic IPv4 address of my VPN server, as per this documentation. This works fine, even after reboots.
I would like to move to connecting to the VPN server using it's static IPv6 address. I don’t want to use dynamic DNS and I can’t obtain a static IPv4 address for my internet connection.
I’ve updated the WireGuard config to use the IPv6 address, updated the systemd service config file with the new connection name (which changes because the `Host` of the VPN config has changed) and then rebooted, I am unable to access any resources over the tunnel as the VPN connection has not been established. Note: At this point, I’ve confirmed that systemd launched the `connmanctl connect vpn_…` command and didn’t error.
If I disconnect, then connect, it kind of works, but doesn’t (I've obfuscated my IPv6 address):
LibreELEC:~ # connmanctl connect vpn_ff00_ff00_ff00_ff00_ff00_ff00_ff00_baaa
Error /net/connman/service/vpn_ff00_ff00_ff00_ff00_ff00_ff00_ff00_baaa: Operation aborted
LibreELEC:~ # connmanctl disconnect vpn_ff00_ff00_ff00_ff00_ff00_ff00_ff00_baaa
Disconnected vpn_ff00_ff00_ff00_ff00_ff00_ff00_ff00_baaa
LibreELEC:~ # connmanctl connect vpn_ff00_ff00_ff00_ff00_ff00_ff00_ff00_baaa
Connected vpn_ff00_ff00_ff00_ff00_ff00_ff00_ff00_baaa
LibreELEC:~ # ping 192.168.10.10
PING 192.168.10.10 (192.168.10.10): 56 data bytes
64 bytes from 192.168.10.10: seq=0 ttl=64 time=62.362 ms
ping: sendto: Network is unreachable
LibreELEC:~ # ping 192.168.10.10
PING 192.168.10.10 (192.168.10.10): 56 data bytes
^C
--- 192.168.10.10 ping statistics ---
17 packets transmitted, 0 packets received, 100% packet loss
LibreELEC:~ # connmanctl disconnect vpn_ff00_ff00_ff00_ff00_ff00_ff00_ff00_baaa
Disconnected vpn_ff00_ff00_ff00_ff00_ff00_ff00_ff00_baaa
LibreELEC:~ # connmanctl connect vpn_ff00_ff00_ff00_ff00_ff00_ff00_ff00_baaa
Connected vpn_ff00_ff00_ff00_ff00_ff00_ff00_ff00_baaa
LibreELEC:~ # ping 192.168.10.10
PING 192.168.10.10 (192.168.10.10): 56 data bytes
64 bytes from 192.168.10.10: seq=0 ttl=64 time=76.220 ms
^C
--- 192.168.10.10 ping statistics ---
40 packets transmitted, 1 packets received, 97% packet loss
round-trip min/avg/max = 76.220/76.220/76.220 ms
Display More
If I disable the systemd service and manually connect the VPN after boot, it connects, but it really flaky:
LibreELEC:~ # systemctl disable wireguard
Removed /storage/.config/system.d/multi-user.target.wants/wireguard.service.
LibreELEC:~ # reboot
LibreELEC:~ # connmanctl connect vpn_ff00_ff00_ff00_ff00_ff00_ff00_ff00_baaa
Connected vpn_ff00_ff00_ff00_ff00_ff00_ff00_ff00_baaa
LibreELEC:~ # ping 192.168.10.10
PING 192.168.10.10 (192.168.10.10): 56 data bytes
^C
--- 192.168.10.10 ping statistics ---
6 packets transmitted, 0 packets received, 100% packet loss
LibreELEC:~ # connmanctl disconnect vpn_ff00_ff00_ff00_ff00_ff00_ff00_ff00_baaa
Disconnected vpn_ff00_ff00_ff00_ff00_ff00_ff00_ff00_baaa
LibreELEC:~ # connmanctl connect vpn_ff00_ff00_ff00_ff00_ff00_ff00_ff00_baaa
Connected vpn_ff00_ff00_ff00_ff00_ff00_ff00_ff00_baaa
LibreELEC:~ # ping 192.168.10.10
PING 192.168.10.10 (192.168.10.10): 56 data bytes
64 bytes from 192.168.10.10: seq=0 ttl=64 time=54.692 ms
64 bytes from 192.168.10.10: seq=1 ttl=64 time=53.563 ms
64 bytes from 192.168.10.10: seq=2 ttl=64 time=71.911 ms
^C
--- 192.168.10.10 ping statistics ---
19 packets transmitted, 3 packets received, 84% packet loss
round-trip min/avg/max = 53.563/60.055/71.911 ms
Display More
I have other devices (laptops and phone) that connect to the VPN server over IPv6 without any issues.
Does any one have any ideas what I can do to make the LibreElec WireGuard VPN client work with accessing the VPN server over IPv6?