netbird/client
Zoltan Papp e8d301fdc9
[client] Fix/pkg loss (#3338)
The Relayed connection setup is optimistic. It does not have any confirmation of an established end-to-end connection. Peers start sending WireGuard handshake packets immediately after the successful offer-answer handshake.
Meanwhile, for successful P2P connection negotiation, we change the WireGuard endpoint address, but this change does not trigger new handshake initiation. Because the peer switched from Relayed connection to P2P, the packets from the Relay server are dropped and must wait for the next WireGuard handshake via P2P.

To avoid this scenario, the relayed WireGuard proxy no longer drops the packets. Instead, it rewrites the source address to the new P2P endpoint and continues forwarding the packets.

We still have one corner case: if the Relayed server negotiation chooses a server that has not been used before. In this case, one side of the peer connection will be slower to reach the Relay server, and the Relay server will drop the handshake packet.

If everything goes well we should see exactly 5 seconds improvements between the WireGuard configuration time and the handshake time.
2025-09-30 15:31:18 +02:00
..
android [client] Use native windows sock opts to avoid routing loops (#4314) 2025-09-20 09:31:04 +02:00
anonymize [client] Add output similar to wg show to the debug package (#3922) 2025-06-05 11:51:39 +02:00
cmd [client] Check the client status in the earlier phase (#4509) 2025-09-20 22:14:01 +02:00
configs [client] make /var/lib/netbird paths configurable (#3084) 2025-01-13 10:15:01 +01:00
embed [client] Check the client status in the earlier phase (#4509) 2025-09-20 22:14:01 +02:00
errors [client] Fix error count formatting (#2641) 2024-09-24 20:57:56 +02:00
firewall [client] Use native windows sock opts to avoid routing loops (#4314) 2025-09-20 09:31:04 +02:00
grpc [client] Check the client status in the earlier phase (#4509) 2025-09-20 22:14:01 +02:00
iface [client] Fix/pkg loss (#3338) 2025-09-30 15:31:18 +02:00
internal [client] Fix/pkg loss (#3338) 2025-09-30 15:31:18 +02:00
ios/NetBirdSDK [misc] Move shared components to shared directory (#4286) 2025-08-05 15:22:58 +02:00
net [client] Use native windows sock opts to avoid routing loops (#4314) 2025-09-20 09:31:04 +02:00
proto [client] Check the client status in the earlier phase (#4509) 2025-09-20 22:14:01 +02:00
server [client] Check the client status in the earlier phase (#4509) 2025-09-20 22:14:01 +02:00
ssh [client] Allow ssh server on freebsd (#3170) 2025-01-14 12:43:13 +01:00
status [misc] Move shared components to shared directory (#4286) 2025-08-05 15:22:58 +02:00
system [client] Debug information for connection (#4439) 2025-09-08 14:51:34 +02:00
testdata [management] Move testdata to sql files (#2693) 2024-10-10 12:35:03 +02:00
ui [client] [UI] Down & Up NetBird Async When Settings Updated 2025-09-18 18:13:29 +07:00
Dockerfile [client] Do not run up cmd if not needed in docker (#4508) 2025-09-20 10:00:18 +02:00
Dockerfile-rootless client: container: support CLI with entrypoint addition (#4126) 2025-07-25 11:44:30 +02:00
installer.nsis [client] Update Windows installer description (#4306) 2025-08-08 21:18:58 +02:00
main.go Clarify XORMapped panic case (#877) 2023-05-18 19:47:36 +02:00
manifest.xml Renaming project builds and including new Icons (#318) 2022-05-21 18:42:56 +02:00
netbird-entrypoint.sh [client] Do not run up cmd if not needed in docker (#4508) 2025-09-20 10:00:18 +02:00
netbird.wxs [client] Update Windows installer description (#4306) 2025-08-08 21:18:58 +02:00
resources.rc [client] UI Refactor Icon Paths (#3420) 2025-03-04 18:29:29 +03:00