DefinedNet / mobile_nebula

Brings nebula to mobile devices (iOS, Android)
https://defined.net
123 stars 37 forks source link

Android bug: Handshake does not fallback to IPv4 #157

Closed diogotcorreia closed 2 months ago

diogotcorreia commented 2 months ago

Logs:

time="2024-06-13T11:14:07Z" level=info msg="Firewall rule added" firewallRule="map[caName: caSha: direction:outgoing endPort:0 groups:[] host:any ip: localIp: proto:0 startPort:0]"
time="2024-06-13T11:14:07Z" level=info msg="Firewall started" firewallHashes="SHA:e85003df4f1fda51508c25d4abbb6d54f61a759dc578b5a437dd278ae48d237c,FNV:2548574963"
time="2024-06-13T11:14:07Z" level=info msg="listening \"0.0.0.0\" 0"
time="2024-06-13T11:14:07Z" level=info msg="Main HostMap created" network=192.168.100.6/24 preferredRanges="[]"
time="2024-06-13T11:14:07Z" level=info msg="punchy enabled"
time="2024-06-13T11:14:07Z" level=info msg="Loaded send_recv_error config" sendRecvError=always
time="2024-06-13T11:14:07Z" level=info msg="DNS results changed for host list" newSet="map[193.XXX.XXX.XXX:4242:{}]" origSet="&map[]"
time="2024-06-13T11:14:07Z" level=info msg="DNS results changed for host list" newSet="map[146.XXX.XXX.XXX:4242:{}]" origSet="&map[]"
time="2024-06-13T11:14:07Z" level=info msg="Nebula interface is active" boringcrypto=false build= interface=android network=192.168.100.6/24 udpAddr="[::]:37480"
time="2024-06-13T11:14:07Z" level=info msg="Handshake message sent" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=2572529725 localIndex=2572529725 remoteIndex=0 udpAddrs="[193.XXX.XXX.XXX:4242]" vpnIp=192.168.100.7
time="2024-06-13T11:14:07Z" level=info msg="Handshake message sent" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=3500659454 localIndex=3500659454 remoteIndex=0 udpAddrs="[146.XXX.XXX.XXX:4242]" vpnIp=192.168.100.1
time="2024-06-13T11:14:07Z" level=info msg="Handshake message received" certName=zeus durationNs=210144218 fingerprint=6227713be46efe98a6fa6eca03d2b8d236b0c80561df499f32f3eda7333adada handshake="map[stage:2 style:ix_psk0]" initiatorIndex=3500659454 issuer=84dcf3d8be08855cc8399ecdc1925b07fb5ffb86d44fbac0f00f8986f90e3362 remoteIndex=3500659454 responderIndex=2421377496 sentCachedPackets=1 udpAddr="146.XXX.XXX.XXX:4242" vpnIp=192.168.100.1
time="2024-06-13T11:14:07Z" level=info msg="Handshake message received" certName=phobos durationNs=214177292 fingerprint=dde2144db6299038f9b08d2a5f63c914e7cef77cb02af7e175a7467ad9ab5046 handshake="map[stage:2 style:ix_psk0]" initiatorIndex=2572529725 issuer=84dcf3d8be08855cc8399ecdc1925b07fb5ffb86d44fbac0f00f8986f90e3362 remoteIndex=2572529725 responderIndex=4230923901 sentCachedPackets=1 udpAddr="193.XXX.XXX.XXX:4242" vpnIp=192.168.100.7
time="2024-06-13T11:14:25Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:25Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:25Z" level=info msg="Handshake message sent" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddrs="[94.XXX.XXX.XXX:58425 172.17.0.1:58425 192.168.1.2:58425]" vpnIp=192.168.100.2
time="2024-06-13T11:14:25Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:25Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:26Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:26Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:26Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:26Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:27Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:27Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:28Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:28Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:29Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:29Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:29Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:29Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:31Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:31Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:32Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:32Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:33Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:33Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:34Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:34Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:35Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:35Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:37Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:37Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:39Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:39Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:40Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:40Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:42Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:42Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:44Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:44Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:46Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:46Z" level=error msg="Failed to send handshake message" error="write udp [::]:37480->[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425: sendto: network is unreachable" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddr="[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425" vpnIp=192.168.100.2
time="2024-06-13T11:14:48Z" level=info msg="Handshake timed out" durationNs=22911866345 handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddrs="[[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425 [XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425 94.XXX.XXX.XXX:58425 172.17.0.1:58425 192.168.1.2:58425]" vpnIp=192.168.100.2

I have two lighthouses, 192.168.100.1 and 192.168.100.7. The latter has IPv6 connectivity while the former is IPv4-only.

I'm trying to connect to 192.168.100.2 (Linux, with IPv6 connectivity), from an Android device 192.168.100.6 (without IPv4 connectivity).

It appears that the Nebula app is trying to do the handshake using only the two IPv6 addresses, and not the public IPv4 that is also known to the app (see last line of log).

johnmaguire commented 2 months ago

Hi @diogotcorreia

time="2024-06-13T11:14:48Z" level=info msg="Handshake timed out" durationNs=22911866345 handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddrs="[[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:e593]:58425 [XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:5e5c]:58425 94.XXX.XXX.XXX:58425 172.17.0.1:58425 192.168.1.2:58425]" vpnIp=192.168.100.2

This log line indicates that Nebula has sent handshakes to every host listed in udpAddrs and received no replies.

If you look above the "error" log lines, you'll see the following:

time="2024-06-13T11:14:25Z" level=info msg="Handshake message sent" handshake="map[stage:1 style:ix_psk0]" initiatorIndex=42024764 localIndex=42024764 remoteIndex=0 udpAddrs="[94.XXX.XXX.XXX:58425 172.17.0.1:58425 192.168.1.2:58425]" vpnIp=192.168.100.2

The errors regarding IPv6 addresses occur because you're on a network that doesn't support IPv6. When we try to "write" these packets, we receive an error, and log it. When writing the IPv4 packets, no such error occurs. These errors can be safely ignored. This may be addressed in a future version of Nebula / Mobile Nebula.

I have two lighthouses, 192.168.100.1 and 192.168.100.7. The latter has IPv6 connectivity while the former is IPv4-only.

Just FYI, it is advisiable to always use an IPv4 address in the static_host_map for Lighthouses as it gives the Lighthouse a chance to learn the public IPv4 address for a node. (i.e. Most IPv4 networks are NAT'd, so a laptop/phone/server on the network doesn't know the public IPv4 address and can't self-report it to the Lighthouse. The lighthouse learns the address via the "source" part of the handshake packet.) I see you are already doing this.

diogotcorreia commented 2 months ago

I'll take a further look then. The truth is that I can't ping the host, nor does it show up under "Active Tunnels". 🤔

As for the lighthouse addresses, I'm using a host name that has both A and AAAA records (for 192.168.100.7).

diogotcorreia commented 2 months ago

This seems to be something with my ISP. I have two SIM cards in my phone, and it works fine in one of them but not in the other (neither have IPv6 connectivity).

My solution was to configure relay nodes in my Nebula network and now everything works.

Thanks again for your thorough explanation.

johnmaguire commented 2 months ago

This seems to be something with my ISP. I have two SIM cards in my phone, and it works fine in one of them but not in the other (neither have IPv6 connectivity).

Most likely the ISP you have issues with uses a more difficult form of NAT for hole punching. Some carriers even use CGNAT, where multiple customers share a public IP address. These are nearly impossible to punch through, and relays are your best bet here. 👍