On Tue, Aug 26, 2014 at 11:31 PM, Jonathan Price <free...@jonathanprice.org>
wrote:

> On 2014-08-27 01:40, Peter Wemm wrote:
>
>> On Tuesday 26 August 2014 10:40:27 free...@jonathanprice.org wrote:
>>
>>> Hello,
>>>
>>> I am configuring a server with IPv4 and IPv6 addresses and have noticed
>>> that
>>> FreeBSD seems to be preferring IPv4, such as when establishing SSH
>>> connections.
>>>
>>> After reading through /etc/defaults/rc.conf, and later
>>> /etc/rc.d/ip6addrctl
>>> I have come to the conclusion that I have two ways to tell FreeBSD to
>>> prefer IPv6:
>>>
>>> 1) Add ipv6_activate_all_interfaces to /etc/rc.conf
>>> 2) Add ip6addrctl_policy="ipv6_prefer" to /etc/rc.conf
>>>
>>> Could anybody with a little more knowledge on the matter explain to me
>>> which
>>> of the two options is more preferential?
>>>
>>
>> They both do different things.
>>
>> The activate knob is to enable ipv6 on an interface.  To oversimplify it,
>> if
>> you configure an address on an interface, it is "enabled".  However, this
>> switch enables this on all the rest of the interfaces, even the ones you
>> didn't configure.
>>
>> ip6addrctl* affects things like hostname lookups to sort the addresses
>> returned
>> to the caller.
>>
>> They are different things entirely.  I think you are expecting the
>> behavior
>> that ip6_prefer policy gives you.  That's what we use in the freebsd.org
>> cluster to have it use ipv6 where possible.
>>
>>
> Hi, and thanks for the response.
>
> Would it be possible to go into a little detail as to what
> ipv6_activate_all_interfaces="YES" does to interfaces which don't
> explicitly have an address configured? I can't appear to find much
> information on this option.
>
> However, it does sound like for my purposes it would make more sense to
> use ip6addrctl_policy="ipv6_prefer" as that is more explicitly the
> feature I want, rather than getting it inadvertently through the other knob.
>
> As to Kevin's question, I have working IPv6 connectivity both with and
> without the knobs in mention, it's just that certain applications which can
> use both IPv4 and IPv6 (such as SSH), won't use IPv6 unless explicitly told
> to (with -6 in this example), or one of the above tunables is used


While doubting Peter's networking answers is usually foolish, I think this
one is at least a bit misleading. As he says,
ipv6_activate_all_interfaces="YES" will set all interfaces on the system to
-ifdisable which, since it is an IPv6 option, will enable IPv6 on all
interfaces. NO will disable IPv6 on all interfaces.

But it is related to ipaddrctl_policy as it will set ipaddrctl_policy to
"ipv6_prefer" if no explicit setting overrides it.

So IPv6 is working, and "ssh -6" does use IPv6.  I'd still like to see the
output of ip6addrctl. It should look like:
       ::1/128          50      0
        ::/0             40      1
        ::ffff:0:0/96    35      4
        2002::/16        30      2
        2001::/32         5      5
        fc00::/7          3     13
        ::/96             1      3
        fec0::/10         1     11
        3ffe::/16         1     12

For more explanation, look at /etc/rc.d/ip6addrctl and /etc/network.subr.

The list of prefixes set by it should match what I list above. If
'ipv6_activate_all_interfaces="NO"', or ipaddrctl_policy="ipv4_prefer",
you should get:
        ::1/128          50      0
        ::/0             40      1
        ::ffff:0:0/96   100      4
        2002::/16        30      2
        2001::/32         5      5
        fc00::/7          3     13
        ::/96             1      3
        fec0::/10         1     11
        3ffe::/16         1     12

Any other output indicates manual setting of the policy. the "magic" is the
precedence of ::ffff:0:0/96 which is an odd way of saying IPv4.
I generally recommend ipv6_activate_all.

Now I fear Peter will explain how I have misread the code.
--
R. Kevin Oberman, Network Engineer, Retired
E-mail: rkober...@gmail.com
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to