2039 Commits

Author SHA1 Message Date
Joseph Henry bc2c4cf80a Merge branch 'dev' of https://github.com/zerotier/zerotierone into dev 2022-02-25 11:39:21 -08:00
Joseph Henry 9933d83cf8 Merge pull request #1564 from zerotier/dev-whoami
Proactively seek, and distribute external surface addresses

This patch introduces a new "self-awareness" behavior which proactively queries peers for external surface addresses and distributes them via PUSH_DIRECT_PATHS. This has the effect of making ZT more responsive to interface changes.

Current behavior:

Previously, this type of information was only mediated via RENDEZVOUS and was only triggered when the client detected that it no longer had a single alive path to a peer. While PUSH_DIRECT_PATHS would correctly (and often) send local addresses, this was not the case for external addresses collected from response HELLOs. This would lead to situations where only one physical address would be distributed to peers. Additionally, if a new physical interface were to be made available to the client, the client would correctly bind to it but never seek information about its external mapping from a peer, and thus the new physical interface would remain unavailable for other peers to learn about until all paths on the previous interface have expired which can take a couple of minutes. In traditional usage of ZT this is not usually a problem, but it becomes a problem in the following scenarios:

    Network interfaces go up and down while ZT is running (e.g. switching to LTE or WiFi from a wired connection)
    Network interfaces are added or removed in multipath setups

Proposed behavior:

I propose that normal full HELLOs are sent not only on the first interface in use, but all interfaces. This causes planets to respond with a HELLO containing the surface address for each interface. We then collect each address using SelfAwareness::whoami() and distribute them via the normal PUSH_DIRECT_PATHS mechanism.
2022-02-25 11:30:45 -08:00
Joseph Henry 1918c29fd7 Change ECHO divisor from 20 to 6 2022-02-25 11:29:07 -08:00
Joseph Henry 618202d426 Increase min failover to 500 ms and probe period to 1/3rd of failover 2022-02-25 10:52:39 -08:00
Joseph Henry d1335dca11 Change ECHO rate-limit divsor from 16 to 20 2022-02-21 16:22:33 -08:00
Joseph Henry 5e13b42abc Rate gate ECHO per Path instead of per Peer 2022-02-21 14:37:39 -08:00
Joseph Henry 96aa1c30a6 Proactively seek, enumerate, and distribute external surface addresses 2022-02-17 15:39:17 -08:00
Joseph Henry 1b0c183913 Force non-leaf peers into local active-backup bond when multipath is enabled 2022-02-17 15:16:33 -08:00
Joseph Henry 40269c2a97 Comment out debug traces 2022-02-16 20:39:18 -08:00
Adam Ierymenko 3c85a7f074 Rev roots. 2022-02-15 09:13:58 -05:00
Joseph Henry f9c84c8c52 Remove stray debug trace 2022-02-08 15:32:25 -08:00
Grant Limberg aa97aabb4e for now, only enable sso on certain platforms
mac, windows, linux x86/x86_64/aarch64
2022-02-01 11:07:37 -08:00
Joseph Henry 4190318c85 Fix typo in constant name 2022-01-28 10:41:21 -08:00
Joseph Henry 2f554fd6f8 Merge pull request #1552 from Shawn8410/master
FIX: fix wrong flag usage of rateGateCredentialsReceived
2022-01-28 10:12:16 -08:00
Shawn ae93cccde6 FIX: fix wrong flag usage of rateGateCredentialsReceived 2022-01-27 11:59:21 +08:00
Joseph Henry 46e955e3a1 Split bond logs into two categories to reduce logging size 2022-01-26 15:14:02 -08:00
Joseph Henry 2850f131e2 Fix code style 2022-01-25 18:03:36 -08:00
Grant Limberg d719137565 temp workaround for oidc auth dropping issue
Add a method to "kick" the refresh thread and re-post the tokens in the case where the thread is somehow still running & controller pushes out an AUTH_REQUIRED.  This situation happens in a corner case still under investigation where the controller pushes out many copies of the network config repeatedly
2022-01-20 09:44:56 -08:00
Grant Limberg dceba1f2f1 Merge branch 'dev' into zeroidc 2022-01-05 08:35:15 -08:00
Grant Limberg 73878fbdc4 Merge pull request #1531 from StephenCWills/mingw32-disable-salsasse
Disable Salsa20 SSE on MinGW 32-bit compiler
2022-01-04 17:42:40 -08:00
staphen 87d17088cc Disable Salsa20 SSE on MinGW 32-bit compiler 2022-01-04 20:39:08 -05:00
Grant Limberg cc6c48fca8 Merge pull request #1525 from StephenCWills/lowercase-windows-headers
Use lowercase when including Windows headers
2022-01-04 17:11:51 -08:00
staphen 1c956494a4 Use lowercase when including Windows headers 2021-12-29 16:29:08 -05:00
Grant Limberg eee31605b1 Merge branch 'dev' into zeroidc 2021-12-15 14:17:26 -08:00
Andrej Binder aeec7dae36 Prevent arithmetic error on interface change. 2021-12-15 22:22:02 +01:00