<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.2.3) -->
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-karstens-pim-proxy-query-messages-00" category="std" consensus="true" submissionType="IETF" updates="[4541, 9776, 9777]" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.35.0 -->
  <front>
    <title abbrev="Proxy Query Messages">Proxy Query Messages</title>
    <seriesInfo name="Internet-Draft" value="draft-karstens-pim-proxy-query-messages-00"/>
    <author initials="N." surname="Karstens" fullname="Nate Karstens">
      <organization abbrev="Garmin">Garmin International</organization>
      <address>
        <email>nate.karstens@garmin.com</email>
      </address>
    </author>
    <date year="2026" month="November" day="02"/>
    <area>Routing</area>
    <workgroup>pim</workgroup>
    <keyword>multicast</keyword>
    <keyword>igmp</keyword>
    <keyword>group</keyword>
    <keyword>management</keyword>
    <keyword>mld</keyword>
    <keyword>listener</keyword>
    <keyword>discovery</keyword>
    <keyword>snooping</keyword>
    <abstract>
      <?line 64?>

<t>TODO: provide abstract</t>
    </abstract>
  </front>
  <middle>
    <?line 68?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>IGMP snooping is a feature included in many managed switches that provides optimal distribution of multicast traffic on the LAN. It works by having the switch, which typically operates at the data link layer, observe IGMP Membership Report messages to learn which link(s) are interested in a given multicast group and adjust an internal forwarding database according. The IPv6 equivalent, MLD snooping, behaves in a similar manner, observing Multicast Listener Report messages.</t>
      <t>This operation blurs the functional boundaries between layers in the network stack. It also involves standards from two organizations: IEEE and IETF. Unfortunately, there is no authoritative specification for this operation. Instead, it was developed by vendors and later documented in <xref target="RFC4541"/>, an Informational RFC that describes the operation and records differences in vendor implementations.</t>
      <t><xref section="2.1.1" sectionFormat="comma" target="RFC4541"/>, list item 4 describes a Proxy Query, a special-purpose Membership Query message with an IPv4 source address of <tt>0.0.0.0</tt>. A Proxy Query is a Membership Query message that must not be included in Querier election, but are otherwise handled as a normal Query.</t>
      <t><xref section="3" sectionFormat="comma" target="RFC4541"/> describes the equivalent message in MLD and indicates that it should use the IPv6 unspecified address (<tt>::</tt>). However, several documents prohibit this:</t>
      <ul spacing="normal">
        <li>
          <t><xref section="3" sectionFormat="comma" target="RFC2710"/> requires all MLD messages to be sent with an IPv6 link-local source address</t>
        </li>
        <li>
          <t><xref section="4" sectionFormat="comma" target="RFC3590"/> requires MLD Query messages to be sent with a valid IPv6 link-local source address</t>
        </li>
        <li>
          <t><xref section="5.1.14" sectionFormat="comma" target="RFC9777"/> requires both that 1) MLD Query messages be sent with a valid IPv6 link-local source address and that 2) nodes discard Query messages without a valid IPv6 link-local source address</t>
        </li>
      </ul>
      <t>Because the recommendation to use the IPv6 unspecified address came from an Informational RFC, it does not overrule the precedent established in these authoritative documents. This raises the question of how Proxy Query messages should be implemented in MLD.</t>
      <t>Similarly, because the concept of a Proxy Query message is only described in an Informational RFC, both the authority and applicability of this message are uncertain.</t>
      <t>This document does the following to resolve these concerns:</t>
      <ol spacing="normal" type="1"><li>
          <t>Updates <xref target="RFC9776"/> and <xref target="RFC9777"/> to specify operation of a Proxy Query</t>
        </li>
        <li>
          <t>Formally removes the recommendation to use the IPv6 unspecified address for Proxy Query messages in MLD</t>
        </li>
      </ol>
      <t>Unlike <xref target="RFC4541"/>, this document can be considered authoritative because it affects <xref target="RFC9776"/> and <xref target="RFC9777"/>, both IETF protocols.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <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>
    <section anchor="igmp-proxy-query">
      <name>IGMP Proxy Query</name>
      <t>If an IPv4 multicast router receives an IGMP Membership Query with its IPv4 source address set to <tt>0.0.0.0</tt>, then it MUST NOT use that message in the querier election process described in <xref section="6.6.2" sectionFormat="comma" target="RFC9776"/>. If the IPv4 source address is not set to <tt>0.0.0.0</tt>, then the multicast router MUST use that message in the querier election process. All other handling for this message remains unchanged.</t>
    </section>
    <section anchor="mld-proxy-query">
      <name>MLD Proxy Query</name>
      <t>Instead of working against precedent established by the documents listed in <xref target="introduction"/>, this document requests assignment of a new flag in the "IGMP/MLD Query Message Flags" registry: the P (Proxy Query) flag. To conserve flags and avoid duplicate functionality, this assignment is only made for MLD Query messages; the flag remains unassigned for IGMP Query messages.</t>
      <t>If an IPv6 multicast router receives an MLD Multicast Listener Query with the P flag set to 1, then it MUST NOT use that message in the querier election process described in <xref section="7.6.2" sectionFormat="comma" target="RFC9777"/>. If the P flag is set to 0, then the multicast router MUST use that message in the querier election process. All other handling for this message remains unchanged.</t>
      <t>This document updates <xref section="3" sectionFormat="comma" target="RFC4541"/> to formally withdraw the recommendation to use the IPv6 unspecified address for Proxy Query messages in MLD.</t>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <t>The attributes that identify a Proxy Query were chosen such that no updates are needed for networks that do not use Proxy Query messages.</t>
      <t>Operators deploying devices that send IGMP Proxy Query messages MUST ensure that any IPv4 multicast router they want to serve as Querier processes IGMP Membership Query messages as per <xref target="igmp-proxy-query"/> of this document, which is based on the recommendation in <xref section="2.1.1" sectionFormat="comma" target="RFC4541"/>, list item 4. This ensures that the appropriate router will participate in Querier election and continue to send IGMP Membership Query messages as per <xref section="6.6.2" sectionFormat="comma" target="RFC9776"/>.</t>
      <t>Operators deploying devices that send MLD Proxy Query messages onto a network with one or more IPv6 multicast routers that do not support these messages MUST ensure that any router they want to serve as Querier is given a lower IPv6 address than any device that sends Proxy Query messages. This ensures that the appropriate router will participate in Querier election and continue to send MLD Multicast Listener Query messages as per <xref section="7.6.2" sectionFormat="comma" target="RFC9777"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA should allocate a new flag in the IGMP/MLD Query Message Flags Registry with the following properties:</t>
      <ul spacing="normal">
        <li>
          <t>Flags Bit: 1</t>
        </li>
        <li>
          <t>Short Name: P</t>
        </li>
        <li>
          <t>Description: "Proxy Query"</t>
        </li>
        <li>
          <t>Reference: this document</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <displayreference target="RFC4541" to="SNOOP"/>
    <displayreference target="RFC9776" to="IGMPv3"/>
    <displayreference target="RFC9777" to="MLDv2"/>
    <displayreference target="RFC2710" to="MLDv1"/>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="BRIDGE">
          <front>
            <title>IEEE Standard for Local and metropolitan area networks, Media Access Control (MAC) Bridges</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date year="2004"/>
          </front>
          <seriesInfo name="IEEE" value="Std 802.1D-2004"/>
        </reference>
        <reference anchor="RFC4541" target="https://www.rfc-editor.org/info/rfc4541" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4541.xml">
          <front>
            <title>Considerations for Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) Snooping Switches</title>
            <author fullname="M. Christensen" initials="M." surname="Christensen"/>
            <author fullname="K. Kimball" initials="K." surname="Kimball"/>
            <author fullname="F. Solensky" initials="F." surname="Solensky"/>
            <date month="May" year="2006"/>
            <abstract>
              <t>This memo describes the recommendations for Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) snooping switches. These are based on best current practices for IGMPv2, with further considerations for IGMPv3- and MLDv2-snooping. Additional areas of relevance, such as link layer topology changes and Ethernet-specific encapsulation issues, are also considered. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4541"/>
          <seriesInfo name="DOI" value="10.17487/RFC4541"/>
        </reference>
        <reference anchor="RFC9776" target="https://www.rfc-editor.org/info/rfc9776" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9776.xml">
          <front>
            <title>Internet Group Management Protocol, Version 3</title>
            <author fullname="B. Haberman" initials="B." role="editor" surname="Haberman"/>
            <date month="March" year="2025"/>
            <abstract>
              <t>The Internet Group Management Protocol (IGMP) is the protocol used by IPv4 systems to report their IP multicast group memberships to neighboring multicast routers. Version 3 of IGMP (IGMPv3) adds support for source filtering, that is, the ability for a system to report interest in receiving packets only from specific source addresses, or from all but specific source addresses, sent to a particular multicast address. That information may be used by multicast routing protocols to avoid delivering multicast packets from specific sources to networks where there are no interested receivers.</t>
              <t>This document specifies IGMPv3. It is a revised version of RFC 3376 that includes clarifications and fixes for errata, and it is backward compatible with RFC 3376.</t>
              <t>This document updates RFC 2236 and obsoletes RFC 3376.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="100"/>
          <seriesInfo name="RFC" value="9776"/>
          <seriesInfo name="DOI" value="10.17487/RFC9776"/>
        </reference>
        <reference anchor="RFC9777" target="https://www.rfc-editor.org/info/rfc9777" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9777.xml">
          <front>
            <title>Multicast Listener Discovery Version 2 (MLDv2) for IPv6</title>
            <author fullname="B. Haberman" initials="B." role="editor" surname="Haberman"/>
            <date month="March" year="2025"/>
            <abstract>
              <t>This document specifies the Multicast Listener Discovery version 2 (MLDv2) protocol. MLD is used by an IPv6 router to discover the presence of multicast listeners on directly attached links and to discover which multicast addresses are of interest to those neighboring nodes. MLDv2 is designed to be interoperable with MLDv1. MLDv2 adds the ability for a node to report interest in listening to packets with a particular multicast address only from specific source addresses or from all sources except for specific source addresses.</t>
              <t>This document updates RFC 2710 and obsoletes RFC 3810.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="101"/>
          <seriesInfo name="RFC" value="9777"/>
          <seriesInfo name="DOI" value="10.17487/RFC9777"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC2710" target="https://www.rfc-editor.org/info/rfc2710" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2710.xml">
          <front>
            <title>Multicast Listener Discovery (MLD) for IPv6</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="W. Fenner" initials="W." surname="Fenner"/>
            <author fullname="B. Haberman" initials="B." surname="Haberman"/>
            <date month="October" year="1999"/>
            <abstract>
              <t>This document specifies the protocol used by an IPv6 router to discover the presence of multicast listeners (that is, nodes wishing to receive multicast packets) on its directly attached links, and to discover specifically which multicast addresses are of interest to those neighboring nodes. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2710"/>
          <seriesInfo name="DOI" value="10.17487/RFC2710"/>
        </reference>
        <reference anchor="RFC3590" target="https://www.rfc-editor.org/info/rfc3590" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3590.xml">
          <front>
            <title>Source Address Selection for the Multicast Listener Discovery (MLD) Protocol</title>
            <author fullname="B. Haberman" initials="B." surname="Haberman"/>
            <date month="September" year="2003"/>
            <abstract>
              <t>It has come to light that there is an issue with the selection of a suitable IPv6 source address for Multicast Listener Discovery (MLD) messages when a node is performing stateless address autoconfiguration. This document is intended to clarify the rules on selecting an IPv6 address to use for MLD messages. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3590"/>
          <seriesInfo name="DOI" value="10.17487/RFC3590"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA81ZXW8buRV9F6D/wHVe4kJSLcexNyrQrRM7iVHb8trOQ1EU
CDVDSaxnhrMkR1o18H/vuZccaUaW3XSBLQoD9gyH5P0699xLut/vdzuJSXUx
G4nKT/s/djvdjtc+UyNxY82vK/FzpexKXCnn5Ey5bkdOJlYtnvuamqSQORan
Vk59/0Fa51Xh+qXO+yWt6P9CK/p5XNE/OMAi6bHi8ODwuD8c9g8Ou52qpDE3
6naE6Iujt0fD8PTu5OR4/XQC1TFrZuxqJJxPux1XTXLtnDbF/arElhfn9x/J
IOdlkcrMFBhbkZqlHom/e5P0hDPWWzV1eFrl4SExea4K7/5BS3VpR8LbyvnD
g4N3pJu0So7Erak8vNbtLOE5WNftPCyjunmVeZ1I58OrnuVleJpZU8XHXBYw
n8TE9ywND5kmhykb3lLtErOAw8KrK4wpWSrUqPzc2CCSfgmhCzcS1wPx1+j0
MBrCcQ1HbX0wFpp/kjbXhbgovLKF9PCczMLnOs5hRhhTudTZCFt6NahD+5cZ
TxjAa6RWYWyOfRaKNXt/e3H26XwUVkdY/Tm8CUTn/FzccWhsKqbGikuTyExg
QOTKW1OaTOOzII+LQvmlsQ+Iz5VKtRSnSQIMiQ+mwMxMvL46/bAv3ludMg7Z
go2H1vaSzDBQg+7gKLw7ZbVyupiaUVPBETRMxY8Hh4PhWb+effvxA2EyTuxj
zvV4fBP31a7M5KoxhtmE283si09XN4s3W9M3g2H+yWb+1eXZ4nBrehwDQKFx
0+VYfXgyPGivHu5YPYyz37x9R7O7nX6/j6g7b2Xi6f1+fDYGtq1Z6FS1vtDM
XKdppujtFcHHmrRKCD/i2yvdeH2kGWTbGrxCOyHFVElfWQXQJlmVqhQPlBSr
mBmpcEvtk7lyws+lr7VwwpRe5wAJTPFWTyoWaaabpEOyyulUJwLjfq7E5SlS
4sILBo+YrMRcLkgL+hZk9MRyrpO58KsSO2TZCkKUJf4RkEzzgBWJzCweBLyn
bE+YCeCyUBw04DGfKOvmuhS3qgSfiJrdhDciU9IWUQJt8drtE6BhL1JOIYXY
dClmCGDRMIPJgnNBpv8E/eAxrEGGUrIskTRkB+k2kQ4BShLDQwNxD50vbhbH
Qv1S6YXMQDM9ivk6Bj0xUfADNGTZTuc6k5Z8X2zMo92v1vpcRmLatnHAUJlr
F71G8ZhklXXsuWlVJIFVxMRUlOlIMgj3SwVr2ZusA82NGQ4ql8kDx0xmzuDr
wmSkqotU4cTUmlxgMuW0LPS/WKoL2c0uI+IfiC+UGr4iuspWPZJBfneiMJEb
wC6UN8KVKtHATNCemMi3DIIyBayXaU9oIEk6kaqFyvA9JUQhcKmBHSQ5gzAr
UAYrIvcQ3G/ffugzGzw+9iiMF3XKsl+QggHjgHcCSKvguY03aVurKLiQq6dT
WFEkIXRBstB5mXExCY7gkKyF9sSdCpkJDhsMSQcqMrBE5eKoIVU2a3qPYEFu
kVm/rGxpgLAG0EPdjxgQSKM5G3azOEJFrWwCOKapJYJGbn49GPDP14E4bfUN
zATP7spOyQn6hfHATIsraKqGp1UWjAOiK8+JZSjOSw195/BchumSxHBhyoKI
5xz05vFxKwqbBFqrBeGUShQVXaQEmpqkgA03N1WWisopXs5JWBURX6RK9Mrr
r6PR1/2B+GyWQBJSztEf4rWIHEeUN9cT7RmLTNB/AJJ+6jN3t3W2pKalEGYZ
K9ckIDjOkf6NIB0zE/UzLrfteEUpsS5sxBw1xZCIVqx2CBJwm06/S9oPbNPh
RthbAmpL4gRRDU4e7u8S/xtkcwR5y8N9oIOKC7Vb1ItsbU6bGkLXd9rU7bxX
iawxQKlLDWUashmO+o/oSNCzBZLbxRZMQqlRjvOC2kNbZWHHEsJUSo5AZZET
5Pk8pAs+Uolosd4aalQwkIpWImkC7NGku7qyzs2ylbRrt0SsU2LW/BOEIT6c
YXehrBD3ThoOSQzoq/S0t9y1M9GCKVCG61QMFXKnJyIuNqatQsksywyZOdEZ
jUAQ83m9P7EE6pKyXqJxXdev2h/Bt1y9TJaZJXcLBnF0VIeiK9kIW4TEHKLW
hBMLozm0coAvqbKGN96xSwj2qkHv227odg4H4iOzFXxgVW4WUZ3fgCSqZTuD
F8JEyn8pMv2g2kXKt/yRwPcTNtmhB7O0fQtIdXABS7ReyOGX3RCjRjWaSA7H
MJOFmvXqlbhXdJowmZmtQmCUeFAr6t5Q/fauvtzd7/XCX3E95ufb85+/XNye
n9Hz3efTy8v1Qz3j7vP4y+XZ5mmz8sP46ur8+iwsxqjYGro6/dtej/XfG9/c
X4yvTy/3Qjo1/UN4CvzHDRqS0Ieq0wLw+w83YnhEjqAWfTh8B8+Elx+HJ0R2
y7kqgjBGf3hFdFcEZ3SRnAUg+ESW8HyGk5DkJFwWgjqbQezFqSVthhz9OE6g
zdN36Mmn64q9aTrRc1L7QiyiCXU0Y6vFDZsyz2oEelfJd8qTP9Zln60oCB51
3CJwZauqRuJplXUCCJ/zWq7coGtTM44HxwOAC63atE6JJ4rpQJnP6EernriC
Nf5vtUWfgzhxIxKaEKKQdVtZb2LpOF04oiJMwpknRpDKW4sPEKzQfhJXUItM
28kZLfbPUD66Uj64rLsJvleIzmudz55kO9VcbIXgO6dnBY8xRxVqKaaZnNXW
71EI/rgpxvEWSHzEHLeHfWZ0RsNpkybfiNcNm/Z5I9Qdw6zCZykaCUVZLgyq
bFoxh/vmIQJsHtVtKFeXi1ymir38tD/4U6BzUn7j9bCFClcPDPP2okErTY5f
ThOSueOw1MiW4AXWIQJw+Dskxk/bvdTJVl5EFfQ6TQ/+r+DfrsRVo6ru6NWh
/bQulOTj1Mrl71QpY26O67KNBuRDrIfh0FVXK+nDvcT6UEC5SRW/3ess6Sya
zHGsKoSrktjc4mRam0xFpVAqjfisr7/iUdEwkZFRu3RmZYOqdC5NVZmZFV8W
qIVOas0gOn1aLtZ2c+hV4eiWhufT7czuesFFaikLxlPIZpSm+ogWUYEtd9eS
tUSsgc5EUNsF63Hdw9XQqC9tMES3H2l93bMV+ebp++WDcGyCg8HRQ9xYllCk
tJqIKJq71IB3KS2coEsa33EeZSIDt3ldVCq4pfb2dzjg+fL2/ZHdKiMbKVDK
iPWFaiAnU+DgbEVurNpNdm3guarkS6DQC78Mme/CCDwfLsCkQMeNAVaizk3s
VfBewcqNkW43/P8XoXyR8J9G9FleDryC0YpPLztIZXw2jq3d6fXpjgk8HA9j
oELDNfNpuX6pWovbWKw3pWpz9iGn4aykVX0LEZa8134khvR+NycsXPM/Gm5o
4IxrUkkajsReI0R79PVWxSusUTul65vliUweOv8G6oziXJoaAAA=

-->

</rfc>
