Fix: Derive the exclude_rt from the preferred route #649
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Every exclude_rt was derived from the system's default route (
ip route show default
). This causes the communication to the controllers and edge routers to use the default gateway even if the system had a more preferred route for those destinations. In the worst case, the destination is unreachable from the default route, causing loss of communications.This fix addresses this behavior by looking up the system's preferred route for the destination and then deriving the exclude_rt from that route.
A secondary benefit of this approach is that the
ziti-edge-tunnel
can use indirect underlays such asSpeedify
orTailscale
to communicate with the controllers and edge routers. One of the benefits of indirect underlays is increasing the likelihood communications passing firewalls and hard NATs.