accept_rtadv
Doug Hardie
bc979 at lafn.org
Sat Feb 27 20:41:29 UTC 2021
> On Feb 27, 2021, at 11:06, Michael Gmelin <freebsd at grem.de> wrote:
>
>
>
>> On 27. Feb 2021, at 19:40, Doug Hardie <bc979 at lafn.org> wrote:
>>
>>> On 27 February 2021, at 10:34, Michael Gmelin <freebsd at grem.de> wrote:
>>>
>>>
>>>
>>>> On 27. Feb 2021, at 19:21, Doug Hardie <bc979 at lafn.org> wrote:
>>>>
>>>>
>>>>>> On 27 February 2021, at 04:37, Michael Gmelin <freebsd at grem.de> wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>> On 27. Feb 2021, at 08:21, Doug Hardie <bc979 at 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.
— Doug
More information about the freebsd-net
mailing list