mirror of
https://github.com/juanfont/headscale.git
synced 2026-07-20 18:09:29 +00:00
When a node carries the disable-ipv4 nodeAttr documented at https://tailscale.com/docs/reference/troubleshooting/network-configuration/cgnat-conflicts, SaaS stops sending the node's CGNAT IPv4 prefix in MapResponse. The allocator keeps assigning IPv4 server-side; only the wire-shape delivery is filtered. Subnet routes the node advertises -- including IPv4 prefixes -- survive in AllowedIPs and PrimaryRoutes. TailNode now drops Is4 prefixes from Addresses and from the node's own /32 slot in AllowedIPs when selfPolicyCaps carries disable-ipv4. Mapper.buildTailPeers passes each peer's policy CapMap so the filter applies in viewer netmaps too; the CapMap merge that follows is overwritten by PeerCapMap so only the address filter survives on the peer path. Two captures land in testdata/nodeattrs_results to anchor the behaviour: - nodeattrs-attr-c15-disable-ipv4 (on tag:client) - nodeattrs-attr-c16-disable-ipv4-router (on tag:router, which advertises 10.33.0.0/16, confirming subnet routes survive) |
||
|---|---|---|
| .. | ||
| change | ||
| testcapture | ||
| testdata | ||
| api_key.go | ||
| common.go | ||
| common_test.go | ||
| config.go | ||
| config_test.go | ||
| const.go | ||
| debug_routes.go | ||
| main_test.go | ||
| node.go | ||
| node_benchmark_test.go | ||
| node_tags_test.go | ||
| node_test.go | ||
| policy.go | ||
| preauth_key.go | ||
| preauth_key_test.go | ||
| registration.go | ||
| routes.go | ||
| testlog.go | ||
| types_clone.go | ||
| types_view.go | ||
| users.go | ||
| users_test.go | ||
| version.go | ||