[Bug 247700] rtadvd: fails to generate error when iface lacks a link-local address

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Thu Jul 2 00:18:04 UTC 2020


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=247700

            Bug ID: 247700
           Summary: rtadvd: fails to generate error when iface lacks a
                    link-local address
           Product: Base System
           Version: 12.1-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: standards
          Assignee: standards at FreeBSD.org
          Reporter: john at saltant.com

Scenario
========

rtadvd is configured on an interface that has a globally unique address (GUA)
and does not have a link-local address (LLA).

Expected behavior
=================

rtadvd emits an error and does not send Router Advertisement (RA) messages on
the interface.

Observed behavior
=================

rtadvd sends RAs that are invalid per the specification [0], using a GUA source
with an LLA destination. The kernel on a receiving node correctly identifies
these as invalid and ignores them.

[0] https://tools.ietf.org/html/rfc4861#section-4.2

Analysis
========

rtadvd does not validate the configuration of each interface. It relies on the
source address selection algorithm in the kernel. That is a reasonable design.
The steps the algorithms performs to exclude source address candidates with
scopes that are incompatible with the destination address appear to neglect
this case. Therefore, this is probably not a bug in rtadvd, but in the source
address selection algorithm.

That is, if an interface has a globally unique address (GUA) and no link-local
address (LLA), and the destination is an LLA via that interface, then the
kernel will erroneously select the GUA as the source address. However, I have
not yet found a way to reproduce this behavior other than in the scenario
above.

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


More information about the freebsd-standards mailing list