travis laduke
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
travis laduke
e2dad367b4
Don't re-apply routes on BSD
...
See issue #1986
2023-05-17 14:41:59 -07:00
travis laduke
a6742b7f82
Prevent shadowing VM routes as default route (macOS)
...
If you have a VM host like parallels, sometimes you get these link-local
default routes:
```
netstat -nrfinet | grep "default\|\/1"
0/1 10.2.0.12 UGScg feth4823
default 192.168.82.1 UGScg en1
0/1 192.168.82.1 UGScIg en1
default link#22 UCSIg bridge101 !
128.0/1 10.2.0.12 UGSc feth4823
128.0/1 192.168.82.1 UGScI en1
```
(the link#22 one)
The _getRTEs function inclused these routes in the list it makes as like:
device: bridge101, target: 0.0.0.0/0
If it happens to be first in the list, bridge101 gets
selected as the default route.
Then Full Tunnel Mode doesn't work.
The other routes in the list are like:
device: en1 target: 192.168.1.0/24 via: metric: 0 ifscope: 0
device: en1 target: 192.168.1.1/32 via: metric: 0 ifscope: 0
We only need the device name from this, so either one will work.
2022-12-23 16:18:00 -08:00
Sean OMeara
10170b41c3
Revert "Improve default route on macOS ( #1680 )"
...
This reverts commit 117d7194af
.
2022-12-13 18:32:07 +01:00
Travis LaDuke
117d7194af
Improve default route on macOS ( #1680 )
...
re: issue #1088
and probably: https://discuss.zerotier.com/t/default-route-issue-osx-monterey-m1/6974
// current zerotier.
// allow default adds two sets of routes.
```
netstat -rnfinet | grep "/1\|default" | sort
0/1 10.2.0.2 UGScg feth4823
0/1 192.168.82.1 UGScIg en7
128.0/1 10.2.0.2 UGSc feth4823
128.0/1 192.168.82.1 UGScI en7
default 192.168.82.1 UGScg en7
```
Then, something chaotic happens eventually, and networking stops working.
// after patch
```
netstat -rnfinet | grep "/1\|default" | sort
0/1 10.2.0.2 UGScg feth4823
128.0/1 10.2.0.2 UGSc feth4823
default 192.168.82.1 UGScg en7
```
After the change, I can still:
- use default route
- route to other subnets
I tested on high sierra through monterey
and on freebsd13.1
2022-12-13 11:52:21 +01:00
Travis LaDuke
fa25b45198
Keep interface name on via routes on linux
...
See issue #1498
2022-01-07 11:58:42 -08:00
staphen
1c956494a4
Use lowercase when including Windows headers
2021-12-29 16:29:08 -05:00
Adam Ierymenko
fabfb10b97
Remove managed routes in destructor (regression fix).
2021-11-15 19:48:07 -05:00
Adam Ierymenko
594853e251
Remove deprecated vfork call on Mac, and make Mac route application more robust.
2021-10-26 22:15:06 -04:00
Adam Ierymenko
d2c3ea6901
Another route fix on BSD.
2021-09-15 13:31:18 -04:00
Adam Ierymenko
6bb1598fa3
Another fix for routing and interface issues on MacOS
2021-09-15 11:50:54 -04:00
Adam Ierymenko
1b8917a57c
Fix for MacOS interface setup and config timing bugs.
2021-09-09 09:30:48 -04:00
Adam Ierymenko
d1c88971ae
Possible Mac route borking fix.
2021-09-02 15:23:26 -04:00
Dave Cottlehuber
b37e9de24d
BSD: add debug fprintfs for external commands
2021-04-15 06:37:01 +00:00
Adam Ierymenko
250f0ef9db
Remove dead code.
2020-11-16 13:51:27 -05:00
Adam Ierymenko
4aab9121d9
Linux build fixes, and new route code seems to work.
2020-11-13 22:25:12 -05:00
Adam Ierymenko
5ea7ef6b65
Rework Linux route setting to actually consult netlink interface.
2020-11-13 22:06:58 -05:00
Adam Ierymenko
e8be28734b
Linux netlink and route setting... work in progress.
2020-11-13 19:07:54 -05:00
Adam Ierymenko
6c5a097711
Use LinuxNetLink for routes on Linux... still needs testing/debugging on an actual Linux machine.
2020-11-13 18:16:14 -05:00
Adam Ierymenko
52679d2784
Simplify and fix managed route logic.
2020-11-02 19:02:07 -05:00
Adam Ierymenko
06730c7d1d
BSL date bump
2020-08-20 12:51:39 -07:00
Adam Ierymenko
52a166a71f
Relicense: GPLv3 -> ZeroTier BSL 1.1
2019-08-23 09:23:39 -07:00
Joseph Henry
0e597191b8
Updated licenses for 2019
2019-01-14 10:25:53 -08:00
Joseph Henry
e01c0adff2
Added ifdef checks to omit some ManagedRoute code in SDK builds
2018-08-01 17:17:04 -07:00
Adam Ierymenko
fa7e7fc6f9
Revert fix for GitHub issue #600 because it causes route objects to build up forever (at least on Mac). Bleh. #600 is a rare issue and will need some other fix after reliable duplication.
2018-07-20 15:53:19 -07:00
Joseph Henry
2e1bc6e500
Cleaned up old code for attempted fix for ticket #600
2018-01-09 09:59:55 -08:00
Adam Ierymenko
65c07afe05
Copyright updates for 2018.
2018-01-08 14:33:28 -08:00
Joseph Henry
f7b3ffe8a0
Commented out block which ignores added routes if there already exists an IP in the route's range. Attempted fix for #600
2018-01-05 17:10:59 -08:00
Joseph Henry
a9c4ce38f0
eh
2017-12-18 15:07:58 -08:00
Joseph Henry
bbc39d7648
Restore managed ZT routes that are deleted or otherwise mangled locally (Attempted fix for ticket #600 )
2017-12-18 15:05:19 -08:00
Adam Ierymenko
6fc70f7c16
More cleanup, Linux build fixes.
2017-07-07 06:50:40 -07:00
Adam Ierymenko
d2415dee00
Cleanup.
2017-07-06 16:11:11 -07:00
Adam Ierymenko
1b68d6dbdc
License header update.
2017-04-27 20:47:25 -07:00
Adam Ierymenko
e700165eba
GitHub issue #465 - Windows route amnesia
2017-04-21 13:26:02 -07:00
Adam Ierymenko
f9ae5938d0
Makefile fix, only bifurcate routes for default, and release notes.
2017-04-20 10:08:46 -07:00
Adam Ierymenko
2fc3d12fb6
Minor tweaks to member code in controller, and fix Linux build.
2016-09-29 14:48:39 -07:00
Adam Ierymenko
24fce0be86
No, definitely have to back out GitHub issue #385 (non-bisected routes) since this breaks IPv6 on OSX and probably IPv4 too if you were to encounter a 6-only situation.
2016-09-14 22:23:56 -07:00
Adam Ierymenko
8d0b2b781e
Route management bug fixes.
2016-09-13 16:25:48 -07:00
Adam Ierymenko
5b6d27e659
Implement relay policy, and setting multicast limit to 0 now disables multicast on the network as would be expected.
2016-09-13 14:27:18 -07:00
Adam Ierymenko
ced8dfc639
Try a version of GitHub issue #385 (non-bifurcated default if not present) on Mac. This version adds the bifurcated routes always but also adds a device-specific non-bifurcated route. Will have to see if this still interferes with OSX route settings, since by definition device specific routes should not conflict with general routes.
2016-09-13 11:07:59 -07:00
Adam Ierymenko
34b146f28b
Back out of GitHub issue #385 for now and maybe for this release. Would be nice but it is non-critical and rules are the priority. Current implementation bangs heads with OSX route assignment on WiFi join, etc.
2016-09-12 14:56:18 -07:00
Adam Ierymenko
fb46a546db
Just always do route bifurcation on Linux for now... basically the old behavior.
2016-09-09 12:53:44 -07:00
Adam Ierymenko
d23ade879b
Do not bifurcate if not replacing an existing route. (Still need to tie up Linux and Windows.)
2016-09-08 15:42:46 -07:00
Adam Ierymenko
ebe7e15475
sys/sysctl.h is required on OSX and probably other BSD
2016-07-21 19:21:51 -07:00
Adam Ierymenko
095aef5f30
Merge pull request #348 from the-maldridge/remove-sysctl
...
Remove explicit sys/sysctl.h includes
2016-07-21 15:16:22 -07:00
Adam Ierymenko
23391ff9da
More OSX IPv6 fixes.
2016-07-12 09:22:04 -07:00
Adam Ierymenko
3f2b21ce71
Do not shadow our own route twice on Mac if there is no default route. (Fix for issue found during IPv6 default route override testing.)
2016-07-12 08:55:57 -07:00
Michael Aldridge
1a89694980
Remove explicit sys/sysctl.h includes
...
Explicitly including sys/sysctl.h breaks the ability to build
against muslc.
2016-07-06 02:38:23 -05:00
Adam Ierymenko
e2ca239be0
Comment cleanup.
2016-06-21 14:38:15 -07:00
Adam Ierymenko
4f237687ce
Route management now works on Windows, including default route override! 1.1.6 very close!
2016-06-21 13:54:03 -07:00