Support disableIPv4 network policy option #300

Closed
opened 2025-12-29 01:26:22 +01:00 by adam · 4 comments
Owner

Originally created by @cwegener on GitHub (Aug 1, 2022).

Feature request

Support the disableIPv4 network policy option in Headscale which "prevents assigning IPv4 addresses to tailscale nodes".

This is required to support nodes which have a local IPv4 underlay network that conflicts with Tailscale's hard-coded 100.64.0.0/10 IPv4 overlay network.

References:

Originally created by @cwegener on GitHub (Aug 1, 2022). **Feature request** Support the `disableIPv4` network policy option in Headscale which "prevents assigning IPv4 addresses to tailscale nodes". This is required to support nodes which have a local IPv4 underlay network that conflicts with Tailscale's hard-coded `100.64.0.0/10` IPv4 overlay network. References: - Tailscale KB: https://tailscale.com/kb/1018/acls/#network-policy-options - Tailscale Issue tracker: https://github.com/tailscale/tailscale/issues/1381
adam added the enhancementneeds investigation labels 2025-12-29 01:26:22 +01:00
adam closed this issue 2025-12-29 01:26:22 +01:00
Author
Owner

@enoperm commented on GitHub (Aug 3, 2022):

Wouldn't just removing the default IPv4 range from the config file do the trick?

@enoperm commented on GitHub (Aug 3, 2022): Wouldn't just removing the default IPv4 range from the config file do the trick?
Author
Owner

@cwegener commented on GitHub (Aug 4, 2022):

Wouldn't just removing the default IPv4 range from the config file do the trick?

No. That simply stops an IPv4 address from being assigned. The iptables v4 rules (and possible other magic) are still getting triggered in the tailscale client, thereby blocking all local LAN traffic to and from 100.64.0.0./10

@cwegener commented on GitHub (Aug 4, 2022): > Wouldn't just removing the default IPv4 range from the config file do the trick? No. That simply stops an IPv4 address from being assigned. The iptables v4 rules (and possible other magic) are still getting triggered in the tailscale client, thereby blocking all local LAN traffic to and from `100.64.0.0./10`
Author
Owner

@restanrm commented on GitHub (Aug 8, 2022):

Wouldn't just removing the default IPv4 range from the config file do the trick?

No. That simply stops an IPv4 address from being assigned. The iptables v4 rules (and possible other magic) are still getting triggered in the tailscale client, thereby blocking all local LAN traffic to and from 100.64.0.0./10

I recently needed something like that and it doesn't work either in official tailscale, the iptables rules were still deployed with this option in the ACL's rules. Maybe there is something to fix on client side (I didn't conduct an investigation and instead used the --netfilter-mode=off option that is usable in my context).

@restanrm commented on GitHub (Aug 8, 2022): > > Wouldn't just removing the default IPv4 range from the config file do the trick? > > No. That simply stops an IPv4 address from being assigned. The iptables v4 rules (and possible other magic) are still getting triggered in the tailscale client, thereby blocking all local LAN traffic to and from `100.64.0.0./10` I recently needed something like that and it doesn't work either in official tailscale, the `iptables` rules were still deployed with this option in the ACL's rules. Maybe there is something to fix on client side (I didn't conduct an investigation and instead used the `--netfilter-mode=off` option that is usable in my context).
Author
Owner

@cwegener commented on GitHub (Aug 10, 2022):

Wouldn't just removing the default IPv4 range from the config file do the trick?

No. That simply stops an IPv4 address from being assigned. The iptables v4 rules (and possible other magic) are still getting triggered in the tailscale client, thereby blocking all local LAN traffic to and from 100.64.0.0./10

I recently needed something like that and it doesn't work either in official tailscale, the iptables rules were still deployed with this option in the ACL's rules. Maybe there is something to fix on client side (I didn't conduct an investigation and instead used the --netfilter-mode=off option that is usable in my context).

Ah. That's a good find!

I never actually tested the disableIPv4 setting in the Tailscale control plane.

I wonder what the disableIPv4 setting actually does in the Tailscale control plane after all. Maybe it is really just the equivalent of removing the default IPv4 allocation subnet from the headscale configuration ...

@cwegener commented on GitHub (Aug 10, 2022): > > > Wouldn't just removing the default IPv4 range from the config file do the trick? > > > > > > No. That simply stops an IPv4 address from being assigned. The iptables v4 rules (and possible other magic) are still getting triggered in the tailscale client, thereby blocking all local LAN traffic to and from `100.64.0.0./10` > > I recently needed something like that and it doesn't work either in official tailscale, the `iptables` rules were still deployed with this option in the ACL's rules. Maybe there is something to fix on client side (I didn't conduct an investigation and instead used the `--netfilter-mode=off` option that is usable in my context). Ah. That's a good find! I never actually tested the `disableIPv4` setting in the Tailscale control plane. I wonder what the `disableIPv4` setting actually does in the Tailscale control plane after all. Maybe it is really just the equivalent of removing the default IPv4 allocation subnet from the headscale configuration ...
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/headscale#300