accept_rtadv
Michael Gmelin
freebsd at grem.de
Sun Feb 28 10:22:48 UTC 2021
On Sat, 27 Feb 2021 21:45:16 +0000
"Bjoern A. Zeeb" <bzeeb-lists at lists.zabbadoz.net> wrote:
> On 27 Feb 2021, at 20:34, Doug Hardie wrote:
>
> >
> >> 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.
>
>
> aliases are address family independent; you write =“inet
> 192.0.2.17/24” or =“inet6 2001:db8::2:17/64” as you wish.
Yes, typical example:
ifconfig_em0_name="public"
ifconfig_public="up"
ifconfig_public_ipv6="up"
ifconfig_public_aliases="inet 1.2.3.4/32 inet6 2b01:3e1:123:2001::2/64"
-m
--
Michael Gmelin
More information about the freebsd-net
mailing list