← Back to context

Comment by iscoelho

13 hours ago

IPsec is a terrible fit. Tailscale uses a control plane for peer & key distribution and renders almost all of the complexity in the IPsec protocol useless.

(Tailscale cofounder) Many years ago I made a VPN for experimental purposes that kept IPsec’s data plane but abandoned IKE. It’s actually a pretty good arrangement and might be applicable here.

My implementation relied on the extremely finicky Linux kernel IPsec and would never have worked in userspace macOS or windows. But yes, a Tailscale control plane with a per-node switchable data plane, one of which is IPsec with PQC, is a real option that would work.

By locking down the control plane it becomes incompatible with classic IPsec, but also avoids most of the security gotchas that plagued IPsec.

  • > would never have worked in userspace macOS or windows

    It could have worked in macOS! It implements RFC-2367 (PF_KEY socket type) and I even made it work on my laptop.

    I traced the SA database operations on Windows, and it could have been done. Probably. But I abandoned that to preserve my sanity.

  • Yes, I agree, IPsec's complexity is definitely why client implementations are so universally finicky. That complexity is not needed by Tailscale.