mirror of
https://github.com/tailscale/tailscale.git
synced 2026-06-11 21:02:39 +08:00
When a tsnet.Server dials its own Tailscale IP, TCP SYN packets are silently dropped. In inject(), outbound packets with dst=self fail the shouldSendToHost check and fall through to WireGuard, which has no peer for the node's own address. Fix this by detecting self-addressed packets in inject() using isLocalIP and delivering them back into gVisor's network stack as inbound packets via a new DeliverLoopback method on linkEndpoint. The outbound packet must be re-serialized into a new PacketBuffer because outbound packets have their headers parsed into separate views, but DeliverNetworkPacket expects raw unparsed data. Updates #18829 Signed-off-by: James Tucker <james@tailscale.com> |
||
|---|---|---|
| .. | ||
| gro | ||
| link_endpoint.go | ||
| netstack_linux.go | ||
| netstack_tcpbuf_default.go | ||
| netstack_tcpbuf_ios.go | ||
| netstack_test.go | ||
| netstack_userping_apple.go | ||
| netstack_userping_test.go | ||
| netstack_userping.go | ||
| netstack.go | ||