Repository navigation
lib: remove the IPIP/ESP tunnel peer path - #22
Merged
Merged
Conversation
Mac static-IP hosts reach vprox through the TLS+yamux relay, so the /connect-ipip control-plane endpoint, the per-peer IPIP interfaces and xfrm ESP state, the housekeeping sweep, the kernel restore on startup and the IPIP MSS clamping rules have no clients. WireGuard peers and the relay are unaffected. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
shreyas-blacksmith
marked this pull request as ready for review
September 28, 2026 14:41
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 92cf1b9. Configure here.
Deploys leave the kernel dataplane in place, so a host upgraded from a release that ran the IPIP/ESP tunnel path still carries its vp<index>-* tunnels, their /32 host routes, per-tunnel FORWARD filters, MSS clamps and ESP SAs/policies. A leftover /32 outranks WireGuard's connected prefix for the same inner IP, so a WireGuard peer later allocated that address would have its return traffic blackholed into the dead tunnel. Remove all of it once at startup and fail readiness if that is not possible. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
bruce-y
approved these changes
Sep 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.

Summary
Mac static-IP hosts now reach vprox through the TLS+yamux relay (#21). Nothing calls
/connect-ipipany more, so this drops the whole kernel tunnel peer path: the handler,ipipPeerstate underipipMu, per-peer IPIP links + xfrm ESP SAs/policies, the housekeeping sweep,RestoreIpipFromKernelon startup, the IPIP MSS clamp rules, anddocs/ESP_OPERATIONS.md.flowchart LR subgraph before [Before] direction TB a1[Mac gif+IPsec] -->|/connect-ipip| a2[ipip link + xfrm SA] --> a3[NAT to static IP] b1[Linux wg] -->|/connect| b2[WireGuard peer] --> a3 end subgraph after [After] direction TB c1[Mac egress proxy] -->|TLS+yamux relay :9443| c3[dial bound to static IP] d1[Linux wg] -->|/connect| d2[WireGuard peer] --> d3[NAT to static IP] end before ~~~ afterWhat stays:
/connect+ WireGuard peers, the iptables rules they need, and the relay.ServerManager.Startstill leaves WireGuard and iptables in place across restarts; only the IPIP restore step is gone.Companion: the fa Ansible
setup_vprox_server.yamlstill installs the proto-4/ESP accept rules fromipip_client_cidrs; those go with the fa proxy-only stack.-3526 / +15 lines.
go build ./... && go vet ./... && go test ./...green.Link to Devin session: https://app.devin.ai/sessions/3732a5e335164324a71ec27bf19595aa
Open in Devin Desktop: https://app.devin.ai/desktop/session/3732a5e335164324a71ec27bf19595aa?variant=devin
Requested by: @shreyas-blacksmith
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled. (Staging)Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.