stable/9 preferring IPv4 over IPv6, what changed?

Ulrich Spörlein uqs at spoerlein.net
Mon Dec 12 18:58:32 UTC 2011


On Sun, 2011-12-11 at 23:52:33 +0100, Dimitry Andric wrote:
> On 2011-12-11 23:33, Ulrich Spörlein wrote:
> > long story short: telnet foo on stable/8 will first try connecting via
> > IPv6, then via IPv4 (foo has A and AAAA records). On stable/9 it's the
> > other way round.
> > 
> > This trips up my setup, where a bunch of hosts (some behind NAT) can all
> > talk to each other over their IPv6 addresses (some are tunneled), but
> > cannot do so via IPv4.
> > 
> > Is this due to changes in bind or the resolver?
> 
> Most likely due to changes in the IPv6 startup scripts and rc.conf
> settings.  The behaviour seems to be determined by multiple settings in
> rc.conf, first of all:
> 
>   ip6addrctl_policy={ipv4_prefer|ipv6_prefer|AUTO}
> 
> where the default value is AUTO.  Values of ipv4_prefer and ipv6_prefer
> do what you expect them to.
> 
> In case of AUTO, and if you don't have /etc/ip6addrctl.conf with
> explicit settings, /etc/rc.d/ip6addrctl checks the value of
> ipv6_activate_all_interfaces.  If it is YES, IPv6 is preferred, if it is
> NO or unset, IPv4 is preferred.
> 
> What are your IPv6-related settings in rc.conf?

Well, I had ipv6_enable set from the stable/8 days. The warnings and the
code make me believe it should behave as if ipv6_activate_all_interfaces
was set, somehow that's not the case, though.

I've now set ip6addrctl_policy and everything is back working again.
Thanks!

Uli


More information about the freebsd-stable mailing list