Commit Graph

6369 Commits

Author SHA1 Message Date
f2060e0c76 testing 2023-08-11 11:26:21 -07:00
b81ad9a84d Fix PortMapper issue on ZeroTier startup
See issue #2082

We use a call to libnatpmp::ininatpp to make sure the computer
has working network sockets before we go into the main
nat-pmp/upnp logic.

With basic exponenetial delay up to 30 seconds.
2023-08-11 11:26:21 -07:00
53bc05fe89 Merge pull request #2093 from zerotier/dev-validator-fix-dump-at-abort
Export variables so that they are accessible by exit function
2023-08-11 10:37:16 -07:00
a6d5c452d5 Export variables so that they are accessible by exit function 2023-08-11 10:35:42 -07:00
515fdc22a5 Merge pull request #2092 from zerotier/dev-validator-fix-dump-at-abort
Fix node time-to-online counter in validator script
2023-08-11 10:15:28 -07:00
424e276150 Fix node time-to-online counter in validator script 2023-08-11 10:14:29 -07:00
b071d6bbec Don't apply default route until zerotier is "online"
I was running into issues with restarting the zerotier service while
"full tunnel" mode is enabled.
When zerotier first boots, it gets network state from the cache
on disk. So it immediately applies all the routes it knew about
before it shutdown.
The network config may have change in this time.
If it has, then your default route is via a route
you are blocked from talking on. So you  can't get the current
network config, so your internet does not work.

Other options include
- don't use cached network state on boot
- find a better criteria than "online"
2023-08-11 10:13:34 -07:00
27a9cc6254 Merge pull request #2091 from zerotier/dev-validator-fix-dump-at-abort
Separate test and summary step in validator script
2023-08-10 15:38:27 -07:00
bb9ad5e41a Separate test and summary step in validator script 2023-08-10 15:37:45 -07:00
d91f80464d Merge pull request #2090 from zerotier/dev-validator-fix-dump-at-abort
Save zt node log files on abort
2023-08-10 11:08:52 -07:00
d826ddb294 Save zt node log files on abort 2023-08-10 11:02:37 -07:00
a7600c8072 Merge pull request #2089 from zerotier/dev-validator-fix-dump-at-abort
Save ZT dump files on validator abort
2023-08-10 10:55:41 -07:00
82a9122fc3 Update validate-1m-linux.sh 2023-08-10 09:58:47 -07:00
0e9e7f2ebc Merge pull request #2086 from zerotier/tl-2082
Don't skip hellos when there are no paths available
2023-08-09 11:49:42 -07:00
14671009f8 Don't skip hellos when there are no paths available
working on #2082
2023-08-09 09:35:12 -07:00
802c9907a1 limit to hooks with hook_type = NETWORK_JOIN enabled 2023-08-08 13:14:55 -07:00
88b96265d7 look up hook URLs dynamically 2023-08-07 16:42:23 -07:00
0bc10923a1 Test that starting zerotier before internet works 2023-08-07 13:25:15 -07:00
0dc92c2d7b update openidconnect rust lib 2023-08-07 10:41:19 -07:00
04a3206e53 fix rust cache in github actions 2023-08-04 15:38:49 -07:00
98360d94a5 attempt at fixing the windows build 2023-08-04 15:28:52 -07:00
a9c8307d97 should only run this if smee is configured 2023-08-04 15:14:40 -07:00
581489f67b this should theoretically send the new member notification 2023-08-04 15:02:37 -07:00
5e89d5a03f fix a typo 2023-08-04 15:02:30 -07:00
d71d051c53 instantiate smee client 2023-08-04 14:31:35 -07:00
d2aeff6752 another mac fix 2023-08-04 14:04:20 -07:00
36be14de06 fix zeroidc include path 2023-08-04 13:31:24 -07:00
f9af9a15f2 rusftormat zeroidc 2023-08-04 13:09:14 -07:00
4674bb5c8b add smee client 2023-08-04 13:08:41 -07:00
a6b764bf7c move zeroidc to rustybits folder 2023-08-03 14:57:00 -07:00
c6f07ee19f Disable executable stacks on assembly objects (#2071)
Add `--noexecstack` to the assembler flags so the resulting binary
will link with a non-executable stack.

Fixes zerotier/ZeroTierOne#1179

Co-authored-by: Joseph Henry <joseph.henry@zerotier.com>
2023-08-02 15:12:49 -07:00
e36127283c Fix typos (#2075) 2023-08-01 08:53:55 -07:00
230ae6bd16 Fix reporting of secondaryPort and tertiaryPort See: #2039 2023-07-31 20:44:16 -07:00
5b5ef07350 Add search domain to macos dns configuration
Stumbled upon this while debugging something else.
If we add search domain to our system configuration for
network DNS, then search domains work:

```
ping server1                                                                                                                                                                                    ~
PING server1.my.domain (10.123.3.1): 56 data bytes
64 bytes from 10.123.3.1
```
2023-07-31 12:37:59 -07:00
fb6af1971b Fix network DNS on macOS
It stopped working for ipv4 only networks in Monterey.
See #1696

We add some config like so to System Configuration

```
scutil
show State:/Network/Service/9bee8941b5xxxxxx/IPv4
<dictionary> {
  Addresses : <array> {
    0 : 10.2.1.36
  }
  InterfaceName : feth4823
  Router : 10.2.1.36
  ServerAddress : 127.0.0.1
}

```
2023-07-27 14:26:36 -07:00
41f9bdc5db Update build.sh (#2068)
fix mkwork compilation errors
2023-07-27 12:43:31 -04:00
12e64aa191 fix docker tag for controllers (#2066) 2023-07-20 16:22:03 -07:00
22ab673480 Apply default route a different way - macOS
The original way we applied default route, by forking
0.0.0.0/0 into 0/1 and 128/1 works, but if mac os has any networking
hiccups -if you change SSIDs or sleep/wake- macos erases the system default route.
And then all networking on the computer is broken.

to summarize the new way:
allowDefault=1
```
sudo route delete default 192.168.82.1
sudo route add default 10.2.0.2
sudo route add -ifscope en1 default 192.168.82.1
```

gives us this routing table
```
Destination        Gateway            RT_IFA             Flags        Refs      Use    Mtu          Netif Expire    rtt(ms) rttvar(ms)
default            10.2.0.2           10.2.0.18          UGScg          90        1   2800       feth4823
default            192.168.82.1       192.168.82.217     UGScIg
```

allowDefault=0
```
sudo route delete default
sudo route delete -ifscope en1 default
sudo route add default 192.168.82.1
```

Notice the I flag, for -ifscope, on the physical default route.

route change does not seem to work reliably.
2023-07-20 13:37:05 -07:00
03841dcb81 fix warning: 'OS_STRING' macro redefined [-Wmacro-redefined] (#2064)
Even though this is in ext, these particular chunks of code were added
by us, so are ok to modify.
2023-07-20 11:38:08 -04:00
64c2634b71 suppress warnings: comparison of integers of different signs: 'int64_t' (aka 'long') and 'uint64_t' (aka 'unsigned long') [-Wsign-compare] (#2063) 2023-07-20 11:37:50 -04:00
f1019dc4ee Implement recvmmsg() for Linux to reduce syscalls. (#2046)
Between 5% and 40% speed improvement on Linux, depending on system configuration and load.
2023-07-20 11:36:37 -04:00
50ede37a58 remove ZT_NO_METRIC ifdef 2023-07-19 13:42:49 -07:00
60ddca1354 Adjust tcp-proxy makefile to support metrics
There's no way to get the metrics yet. Someone will
have to add the http service.
2023-07-19 13:42:49 -07:00
19f1f02d91 tcp-proxy: fix build 2023-07-19 13:42:49 -07:00
5a36b315a3 Exit if loading an invalid identity from disk (#2058)
* Exit if loading an invalid identity from disk

Previously, if an invalid identity was loaded from disk, ZeroTier would
generate a new identity & chug along and generate a brand new identity
as if nothing happened.  When running in containers, this introduces the
possibility for key matter loss; especially when running in containers
where the identity files are mounted in the container read only.  In
this case, ZT will continue chugging along with a brand new identity
with no possibility of recovering the private key.

ZeroTier should exit upon loading of invalid identity.public/identity.secret #2056

* add validation test for #2056
2023-07-18 14:10:31 -04:00
b67cd2cf7a less drone (#2060) 2023-07-18 10:57:38 +02:00
97492eec7c Fix ifdef that breaks libzt on iOS (#2050) 2023-07-17 16:49:58 -07:00
fdc2e0f692 Release memory previously allocated by UPNP_GetValidIGD 2023-07-13 16:34:14 -07:00
2672d037a8 ARM64 Support for TapDriver6 (#1949) 2023-07-13 16:52:06 -04:00
ee663d61cd Add warning to cli for allow default on FreeBSD
It doesn't work.
Not possible to fix with deficient network
stack and APIs.

ZeroTierOne-freebsd # zerotier-cli set 9bee8941b5xxxxxx allowDefault=1
400 set Allow Default does not work properly on FreeBSD. See #580
root@freebsd13-a:~/ZeroTierOne-freebsd # zerotier-cli get 9bee8941b5xxxxxx allowDefault
1
2023-07-13 13:20:22 -07:00