rethink-app icon indicating copy to clipboard operation
rethink-app copied to clipboard

Meta apps (Messenger) don't work with IPv6

Open ignoramous opened this issue 1 year ago • 3 comments

v053h

A user confirmed that WhatsApp worked (but it also sent requests over port 80, an indication that WhatsApp also thought there was no connectivity) but Messenger didn't on IPv6 networks.

Switching the app to IPv4 fixed the issue with Messenger.

It is clear that something about IPv6 trips Meta apps.

ignoramous avatar Sep 13 '22 22:09 ignoramous

User says,

Basically my local network is v6, but it's connected to a v4 WAN

FRITZ!Box 7430

and my LAN does support IPv6. But I'm reasonably sure neither my land-line provider nor my mobile provider support it

Rethink says both are supported

i get ZERO on it (test-ipv6.com) in Auto mode

Sweitched to forced IPv4, force stopped and cache-cleared Messenger. Result: hey, it worksprovider

ignoramous avatar Sep 13 '22 23:09 ignoramous

From the same user,

cat /proc/net/route
Iface   Destination     Gateway         Flags   RefCnt  Use     Metric  Mask            MTU     Window  IRTT

tun1    00DE6F0A        00000000        0001    0       0       0       00FFFFFF        0       0       0

wlan0   00B2A8C0        00000000        0001    0       0       0       00FFFFFF        0       0       0
a13ve:/ $ /system/bin/ip route show table 0
/system/bin/ip route show table 0
default dev dummy0 table 1024 proto static scope link
default via 192.168.178.1 dev wlan0 table 1040 proto static
192.168.178.0/24 dev wlan0 table 1040 proto static scope link
default dev tun1 table 1174 proto static scope link
10.111.222.0/24 dev tun1 table 1174 proto static scope link
10.111.222.3 dev tun1 table 1174 proto static scope link
10.111.222.0/24 dev tun1 proto kernel scope link src 10.111.222.1
192.168.178.0/24 dev wlan0 proto kernel scope link src 192.168.178.40
broadcast 10.111.222.0 dev tun1 table local proto kernel scope link src 10.111.222.1
local 10.111.222.1 dev tun1 table local proto kernel scope host src 10.111.222.1
broadcast 10.111.222.255 dev tun1 table local proto kernel scope link src 10.111.222.1
broadcast 127.0.0.0 dev lo table local proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo table local proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo table local proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo table local proto kernel scope link src 127.0.0.1
broadcast 192.168.178.0 dev wlan0 table local proto kernel scope link src 192.168.178.40
local 192.168.178.40 dev wlan0 table local proto kernel scope host src 192.168.178.40
broadcast 192.168.178.255 dev wlan0 table local proto kernel scope link src 192.168.178.40
fe80::/64 dev dummy0 table 1024 proto kernel metric 256 pref medium
default dev dummy0 table 1024 proto static metric 1024 pref medium
fd00::/64 dev wlan0 table 1040 proto kernel metric 256 expires 6470sec pref medium
fd00::/64 via fe80::7eff:4dff:fe40:bb18 dev wlan0 table 1040 proto ra metric 1024 pref medium
fd00::/64 dev wlan0 table 1040 proto static metric 1024 pref medium
fe80::/64 dev wlan0 table 1040 proto kernel metric 256 pref medium
fe80::/64 dev wlan0 table 1040 proto static metric 1024 pref medium
fd66:f83a:c650::3 dev tun1 table 1174 proto static metric 1024 pref medium
fd66:f83a:c650::/120 dev tun1 table 1174 proto kernel metric 256 pref medium
fd66:f83a:c650::/120 dev tun1 table 1174 proto static metric 1024 pref medium
fe80::/64 dev tun1 table 1174 proto kernel metric 256 pref medium
default dev tun1 table 1174 proto static metric 1024 pref medium
local ::1 dev lo table local proto kernel metric 0 pref medium
local fd00::d49b:ee50:d3cd:79ec dev wlan0 table local proto kernel metric 0 pref medium
local fd00::dcad:6fff:feb4:f3a9 dev wlan0 table local proto kernel metric 0 pref medium
local fd66:f83a:c650::1 dev tun1 table local proto kernel metric 0 pref medium
local fe80::6ecf:c788:1e0d:f145 dev tun1 table local proto kernel metric 0 pref medium
local fe80::88c5:7dff:fe8f:859a dev dummy0 table local proto kernel metric 0 pref medium
local fe80::dcad:6fff:feb4:f3a9 dev wlan0 table local proto kernel metric 0 pref medium
ff00::/8 dev dummy0 table local metric 256 pref medium
ff00::/8 dev wlan0 table local metric 256 pref medium
ff00::/8 dev tun1 table local metric 256 pref medium

ignoramous avatar Sep 13 '22 23:09 ignoramous

Hm, I now suspect that Meta apps send ICMPv6 msgs (which are always responded to positively by both the older and the newer network engine), and then send TCP/UDP requests expecting them to succeed. Instead of: Also checking whether TCP/UDP requests go through or not.

ignoramous avatar Sep 14 '22 20:09 ignoramous

Also, add routes only if the underlying network has default gateway routes [0]? Though it isn't clear if that would break 464Xlat.

https://github.com/celzero/rethink-app/blob/ed8616ba94e757e62ba634a1f65d192deeaed708/app/src/main/java/com/celzero/bravedns/service/ConnectionMonitor.kt#L305-L306

[0] https://github.com/tailscale/tailscale/issues/5879#issuecomment-1276307033

ignoramous avatar Oct 30 '22 17:10 ignoramous