Linux client does not route IPv4 if kernel param `ipv6.disable=1`
Describe the bug
When connecting to IPv4 Outline server Linux client does not route if IPv6 stack is disabled in kernel by parameter ipv6.disable=1. Client says it is connected to the server but it does not change default gateway, therefore is pointless. If this parameter is void, client works as expected.
To Reproduce
Launch client on Linux with kernel param ipv6.disable=1 and connect to IPv4 server.
Expected behavior Linux client do IPv4 routing if IPv6 stack is disabled in kernel.
Client System (please complete the following information):
- Outline Client Version: 1.4.0
- Your Operating System: Arch Linux 5.16.16-zen1-1-zen
Additional context
logs with ipv6.disable=1
OutlineProxyController[895]: Client Connected
OutlineProxyController[895]: {"action":"configureRouting","parameters":{"proxyIp":"hidden","isAutoConnect":false}}
OutlineProxyController[895]: Valid JSON
OutlineProxyController[895]: 1648494925.559650: [INFO] attempting to route through outline server hidden
OutlineProxyController[895]: 1648494925.578746: [ERROR] sysctl: cannot stat /proc/sys/net/ipv6/conf/all/disable_ipv6: No such file or directory
OutlineProxyController[895]:
OutlineProxyController[895]: 1648494925.578760: [ERROR] sysctl: cannot stat /proc/sys/net/ipv6/conf/all/disable_ipv6: No such file or directory
OutlineProxyController[895]: sysctl: cannot stat /proc/sys/net/ipv6/conf/default/disable_ipv6: No such file or directory
OutlineProxyController[895]:
OutlineProxyController[895]: 1648494925.578776: [ERROR] possible net traffic leakage. failed to disable IPv6 routes on all interfaces: failed to toggle systemwide ipv6 s>
OutlineProxyController[895]: Configure Routing to hidden is done.
OutlineProxyController[895]: Wrote back ({"statusCode": 0,"returnValue": "","action": "configureRouting"}
OutlineProxyController[895]: ) to unix socket
logs without ipv6.disable=1
OutlineProxyController[917]: Client Connected
OutlineProxyController[917]: {"action":"configureRouting","parameters":{"proxyIp":"hidden","isAutoConnect":false}}
OutlineProxyController[917]: Valid JSON
OutlineProxyController[917]: 1648495588.225506: [INFO] attempting to route through outline server hidden
OutlineProxyController[917]: 1648495588.225523: [WARN] it seems that we are already routing through outline server
OutlineProxyController[917]: 1648495588.225565: [WARN] default routing gateway is unknown
kernel: IPv6: ADDRCONF(NETDEV_CHANGE): outline-tun0: link becomes ready
OutlineProxyController[917]: 1648495588.252124: [INFO] successfully routing through the outline server
OutlineProxyController[917]: Configure Routing to hidden is done.
OutlineProxyController[917]: Wrote back ({"statusCode": 0,"returnValue": "","action": "configureRouting"}
OutlineProxyController[917]: ) to unix socket
Same behavior on Manjaro Linux 5.16.11-2-MANJARO, Outline client 1.4.0
This problem exists in the following versions and I tested it.
Ubuntu 20.04 Ubuntu 21.10 Ubuntu 22.04 PopOS 22.04
Please fix this bug.