[Bug 261129] IPv6 default route vanishes with rtadvd/rtsold

From: <bugzilla-noreply_at_freebsd.org>
Date: Sun, 12 Jun 2022 17:33:10 UTC

Marek Zarychta <zarychtam@plan-b.pwste.edu.pl> changed:

           What    |Removed                     |Added
                 CC|                            |net@FreeBSD.org,
                   |                            |zarychtam@plan-b.pwste.edu.
                   |                            |pl

--- Comment #12 from Marek Zarychta <zarychtam@plan-b.pwste.edu.pl> ---
I am also hitting this on two hosts with statically configured IPv6 addresses
and routes, but the setup is more complex here. 

I am using two different subnets:
1) 2a02:a:b:c::x:y/64 - the subnet with default route.
2) 2001:470:x:y::v:z/64 - fib 1 subnet assigned from still working IPv6 tunnel
to HE.

First of the machines is an endpoint for HE tunnel and acts as a router for
this  2001:470:x:y::v:z/64 tunneled subnet, but main NIC address is set from
ISP assigned pool:

awg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        inet6 2a02:a:b:c::x:y prefixlen 64 prefer_source #(basic assignment,
prefer_source fixes connectivity via default gw)
        inet6 2001:470:x:y::1 prefixlen 64  #(alias 1)
        inet6 2001:470:x:y::x:z prefixlen 128 #(alias 2)
        inet6 2a02:a:b:c::x:z  prefixlen 128 #(alias 2)
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

Default gateways:
1. fib 0:
# netstat -rn6 | grep default
default     2001:470:x:y::1    UGS        awg0
2. fib 1:
# netstat -rn6 -F 1 | grep default
default  2001:470:1:c84::16    UGS        gif0

The second machine is a host in LAN with IPv6 only jails and also has both
subnets enabled plus some aliased IPv6 addresses set like above.

Initially, everything works, but after some time it looks like RA message from
gif(4) tunnel to HE somehow changes the default route in fib 1 which breaks
connectivity. The default route is set to 2001:470:1:x::y. "service routing
restart fixes" this, but with notice: "[nhop_ctl] inet6.0 nhop_free: failed to
unlink nh#8/inet6/awg0/2001:470:1:x::y"

The same happens on the second machine, but events are not in sync with the
first machine. The RAs arrive from different sources, times of the route change
differ, also different gateways are set.

I wonder if could/should the traffic be filtered on gif(4)?
Now I am trying the sysctl setting "net.inet6.ip6.no_radr=1", probably this
could fix the issue.

Any additional clues will be appreciated.

You are receiving this mail because:
You are the assignee for the bug.