<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
  <!ENTITY RFC2119 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
  <!ENTITY RFC4861 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4861.xml">
  <!ENTITY RFC6085 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6085.xml">
  <!ENTITY RFC8174 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>

<rfc category="std" 
     docName="draft-linkova-6man-ununra-02" 
     ipr="trust200902"
     updates="4861"
     submissionType="IETF"
     xml:lang="en">

  <front>
    <title abbrev="Unicast Unsolicited RAs">
      Unicast Unsolicited Router Advertisements for Propagating Network Configuration Updates
    </title>

    <author fullname="Jen Linkova" initials="J." surname="Linkova">
      <address>
        <email>furry13@gmail.com</email>
      </address>
    </author>

    <date year="2026" month="July" day="22"/>

    <area>Internet</area>
    <workgroup>IPv6 Maintenance (6MAN)</workgroup>

    <keyword>IPv6</keyword>
    <keyword>Router Advertisement</keyword>
    <keyword>Wi-Fi</keyword>
    <keyword>SLAAC</keyword>
    <keyword>Renumbering</keyword>

    <abstract>
      <t>
        Multicast transmissions on Wi-Fi links are known to be unreliable, making the propagation of critical network configuration changes via multicast Router Advertisements (RAs) prone to failure or severe delay. Existing approaches to improve reliability, such as sending multiple unsolicited multicast RAs, require fine-tuning timers and packet counts that may not fit all deployment scenarios.
      </t>
      <t>
        This document updates RFC 4861 by introducing an optimization: when a router detects a configuration change that must be propagated to hosts, it sends unicast Router Advertisements to every client recently observed on that interface.
      </t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>
        IPv6 Neighbor Discovery (ND) <xref target="RFC4861"/> relies heavily on multicast Router Advertisements (RAs) to convey configuration changes, prefix information, and routing updates to connected hosts. However, on IEEE 802.11 (Wi-Fi) networks, multicast frames are known to be unreliable, especially for battery-powered devices such as mobile phones. 
Such devices often drop incoming multicast packets due to power-saving mechanisms.
As a result, critical network state updates transmitted via Router Advertisements (RAs), such as on-link prefix modifications, are not propagated to hosts in a timely manner.
Operating with stale network configurations leads to degraded connectivity and poor user experience.
      </t>
      <t>
 Mechanisms like <xref target="I-D.ietf-6man-slaac-renum"/> attempt to improve renumbering and configuration update reliability by retransmitting RAs, selecting optimal timer values and transmission counts that suit all network environments remains challenging.
      </t>
      <t>
        This document updates <xref target="RFC4861"/> by allowing routers to send unicast RAs to active and known hosts upon detecting critical configuration updates, significantly improving delivery reliability on lossy multicast media like Wi-Fi.
      </t>
    </section>

    <section title="Requirements Language">
      <t>
        The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.
      </t>
    </section>

    <section title="Problem Statement">
      <t>
        As described in <xref target="I-D.ietf-6man-slaac-renum"/>, network configuration changes (such as flash renumbering, DNS server updates, or lifetime reductions) require fast and dependable delivery to hosts. On wireless media, multicast packet loss can cause subset of hosts to miss multicast RAs, leading to stale configuration, broken connectivity, or security vulnerabilities.
      </t>
      <t>
        Increasing the frequency or count of unsolicited multicast RAs increases multicast traffic overhead and battery consumption on mobile endpoints. Furthermore, no single set of timers or RA repeat counts works reliably across all wireless network conditions and scales.
      </t>
    </section>

    <section title="Sending Unicast Unsolicited Router Advertisements">
      <section title="Updates to RFC4861">
      <t>
        This document modifies the behavior specified in Section 6.2.4 ("Sending Unsolicited Router Advertisements") of <xref target="RFC4861"/>.
      </t>
        <t>
          When an IPv6 router detects a configuration change that needs to be propagated to connected hosts on an interface, it SHOULD send unicast Router Advertisements to all active hosts on that interface.
The router identifies these hosts by extracting all unique link-layer addresses from REACHABLE or STALE Neighbor Cache entries on that interface, provided those entries are not associated with routers (i.e., the IsRouter flag is FALSE and corresponding NAs do not have the R flag <xref target="RFC4861"/> set).
Those unicast RAs are sent in addition to any multicast unsolicited RAs sent in accordance with <xref target="RFC4861"/>.
        </t>
        <t>
          Examples of configuration changes that trigger this mechanism include, but are not limited to:
          <list style="symbols">
            <t>An interface becomes an advertising interface (see <xref target="RFC4861"/>, Section 6.2.1, "Becoming an Advertising Interface").</t>
            <t>The link-local address of the router changes.</t>
            <t>Any timer in the Router Advertisement header or RA options changes increased or changed from a non-zero value to zero value</t>
            <t>An RA option is added (e.g., Prefix Information Option, Recursive DNS Server Option, Route Information Option).</t>
          </list>
        </t>
      </section>


      <section anchor="l2l3" title="Link-Layer vs IP Layer Multicasts">
<t>
    When sending unicast RAs to active hosts, the router MAY use either of the following approaches:
  </t>
  <t>
    <list style="numbers">
      <t>
        <t>IP-layer unicast:</t>
        The router uses the link-local IPv6 address of each host as the IPv6 destination address. In this case, when identifying active hosts, the router MUST only search for link-local addresses in the REACHABLE or STALE state within its Neighbor Cache.
      </t>
      <t>
        <t>L3 multicast with L2 unicast mapping:</t>
        The router sends an IPv6 multicast packet addressed to the all-nodes multicast group (ff02::1), but maps it to the Ethernet link-layer unicast address of the targeted host, as described in <xref target="RFC6085"/>.
      </t>
    </list>
  </t>
  <t>
    The latter approach (L3 multicast over L2 unicast) offers several practical benefits:
  </t>
  <t>
    <list style="symbols">
      <t>
        Avoids unnecessary ND probingr. Transmitting L3 unicast traffic to a host whose Neighbor Cache entry is in the STALE state causes the entry to transition to DELAY. After 5 seconds (DELAY_FIRST_PROBE_TIME), the router will initiate unicast NS probes to re-confirm reachability. Using L3 multicast avoids triggering these state transitions and eliminates the associated unicast ND overhead.
      </t>
      <t>
        Consistency with existing practices in enterprise Wi-Fi APs, where multicast-to-unicast conversion is often enabled.
      </t>
      <t>
        Simplified implementation via POSIX APIs, as it can be achieved using ICMPv6 sockets rather than packet sockets.
      </t>
    </list>
  </t>
</section>
      <section title="Spreading Transmissions Over Time">
        <t>
          To prevent bursty packet transmission and avoid network congestion when a large number of neighbors exist in the Neighbor Cache, the triggered unicast RAs MUST NOT all be transmitted simultaneously. Instead, the router MUST spread the transmission of unicast RAs evenly over a period of MAX_RA_DELAY_TIME seconds (as defined in <xref target="RFC4861"/> Section 10).
        </t>
      </section>

      <section title="Dampening Unicast Unsolicited RAs">
<t>
    To prevent excessive RA transmissions during periods of network instability and to avoid configuration oscillation on host interfaces, a router MUST implement a dampening mechanism for unicast unsolicited RAs.
  </t>
  <t>
    If a router detects more than ND_UURA_MAX_FLAP configuration change events within an interval defined by ND_UURA_MAX_FLAP_INTERVAL, it MUST suspend the transmission of unicast unsolicited RAs for a duration of ND_UURA_DELAY.
  </t>
  <t>
    The default protocol parameters for dampening are defined as follows:
  </t>
  <t>
    <list style="symbols">
      <t>
        ND_UURA_MAX_FLAP: 3 events
      </t>
      <t>
        ND_UURA_MAX_FLAP_INTERVAL: 10 seconds
      </t>
      <t>
        ND_UURA_DELAY: min(30 seconds, MinRtrAdvInterval) <xref target="RFC4861"/>
      </t>
    </list>
  </t>
      </section>

      <section title="Router Configuration Option">
        <t>
          Routers SHOULD provide a configuration option allowing network administrators to enable or disable this unicast update propagation behavior on a per-interface basis.
        </t>
      </section>
    </section>

    <section title="Operational Considerations">
<t>
Enterprise Wi-Fi networks often convert IP-layer multicast traffic into link-layer unicast frames <xref target="RFC6085"/>.
Networks with this functionality enabled do not benefit from the optimizations proposed in this document.
Thetefore the administrators of such networks do not need to enable the suggested mechanism.
</t>
    </section>
    <section title="Scalability Considerations">
      <t>
        A potential concern with sending unicast RAs to all hosts is router CPU and network queue overhead. However, the total number of unicast RA packets sent during a configuration update is at most equal to the number of active host entries in the neighbor cache (specifically those in REACHABLE or STALE state).
      </t>
      <t>
        Because these packets are unicast (and thus transmitted at higher unicast Wi-Fi data rates with L2 retry mechanisms) and spread across MAX_RA_DELAY_TIME seconds, the resulting packet rate and bandwidth usage are negligible compared to standard data traffic and normal Neighbor Discovery protocol exchanges (such as NS/NA exchanges).
      </t>
    </section>

    <section title="IANA Considerations">
      <t>
        This document has no IANA actions.
      </t>
    </section>

    <section title="Security Considerations">
      <t>
        This document introduces no new security vulnerabilities beyond those already discussed in <xref target="RFC4861"/>. Using unicast RAs improves network stability by ensuring hosts promptly receive security-critical updates (e.g., deprecation of invalidated prefixes or updated DNS servers).
      </t>
    </section>

    <section title="Acknowledgements">
      <t>
        The author would like to thank Brian Carpenter, Lorenzo Colitti, David 'equinox' Lamparter, Ole Troan for their feedback, comments, and guidance.
      </t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      &RFC2119;
      &RFC4861;
      &RFC6085;
      &RFC8174;
      
      <reference anchor="I-D.ietf-6man-slaac-renum" target="https://datatracker.ietf.org/doc/html/draft-ietf-6man-slaac-renum">
        <front>
          <title>Reaction of Stateless Address Autoconfiguration (SLAAC) to Renumbering Events</title>
          <author initials="F." surname="Gont" fullname="Fernando Gont"/>
          <author initials="J." surname="Linkova" fullname="Jen Linkova"/>
          <date month="March" year="2023"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-6man-slaac-renum"/>
      </reference>
    </references>
  </back>
</rfc>
