Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 Feb 2021 12:34:56 -0800
From:      Doug Hardie <bc979@lafn.org>
To:        net@FreeBSD.org
Subject:   Re: accept_rtadv
Message-ID:  <BC947075-4292-4C87-902B-DC98B60A548E@lafn.org>

next in thread | raw e-mail | index | archive | help
=EF=BB=BF
> On Feb 27, 2021, at 11:06, Michael Gmelin <freebsd@grem.de> wrote:
> =EF=BB=BF
>=20
>=20
>> On 27. Feb 2021, at 19:40, Doug Hardie <bc979@lafn.org> wrote:
>> =EF=BB=BF
>>> On 27 February 2021, at 10:34, Michael Gmelin <freebsd@grem.de> wrote:
>>>=20
>>>=20
>>>=20
>>>> On 27. Feb 2021, at 19:21, Doug Hardie <bc979@lafn.org> wrote:
>>>>=20
>>>> =EF=BB=BF
>>>>>> On 27 February 2021, at 04:37, Michael Gmelin <freebsd@grem.de> wrote=
:
>>>>>>=20
>>>>>>=20
>>>>>>=20
>>>>>>> On 27. Feb 2021, at 08:21, Doug Hardie <bc979@lafn.org> wrote:
>>>>>>=20
>>>>>> =EF=BB=BF=46rom the Handbook:
>>>>>>=20
>>>>>> 32.9.2. Configuring IPv6
>>>>>> To configure a FreeBSD system as an IPv6 client, add these two lines t=
o rc.conf:
>>>>>>=20
>>>>>> ifconfig_rl0_ipv6=3D"inet6 accept_rtadv"
>>>>>> rtsold_enable=3D"YES"
>>>>>>=20
>>>>>> This does not work.  I have in rc.conf:
>>>>>>=20
>>>>>> ifconfig_bge0_ipv6=3D"inet6 accept_rtadv"
>>>>>> ifconfig_ue0_ipv6=3D"inet6 accept_rtadv"
>>>>>> ifconfig_ue1_ipv6=3D"inet6 accept_rtadv"
>>>>>>=20
>>>>>> On all three interfaces, ifconfig shows:
>>>>>> nd6 options=3D21<PERFORMNUD,AUTO_LINKLOCAL>
>>>>>>=20
>>>>>> ACCEPT_RTADV is not listed and sure enough router advertisements are i=
gnored.  I have to manually enter:
>>>>>> ifconfig bge0 ipv6 accept_rtadv
>>>>>> for each interface.  Then ifconfig shows:
>>>>>>=20
>>>>>> nd6 options=3D23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
>>>>>>=20
>>>>>> and the interface now accepts router advertisements.  This is a bug, b=
ut I don't kn
>>>>>> ow if it's in the code or the handbook.
>>>>>=20
>>>>> I just tried here on 12.2-p4 with em0 and it worked as expected. I do h=
ave ipv4 configured on that interface too though.
>>>>>=20
>>>>> Do you have anything else in your rc.conf (especially any other ifconf=
ig lines)?
>>>>>=20
>>>>> If not, could you try adding
>>>>>=20
>>>>> ifconfig_bge0=3D"up"
>>>>> etc.
>>>>=20
>>>> ### IPv6 Setup ###
>>>=20
>>> Well, here you set "ifconfig_bge0_ipv6" to one value
>>>=20
>>>> ifconfig_bge0_ipv6=3D"inet6 accept_rtadv"
>>>=20
>>> And there you overwrite it with a new value=20
>>>=20
>>>> ifconfig_bge0_ipv6=3D"inet6 fec2::210 prefixlen 64"
>>>=20
>>> Therefore, the first line has no effect at all.
>>>=20
>>> You can double check this by calling
>>>=20
>>>  sysrc ifconfig_bge0_ipv6
>>>=20
>>> Setting all things in one config setting might work (haven=E2=80=99t tri=
ed it myself), like in
>>>=20
>>>  ifconfig_bge0_ipv6=3D"inet6 fec2::210 prefixlen 64 accept_rtadv"
>>>=20
>>> -m
>>>=20
>>>>=20
>>>> ipv6_static_routes=3D"lan1 lan2"
>>>> ipv6_route_lan1=3D"fec1:: -prefixlen 64 fec2::205"
>>>> ipv6_route_lan2=3D"fec2:: -prefixlen 64 fec2::205"
>>>>=20
>>>> That is all associated with IPv6.  IPv4 is configured and used.
>>>>=20
>>>> -- Doug
>>=20
>> You are supposed to be able to sent multiple IP addresses on an interface=
 and that generally works.  =46rom the handbook, I get that the "ifconfig_rl=
0_ipv6=3D"inet6 accept_rtadv" line causes the default link-local addresses t=
o be configured and should set accept_rtadv.  The other lines should just ad=
d 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 do=
cumented in the handbook at that time.  Adding additional IP addresses shoul=
d not clear any of the interface flags unless included in the command.
>>=20
>=20
> rc.conf is key value in general, the format is
>=20
>   key=3Dvalue1
>=20
> If you write further done in the file
>=20
>   key=3Ddifferentvalue
>=20
> the value of key will be "differentvalue", like the first line never exist=
ed. (This is unrelated to IPv6 or router advertisements, just the basic prin=
ciple of rc.conf).
>=20
> One way I used to configure things like that in the past was using one ifc=
onfig_<interface>_ipv6 line to set flags etc and then use ifconfig_<interfac=
e>_aliases to set ip addresses.
>=20
> Something like
>=20
>   ifconfig_bge0_ipv6=3D"inet6 accept_rtadv"
>   ifconfig_bge0_aliases=3D"inet6 fec2::210 prefixlen 64"
>=20
> (I haven=E2=80=99t tried this, as I=E2=80=99m afk and typed it on the phon=
e, which is a bit of a pita, and from the top of my head,so you would have t=
o try/verify yourself).
>=20
> -m

Ahh.  The handbook is needing a note about that.  There should be something s=
imilar to what was done for IPv4 where it shows adding additional addresses u=
sing:

Ifconfig_bge0_alias0 ...
Ifconfig_bge0_alias1 ...

That would be very helpful.  Thanks for the explinations.

=E2=80=94 Doug




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BC947075-4292-4C87-902B-DC98B60A548E>