<?xml version="1.0" encoding="iso-8859-1" ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>

<rfc category="std" ipr="trust200902" docName="draft-xbm-intarea-icmp-query-01" updates="4884" consensus="true" submissionType="IETF">

<front>
  <title abbrev="ICMP Query for IP Node Information"> ICMP Query for IP Node Information </title>
 
  <author fullname="Xiao Min" initials="X" surname="Min">
      <organization>ZTE Corp.</organization>
     <address>
       <postal>
         <street/>

         <!-- Reorder these if your country does things differently -->

         <city>Nanjing</city>

         <region/>

         <code/>

         <country>China</country>
       </postal>

       <phone>+86 18061680168</phone>

       <email>xiao.min2@zte.com.cn</email>

       <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
    
  <author fullname="Ron Bonica" initials="R" surname="Bonica">
      <organization>HPE</organization>
     <address>
       <postal>
         <street></street>

         <!-- Reorder these if your country does things differently -->

         <city></city>

         <region></region>

         <code></code>

         <country>United States of America</country>
       </postal>

       <phone></phone>

       <email>ronald.bonica@hpe.com</email>

       <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
    
  <author fullname="Greg Mirsky" initials="G" surname="Mirsky">
      <organization>Independent</organization>
     <address>
       <postal>
         <street></street>

         <!-- Reorder these if your country does things differently -->

         <city></city>

         <region></region>

         <code></code>

         <country>United States of America</country>
       </postal>

       <phone></phone>

       <email>gregimirsky@gmail.com</email>

       <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
    
    <date year="2026"/>
  
    <area>Internet</area>
    <workgroup>INTAREA Working Group</workgroup>

    <keyword>Request for Comments</keyword>
    <keyword>RFC</keyword>
    <keyword>Internet Draft</keyword>
    <keyword>I-D</keyword>

  <abstract>
  
  <t> This document introduces two new ICMP messages. They are called the ICMP Query Request and the ICMP 
  Query Response. The ICMP Query Request requests information. The ICMP Query Response provides information 
  in response to an ICMP Query Request.
</t>
  
  <t> This document updates RFC 4884.</t>
  
  </abstract>
    
</front>
  
<middle>

  <section title="Introduction">

  <t> This document introduces two new ICMP messages. They are called the ICMP
Query Request and the ICMP Query Response. The ICMP Query Request requests
information. The ICMP Query Response provides information in response to an
ICMP Query Request.
</t>
  
  <t> Both messages are specified for ICMPv4 <xref target="RFC792"/> and 
ICMPv6 <xref target="RFC4443"/>. Both messages include an ICMP Extension Structure 
<xref target="RFC4884"/>. ICMP Extension Objects in the Query Request message determine 
which information is requested. ICMP Extension Objects in the Query Response message provide 
the requested information.
</t>

<t>
To prevent denial of service attacks, the ICMP Query Response message MUST
NOT be longer than the corresponding ICMP Query Request message. 
</t>

 <t> This document updates <xref target="RFC4884"/>.</t>
       
  </section>
  
  <section title="Conventions Used in This Document">
    <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="ICMP Query Request">

    <t>The ICMP Query Request message is defined for both ICMPv4 and
   ICMPv6.  Like any ICMP message, the ICMP Query Request
   message is encapsulated in an IP header.  The ICMPv4 version of the
   Query Request message is encapsulated in an IPv4 header,
   while the ICMPv6 version is encapsulated in an IPv6 header.</t>
    
    <t> The ICMP Query Request message has the following format:</t>
     
     <figure anchor="Figure_1" title="ICMP Query Request Message">
     <artwork align="center">     <![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = TBD1/2 |     Code      |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Identifier          |        Sequence Number        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   ICMP Extension Structure
     ]]>     </artwork>
     </figure>

      <t>IP Header fields:</t>

      <t><list style="symbols">
          <t>Source Address: The Source Address identifies the ICMP Querying node. 
          It MUST be a valid IP unicast address.</t>

          <t>Destination Address: The Destination Address identifies the ICMP Queried node. 
          It MUST be a valid IP unicast address.</t>
        </list></t>

      <t>ICMP fields:</t>

      <t><list style="symbols">
          <t>Type: ICMP Query Request. The value is TBD1 for ICMP and TBD2 for ICMPv6.</t>

          <t>Code: MUST be set to 0 and MUST be ignored upon receipt. </t>

          <t>Checksum: The same as defined in <xref target="RFC4443"/>.</t>

          <t>Identifier: An Identifier aids in matching ICMP Query
          Replies to ICMP Query Requests.</t>

          <t>Sequence Number: A Sequence Number to aid in matching ICMP
          Query Replies to ICMP Query Requests.</t>

          <t>Following the ICMP Query Request header, it's an ICMP Extension Structure as specified in Sections 7 and 8 of 
          <xref target="RFC4884"/>, continuing to the end of the packet.</t>
        </list></t>
        
    <t> Nothing can be added after the ICMP Extension Structure. </t>
             
    <section anchor="query request objects" title="Query Request Objects">

    <t> One or more Query Request Objects MUST be encapsulated in an ICMP Extension Structure of the ICMP Query Request message.</t>
    
    <t> Each Query Request Object has the following format:</t>
     
     <figure anchor="Figure_2" title="Query Request Object">
     <artwork align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Length            |   Class-Num   |   C-Type      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
~                  Query Request Object Payload                 ~
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     ]]></artwork>
     </figure>
     
      <t>Object fields:<list style="symbols">
          <t>Class-Num: Indicates the class of IP node information to be queried. The value will be requested by a separate document.</t>

          <t>C-Type: Indicates the sub-type of IP node information to be queried. The value will be requested by a separate document.</t>

          <t>Length: Length of the object, measured in octets, including the Object Header and payload.</t>

          <t>Object payload: Following the Query Request Object Header is the Query Request Object Payload, which is used to define 
          the scope of IP node information to be queried. The length of this field is variable. The value will be defined by a 
          separate document.</t>
        </list></t>
    
    </section> 
    
    <section anchor="pad objects" title="Pad Objects">

    <t> One or more Pad Objects MAY be encapsulated in an ICMP Extension Structure of the ICMP Query Request message.</t>
    
    <t> Each Pad Object has the following format:</t>
     
     <figure anchor="Figure_3" title="Pad Object">
     <artwork align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Length            |   Class-Num   |   C-Type      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
~                         Extra Padding                         ~
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     ]]></artwork>
     </figure>
     
      <t>Object fields:<list style="symbols">
          <t>Class-Num: Indicates that it's a Pad Object. The value is TBD5.</t>

          <t>C-Type: The value is 0.</t>

          <t>Length: Length of the object, measured in octets, including the Object Header and payload.</t>

          <t>Object payload: Following the Pad Object Header is the Pad Object Payload, 
          which SHOULD be filled by a sequence of pseudorandom numbers, or MAY be filled with all zeros. 
          An implementation MUST control the content of the Pad Object Payload field..</t>
        </list></t>
    
    </section> 
    
    <section anchor="query pre-request object" title="Query Pre-Request Object">

    <t> One Query Pre-Request Object MUST be encapsulated in an ICMP Extension Structure of the ICMP Query Request message.</t>
    
    <t> Query Pre-Request Object has the following format:</t>
     
     <figure anchor="Figure_4" title="Query Pre-Request Object">
     <artwork align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Length            |   Class-Num   |   C-Type      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Two-tuple1 (Class-Num, C-Type)| Two-tuple2 (Class-Num, C-Type)|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Two-tuple3 (Class-Num, C-Type)| Two-tuple4 (Class-Num, C-Type)|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Two-tuple5 (Class-Num, C-Type)|             ......
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     ]]></artwork>
     </figure>
     
      <t>Object fields:<list style="symbols">
          <t>Class-Num: Indicates that it's a Query Pre-Request Object. The value is TBD6.</t>

          <t>C-Type: The value is 0.</t>

          <t>Length: Length of the object, measured in octets, including the Object Header and payload.</t>

          <t>Object payload: Following the Query Pre-Request Object Header is the Query Pre-Request Object Payload, which is a 
          list of two-tuples (Class-Num and C-Type) used to query what kinds of information are supported by the ICMP Queried 
          node. The length of this field is variable. The value of each two-tuple will be the same as what's assigned by IANA 
          for each Query Request Object, with an IANA request by a separate document.</t>
        </list></t>
    
    </section> 
    
  </section>
   
  <section title="ICMP Query Response">

    <t>The ICMP Query Response message is defined for both ICMPv4 and
   ICMPv6.  Like any ICMP message, the ICMP Query Response message
   is encapsulated in an IP header.  The ICMPv4 version of the Query
   Response message is encapsulated in an IPv4 header, while the
   ICMPv6 version is encapsulated in an IPv6 header.</t>
    
    <t> The ICMP Query Response message has the following format:</t>
     
     <figure anchor="Figure_5" title="ICMP Query Response Message">
     <artwork align="center">     <![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = TBD3/4 |     Code      |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Identifier          |        Sequence Number        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   ICMP Extension Structure
     ]]>     </artwork>
     </figure>

      <t>IP Header fields:</t>

      <t><list style="symbols">
          <t>Source Address: Copied from the Destination Address field of the
          invoking ICMP Query Request packet.</t>

          <t>Destination Address: Copied from the Source Address field of the
          invoking ICMP Query Request packet.</t>
        </list></t>

      <t>ICMP fields:</t>

      <t><list style="symbols">
          <t>Type: ICMP Query Response. The value is TBD3 for ICMPv4 and TBD4 for ICMPv6.</t>

          <t>Code: The values are (0) No Error, (1) Malformed Query, (2) Unrecognized Query Request Object, and (3) Request Denied.
          See <xref target="code"/> for details.</t>

          <t>Checksum: The same as defined in <xref target="RFC4443"/>.</t>

          <t>Identifier: Copied from the Identifier field of the invoking ICMP Query Request message.</t>

          <t>Sequence Number: Copied from the Sequence Number field of the invoking ICMP Query Request message.</t>

          <t>Following the ICMP Query Response header, it's an ICMP Extension Structure as specified in Sections 7 and 8 of 
          <xref target="RFC4884"/>, continuing to the end of the packet.</t>
        </list></t>

    <t> Nothing can be added after the ICMP Extension Structure. </t>
             
    <section anchor="query response objects" title="Query Response Objects">

    <t> One or more Query Response Objects MUST be encapsulated in an ICMP Extension Structure of the ICMP Query Response message.</t>
    
    <t> Each Query Response Object has the following format:</t>
     
     <figure anchor="Figure_6" title="Query Response Object">
     <artwork align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Length            |   Class-Num   |   C-Type      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
~                 Query Response Object Payload                 ~
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     ]]></artwork>
     </figure>
     
      <t>Object fields:<list style="symbols">
          <t>Class-Num: Indicates the class of replied IP node information. The value will be requested by a separate document.</t>

          <t>C-Type: Indicates the sub-type of replied IP node information. The value will be requested by a separate document.</t>

          <t>Length: Length of the object, measured in octets, including the Object Header and payload.</t>

          <t>Object payload: Following the Query Response Object Header is the Query Response Object Payload, which is the replied IP 
          node information. The length of this field is variable. The value will be defined by a separate document.</t>
        </list></t>
    
    </section> 
    
    <section anchor="query pre-response object" title="Query Pre-Response Object">

    <t> One Query Pre-Response Object MUST be encapsulated in an ICMP Extension Structure of the ICMP Query Response message.</t>
    
    <t> Query Pre-Response Object has the following format:</t>
     
     <figure anchor="Figure_7" title="Query Pre-Response Object">
     <artwork align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Length            |   Class-Num   |   C-Type      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Two-tuple1 (Class-Num, C-Type)| Two-tuple2 (Class-Num, C-Type)|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Two-tuple3 (Class-Num, C-Type)|             ......
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     ]]></artwork>
     </figure>
     
      <t>Object fields:<list style="symbols">
          <t>Class-Num: Indicates that it's a Query Pre-Response Object. The value is TBD7.</t>

          <t>C-Type: The value is 0.</t>

          <t>Length: Length of the object, measured in octets, including the Object Header and payload.</t>

          <t>Object payload: Following the Query Pre-Response Object Header is the Query Pre-Response Object Payload, which is a 
          list of two-tuples (Class-Num and C-Type) used to respond the ICMP Querying node what kinds of information are supported 
          by the ICMP Queried node. The length of this field is variable. The value of each two-tuple is copied from the Query 
          Pre-Request Object of the invoking ICMP Query Request message.</t>
        </list></t>
    
    </section> 
    
  </section>
   
  <section anchor="code" title="Code Field Processing">

     <t>The Code field in the ICMP Query Response MUST be set to (1) Malformed Query if any of the
     following conditions apply:<list style="symbols">
     
         <t>The ICMP Query Request does not include an ICMP Extension Structure.</t>

         <t>The ICMP Extension Structure checksum is 0 or incorrect.</t>

         <t>The ICMP Query Request is otherwise malformed.</t>
         
       </list></t>
       
     <t>The Code field in the ICMP Query Response MUST be set to (2) Unrecognized Query Request Object 
     if any of the following conditions apply:<list style="symbols">
     
         <t>The ICMP Extension Structure of the ICMP Query Request does not include a Query Request 
         Object.</t>

         <t>None of the Class-Num of the Query Request Object is recognized.</t>

         <t>None of the C-Type of the Query Request Object is recognized.</t>
         
       </list></t>

  </section> 

  <section title="Updates to RFC 4884"> 
  
  <t> Section 4.6 of <xref target="RFC4884"/> provides a list of extensible ICMP messages 
  (i.e., messages that can carry the ICMP Extension Structure). This document adds the ICMP 
  Query Request message and the ICMP Query Response message to that list.</t>
  
  </section>
  
  <section title="Operational Considerations"> 
  
  <t> To remove to potential of abusing ICMP Query as a means of attack amplification, Pad Object 
  defined in <xref target="pad objects"/> MAY be included in the ICMP Query Request message, to ensure 
  that the Query Reply message must never be larger than the invoking Query Request message.</t>
  
  <t> To ensure the queried information is supported by the Queried node, before sending the ICMP Query 
  Request message containing one or more Query Request Objects, the ICMP Querying node can send first 
  an ICMP Query Request message containing only one Query Pre-Request Object defined in 
  <xref target="query pre-request object"/>. And once receiving an ICMP Query Request message containing 
  only one Query Pre-Request Object, the ICMP Queried node MUST respond an ICMP Query Response message 
  containing only one Query Pre-Response Object defined in <xref target="query pre-response object"/>, 
  telling the ICMP Querying node what kinds of information are supported by the ICMP Queried node.</t>
  
  </section>
  
  <section title="Why Not Reuse Existing ICMP Types?"> 
  
  <t> <xref target="RFC4620"/> defines an experimental protocol using ICMPv6 type values 139/140. 
  Section 4 of that RFC specifies the two types of Node Information (NI) messages, the NI Query and the NI 
  Reply, which can be used to learn the addresses and names for nodes on the other end of a point-to-point 
  link or nodes on a shared-medium link such as an Ethernet. <xref target="I-D.ietf-intarea-rfc8335bis"/> 
  defines a network diagnostic tool called PROBE using ICMP type values 42/43 and ICMPv6 type values 160/161. 
  Sections 2 and 3 of that document specify the two types of ICMP messages, the Extended Echo Request and the 
  Extended Echo Reply, which can be used to query the status of a probed interface. Whether the NI Query/Reply 
  or the Extended Echo Request/Reply are not designed for a generic ICMP Query, so if reusing their ICMP type 
  values, some backward compatibility issues need to be resolved, which means complexity and redundant fields. </t>
  
  </section>

  <section title="IANA Considerations"> 
  <t> This document requests the following actions from IANA:
  
          <list style="symbols">

          <t> Add the following ICMPv4 Type to the "ICMP Type Numbers" registry:
          
          <list style="none">
          <t> TBD1 Query Request</t>
          </list></t>         
          </list>
          
          <list>          
          <t> Add the following Code to the "Type TBD1 - Query Request" subregistry:
          
          <list style="none">
          <t> (0) No Error</t>
          </list></t>         
          </list>
          
          <list style="symbols">

          <t> Add the following ICMPv6 Type to the "ICMPv6 'type' Numbers" registry:
          
          <list style="none">
          <t> TBD2 Query Request</t>
          
          <t> As ICMPv6 distinguishes between informational and error
          messages, and this is an informational message, the value must be
          assigned from the range 128-255.</t>
          </list></t>
          </list>
          
          <list>
          <t> Add the following Code to the "Type TBD2 - Query Request" subregistry:
          
          <list style="none">
          <t> (0) No Error</t>
          </list></t>
          
          </list>
          
          <list style="symbols">

          <t> Add the following ICMPv4 Type to the "ICMP Type Numbers" registry:
          
          <list style="none">
          <t> TBD3 Query Response</t>
          </list></t>
          
          </list>
          
          <list>
          
          <t> Add the following Codes to the "Type TBD3 - Query Response" subregistry:
          
          <list style="none">
          <t> (0) No Error</t>
          <t> (1) Malformed Query</t>
          <t> (2) Unrecognized Query Request Object</t>
          <t> (3) Request Denied</t>

          </list></t>
          
          </list>
          
          <list style="symbols">

          <t> Add the following ICMPv6 Type to the "ICMPv6 'type' Numbers" registry:
          
          <list style="none">
          <t> TBD4 Query Response</t>
          
          <t> As ICMPv6 distinguishes between informational and error
          messages, and this is an informational message, the value must be
          assigned from the range 128-255.</t>
          </list></t>
          </list>
          
          <list>
          <t> Add the following Codes to the "Type TBD4 - Query Response" subregistry:
          
          <list style="none">
          <t> (0) No Error</t>
          <t> (1) Malformed Query</t>
          <t> (2) Unrecognized Query Request Object</t>
          <t> (3) Request Denied</t>
          </list></t>
          
          </list>
          
          <list style="symbols">

          <t> Add the following Class-Num to the "ICMP Extension Object Classes and Class
          Sub-types" registry:
          
          <list style="none">
          <t> (TBD5) Pad Object</t>
          <t> (TBD6) Query Pre-Request Object</t>
          <t> (TBD7) Query Pre-Response Object</t>
          </list></t>
          
          </list>
          
          <list>
          <t> Add the following C-type to the "Sub-types - Class TBD5 - Pad Object" subregistry:
          
          <list style="none">
          <t> (0) Reserved</t>
          </list></t>
		  
          <t> Add the following C-type to the "Sub-types - Class TBD6 - Query Pre-Request Object" subregistry:
          
          <list style="none">
          <t> (0) Reserved</t>
          </list></t>
		  
          <t> Add the following C-type to the "Sub-types - Class TBD7 - Query Pre-Response Object" subregistry:
          
          <list style="none">
          <t> (0) Reserved</t>
          </list></t>
          
          <t> C-Type values are assigned on a First Come First Serve (FCFS) basis with a range of 0-255.</t>
          
          </list>
          
        </t>

      <t>All subregistries mentioned above are requested to be newly created by IANA and the subregistries 
      will contain the new codes.</t>
        
      <t>All codes mentioned above are assigned on an FCFS basis with a range of 0-255.</t>
      
  </section>
  
  <section title="Security Considerations">
  
  <t> Security issues discussed in <xref target="RFC4884"/> apply to this document.</t>
  
  <t> This document recommends using IP Authentication Header <xref target="RFC4302"/> or IP Encapsulating Security 
  Payload Header <xref target="RFC4303"/> to provide integrity protection for replied IP node information.</t>
  
  <t> This document recommends using IP Encapsulating Security Payload Header <xref target="RFC4303"/> to provide 
  privacy protection for replied IP node information.</t>
  
  <t> This document recommends that the network operators establish policies that restrict access to ICMP Query 
  functionality. In order to enforce these policies, nodes that support ICMP Query functionality MUST support the 
  following configuration options:</t>

  <t><list style="symbols">
      <t>Enable/disable ICMP Query functionality. By default, ICMP Query functionality is disabled.</t>

      <t>Define the prefixes from which ICMP Query Request messages are permitted.</t>
  </list></t>

  <t>In order to protect local resources, implementations SHOULD rate-limit incoming ICMP Query Request messages.</t>
  
  <t>To avoid the potential amplification attack, an implementation that supports this specification MUST ensure that 
  the Query Response message must never be larger than the Query Request message.</t>
  
  </section>
  
  <section title="Acknowledgements">
  
  <t> The authors would like to acknowledge Sebastian Moeller, Paul Vixie, Jen Linkova, and Dave Thaler for their valuable comments.</t>
  
  </section>  
  
</middle>
  
<back>

    <references title="Normative References">
     <?rfc include="reference.RFC.2119"?>
     <?rfc include="reference.RFC.8174"?>
     <?rfc include="reference.RFC.792"?>
     <?rfc include="reference.RFC.4443"?>
     <?rfc include="reference.RFC.4884"?>
    </references>

    <references title="Informative References">
     <?rfc include="reference.RFC.4302"?>
     <?rfc include="reference.RFC.4303"?>
     <?rfc include="reference.RFC.4620"?>
     <?rfc include="reference.I-D.ietf-intarea-rfc8335bis"?>
    </references>
    
</back>

</rfc>

