High performance policy routed IPsec mesh SD-WAN

15 points by ysun


tuxes

I'm pretty dissatisfied with all the mesh VPNs options, and am closer to "no mesh; only IPv6 and workload mTLS" than adopting a new mesh, but I'm keen to learn more.

Common mesh VPN and SD-WAN tools (Tailscale, NetBird, ZeroTier, Nebula, etc.) admit only nodes that run their own agent, and ranet3 runs beside them on the same host.

From this I infer your project is some sort of alternative to the various mesh VPNs, which is helpful to orient my understanding. I'm not that familiar with much of this, so my questions probably make no sense.

Babel measures the round trip of every link and routes through a relay whenever the direct link is slower.

In a typical mesh VPN, when might it be faster to route via another node, than to go direct?

A policy on source and destination prefix sends traffic through chosen waypoints and out at a chosen exit. Segment routing is implemented in userspace and works even on macOS, whose XNU kernel has no support for it.

In a typical mesh VPN, when might I want a policy to route via a chosen waypoint?

For the "chosen exit" case, is this similar to Tailscale exit nodes?

More generally, what are the limitations of this, compared to typical mesh VPNs?

I suppose it doesn't do NAT punching, but instead unreachable nodes (such as your MacBook) are meant to reach out to your reachable nodes, and this architecture will find the best path? (Best being policy or lowest RTT).

Is it end-to-end encrypted? i.e. If traffic from node A to node B is routed via a waypoint W, does W see the original packet, or the encrypted packet?

Where does addressing fit here? A typical mesh VPN gives nodes their own address, on a "flat" (?) network.

IIUC, ranet is "bring your own addressing"? Your page mentions you run two ASs on this, so "bring your own addressing" is a feature, I suppose?

If I don't have an AS (but I do have an ISP or VPS that gives me a /56) what might a typical way be to allocate an address or prefix to my laptop? Static routing?

If I travel internationally and want to avoid round trips to my home when accessing my mesh nodes, how might I do that? Is this the "faster to route via another node, than to go direct" case?

ysun

btw this is already running on all my machines (including a macbook), and i've configured all of them to have routable public ip addresses ;)

especially for the mac, my ISP is SFR (over coaxial connection) with only dynamic ipv4, i can use this to get stable v4/v6 addresses very easily for all my devices behind the router

ios/android app soon^{TM}