Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 Feb 2021 21:45:16 +0000
From:      "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net>
To:        "Doug Hardie" <bc979@lafn.org>
Cc:        net@FreeBSD.org
Subject:   Re: accept_rtadv
Message-ID:  <5DDF778D-4F17-46E8-9B63-81FF9B362639@lists.zabbadoz.net>
In-Reply-To: <BC947075-4292-4C87-902B-DC98B60A548E@lafn.org>
References:  <BC947075-4292-4C87-902B-DC98B60A548E@lafn.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 27 Feb 2021, at 20:34, Doug Hardie wrote:

> 
>> On Feb 27, 2021, at 11:06, Michael Gmelin <freebsd@grem.de> wrote:
>> 
>>
>>
>>> On 27. Feb 2021, at 19:40, Doug Hardie <bc979@lafn.org> wrote:
>>> 
>>>> On 27 February 2021, at 10:34, Michael Gmelin <freebsd@grem.de> 
>>>> wrote:
>>>>
>>>>
>>>>
>>>>> On 27. Feb 2021, at 19:21, Doug Hardie <bc979@lafn.org> wrote:
>>>>>
>>>>> 
>>>>>>> On 27 February 2021, at 04:37, Michael Gmelin <freebsd@grem.de> 
>>>>>>> wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> On 27. Feb 2021, at 08:21, Doug Hardie <bc979@lafn.org> wrote:
>>>>>>>
>>>>>>> From the Handbook:
>>>>>>>
>>>>>>> 32.9.2. Configuring IPv6
>>>>>>> To configure a FreeBSD system as an IPv6 client, add these two 
>>>>>>> lines to rc.conf:
>>>>>>>
>>>>>>> ifconfig_rl0_ipv6="inet6 accept_rtadv"
>>>>>>> rtsold_enable="YES"
>>>>>>>
>>>>>>> This does not work.  I have in rc.conf:
>>>>>>>
>>>>>>> ifconfig_bge0_ipv6="inet6 accept_rtadv"
>>>>>>> ifconfig_ue0_ipv6="inet6 accept_rtadv"
>>>>>>> ifconfig_ue1_ipv6="inet6 accept_rtadv"
>>>>>>>
>>>>>>> On all three interfaces, ifconfig shows:
>>>>>>> nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
>>>>>>>
>>>>>>> ACCEPT_RTADV is not listed and sure enough router advertisements 
>>>>>>> are ignored.  I have to manually enter:
>>>>>>> ifconfig bge0 ipv6 accept_rtadv
>>>>>>> for each interface.  Then ifconfig shows:
>>>>>>>
>>>>>>> nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
>>>>>>>
>>>>>>> and the interface now accepts router advertisements.  This is a 
>>>>>>> bug, but I don't kn
>>>>>>> ow if it's in the code or the handbook.
>>>>>>
>>>>>> I just tried here on 12.2-p4 with em0 and it worked as expected. 
>>>>>> I do have ipv4 configured on that interface too though.
>>>>>>
>>>>>> Do you have anything else in your rc.conf (especially any other 
>>>>>> ifconfig lines)?
>>>>>>
>>>>>> If not, could you try adding
>>>>>>
>>>>>> ifconfig_bge0="up"
>>>>>> etc.
>>>>>
>>>>> ### IPv6 Setup ###
>>>>
>>>> Well, here you set "ifconfig_bge0_ipv6" to one value
>>>>
>>>>> ifconfig_bge0_ipv6="inet6 accept_rtadv"
>>>>
>>>> And there you overwrite it with a new value
>>>>
>>>>> ifconfig_bge0_ipv6="inet6 fec2::210 prefixlen 64"
>>>>
>>>> Therefore, the first line has no effect at all.
>>>>
>>>> You can double check this by calling
>>>>
>>>>  sysrc ifconfig_bge0_ipv6
>>>>
>>>> Setting all things in one config setting might work (haven’t 
>>>> tried it myself), like in
>>>>
>>>>  ifconfig_bge0_ipv6="inet6 fec2::210 prefixlen 64 accept_rtadv"
>>>>
>>>> -m
>>>>
>>>>>
>>>>> ipv6_static_routes="lan1 lan2"
>>>>> ipv6_route_lan1="fec1:: -prefixlen 64 fec2::205"
>>>>> ipv6_route_lan2="fec2:: -prefixlen 64 fec2::205"
>>>>>
>>>>> That is all associated with IPv6.  IPv4 is configured and used.
>>>>>
>>>>> -- Doug
>>>
>>> You are supposed to be able to sent multiple IP addresses on an 
>>> interface and that generally works.  From the handbook, I get that 
>>> the "ifconfig_rl0_ipv6="inet6 accept_rtadv" line causes the default 
>>> link-local addresses to be configured and should set accept_rtadv.  
>>> The other lines should just add additional IP addresses.  Logically, 
>>> adding the accept_rtadv in each seems a bit much.  Although, that is 
>>> the way it worked in FreeBSD 9.  That was documented in the handbook 
>>> at that time.  Adding additional IP addresses should not clear any 
>>> of the interface flags unless included in the command.
>>>
>>
>> rc.conf is key value in general, the format is
>>
>>   key=value1
>>
>> If you write further done in the file
>>
>>   key=differentvalue
>>
>> the value of key will be "differentvalue", like the first line never 
>> existed. (This is unrelated to IPv6 or router advertisements, just 
>> the basic principle of rc.conf).
>>
>> One way I used to configure things like that in the past was using 
>> one ifconfig_<interface>_ipv6 line to set flags etc and then use 
>> ifconfig_<interface>_aliases to set ip addresses.
>>
>> Something like
>>
>>   ifconfig_bge0_ipv6="inet6 accept_rtadv"
>>   ifconfig_bge0_aliases="inet6 fec2::210 prefixlen 64"
>>
>> (I haven’t tried this, as I’m afk and typed it on the phone, 
>> which is a bit of a pita, and from the top of my head,so you would 
>> have to try/verify yourself).
>>
>> -m
>
> Ahh.  The handbook is needing a note about that.  There should be 
> something similar to what was done for IPv4 where it shows adding 
> additional addresses using:
>
> Ifconfig_bge0_alias0 ...
> Ifconfig_bge0_alias1 ...
>
> That would be very helpful.  Thanks for the explinations.


aliases are address family independent;  you write =“inet 
192.0.2.17/24”  or =“inet6 2001:db8::2:17/64” as you wish.

/bz



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5DDF778D-4F17-46E8-9B63-81FF9B362639>