<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-ietf-intarea-probe-03" ipr="trust200902"
     updates="4884">
  <front>
    <title abbrev="PROBE">PROBE: A Utility For Probing Interfaces</title>

    <author fullname="Ron Bonica" initials="R." surname="Bonica">
      <organization>Juniper Networks</organization>

      <address>
        <postal>
          <street>2251 Corporate Park Drive</street>

          <city>Herndon</city>

          <code>20171</code>

          <region>Virginia</region>

          <country>USA</country>
        </postal>

        <email>rbonica@juniper.net</email>
      </address>
    </author>

    <author fullname="Reji Thomas" initials="R." surname="Thomas">
      <organization>Juniper Networks</organization>

      <address>
        <postal>
          <street>Elnath-Exora Business Park Survey</street>

          <city>Bangalore</city>

          <region>Karnataka</region>

          <code>560103</code>

          <country>India</country>
        </postal>

        <email>rejithomas@juniper.net</email>
      </address>
    </author>

    <author fullname="Jen Linkova" initials="J." surname="Linkova">
      <organization>Google</organization>

      <address>
        <postal>
          <street>1600 Amphitheatre Parkway</street>

          <city>Mountain View</city>

          <region>California</region>

          <code>94043</code>

          <country>USA</country>
        </postal>

        <email>furry@google.com</email>
      </address>
    </author>

    <author fullname="Chris Lenart" initials="C." surname="Lenart">
      <organization>Verizon</organization>

      <address>
        <postal>
          <street>22001 Loudoun County Parkway</street>

          <city>Ashburn</city>

          <region>Virginia</region>

          <code>20147</code>

          <country>USA</country>
        </postal>

        <email>chris.lenart@verizon.com</email>
      </address>
    </author>

    <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
      <organization>Orange</organization>

      <address>
        <postal>
          <street/>

          <city>Rennes 35000</city>

          <country>France</country>
        </postal>

        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>

    <date day="23" month="July" year="2017"/>

    <area>Internet</area>

    <workgroup>INTAREA</workgroup>

    <keyword>Ping</keyword>

    <keyword>ICMP</keyword>

    <abstract>
      <t>This document describes a network diagnostic tool called PROBE. PROBE
      is similar to PING, in that it can be used to test the status of a
      probed interface. It differs from PING in that it does not require
      bidirectional connectivity between the probing and probed interfaces.
      Alternatively, PROBE requires bidirectional connectivity between the
      probing interface and a proxy interface. The proxy interface can reside
      on the same node as the probed interface or it can reside on a node to
      which the probed interface is directly connected. This document updates
      RFC 4884.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>Network operators use <xref target="RFC2151">PING</xref> to test
      bidirectional connectivity between two interfaces. For the purposes of
      this document, we will call these interfaces the probing and probed
      interfaces. PING sends an <xref target="RFC0792">ICMP</xref> <xref
      target="RFC4443"/> Echo message from the probing interface to the probed
      interface. The probing interface resides on a probing node while the
      probed interface resides on a probed node.</t>

      <t>If the probed interface receives the ICMP Echo message, it returns an
      ICMP Echo Reply. When the probing interface receives the ICMP Echo
      Reply, it has verified bidirectional connectivity between the probing
      and probed interfaces. Specifically, it has verified that:</t>

      <t><list style="symbols">
          <t>The probing node can reach the probed interface</t>

          <t>The probed interface is active</t>

          <t>The probed node can reach the probing interface</t>

          <t>The probing interface is active</t>
        </list></t>

      <t>This document describes a network diagnostic tool called PROBE. PROBE
      is similar to PING, in that it can be used to test the status of a
      probed interface. It differs from PING in that it does not require
      bidirectional connectivity between the probing and probed interfaces.
      Alternatively, PROBE requires bidirectional connectivity between the
      probing interface and a proxy interface. The proxy interface can reside
      on the same node as the probed interface or it can reside on a node to
      which the probed interface is directly connected. <xref
      target="usecase"/> of this document describes scenarios in which this
      characteristic is useful.</t>

      <t>Like PING, PROBE executes on a probing node. It sends an ICMP
      Extended Echo message from a local interface, called the probing
      interface, to a proxy interface. The proxy interface resides on a probed
      node.</t>

      <t>The ICMP Extended Echo Request contains an ICMP Extension Structure
      and the ICMP Extension Structure contains an Interface Identification
      Object. The Interface Identification Object identifies the probed
      interface. The probed interface can reside on the probed node or it can
      be directly connected to the probed node.</t>

      <t>When the proxy interface receives the ICMP Extended Echo Request, it
      executes access control procedures. If access is granted, the probed
      node determines the status of the probed interface and returns an ICMP
      Extended Echo Reply Message. The ICMP Extended Echo Reply indicates the
      status of the probed interface.</t>

      <t>If the probed interface resides on the probed node, PROBE determines
      the status of the probed interface as it would determine its <xref
      target="RFC2863">MIB-II</xref> ifOperStatus. If ifOperStatus is equal to
      up (1), PROBE reports that the probed interface is active. Otherwise,
      PROBE reports that the probed interface is inactive.</t>

      <t>If the probed interface resides on a node that is directly connected
      to the probed node, PROBE reports that the interface is up if it appears
      in the IPv4 Address Resolution Protocol (ARP) table or the IPv6 Neighbor
      Cache. Otherwise, it reports that the interface does not exist.</t>

      <section title="Terminology">
        <t>This document uses the following terms:</t>

        <t><list style="symbols">
            <t>Probing node - The node upon which PROBE executes</t>

            <t>Probing interface - The interface from which an ICMP Extended
            Echo originates</t>

            <t>Proxy interface - The interface to which the ICMP Extended Echo
            message is sent</t>

            <t>Probed node - The node upon which the proxy interface
            resides</t>

            <t>Probed interface - The interface whose status is being
            queried</t>
          </list></t>
      </section>

      <section title="Requirements Language">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
        document are to be interpreted as described in <xref
        target="RFC2119">RFC 2119</xref>.</t>
      </section>
    </section>

    <section anchor="ExtendedEcho" title="ICMP Extended Echo Request">
      <t>The ICMP Extended Echo Request message is defined for both ICMPv4 and
      ICMPv6. Like any ICMP message, the ICMP Extended Echo Request message is
      encapsulated in an IP header. The ICMPv4 version of the Extended Echo
      Request message is encapsulated in an IPv4 header, while the ICMPv6
      version is encapsulated in an IPv6 header.</t>

      <t><xref target="ICMPEchoFIG"/> depicts the ICMP Extended Echo Request
      message.</t>

      <t><figure align="center" anchor="ICMPEchoFIG"
          title="ICMP Extended Echo Request Message">
          <artwork><![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      |     Code      |          Checksum             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Identifier          |Sequence Number|   Reserved  |L|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   ICMP Extension Structure
       
 

]]></artwork>
        </figure></t>

      <t>IP Header fields:</t>

      <t><list style="symbols">
          <t>Source Address: The Source Address identifies the probing
          interface. It MUST be valid IPv4 or IPv6 unicast address.</t>

          <t>Destination Address: The Destination Address identifies the proxy
          interface. It can be a unicast, multicast or anycast address.</t>
        </list></t>

      <t>ICMP fields:</t>

      <t><list style="symbols">
          <t>Type: Extended Echo Request. The value for ICMPv4 is TBD by IANA.
          The value for ICMPv6 is also TBD by IANA.</t>

          <t>Code: 0</t>

          <t>Checksum: For ICMPv4, see RFC 792. For ICMPv6, see RFC 4443.</t>

          <t>Identifier: An identifier to aid in matching Extended Echo
          Replies to Extended Echo Requests. May be zero.</t>

          <t>Sequence Number: A sequence number to aid in matching Extended
          Echo Replies to Extended Echo Requests. May be zero.</t>

          <t>Reserved: This field MUST be set to zero and ignored upon
          receipt.</t>

          <t>L (local) - The L-bit is set of the probed interface resides on
          the probed node. The L-bit is clear if the probed interface is
          directly connected to the probed node.</t>

          <t>ICMP Extension Structure: The ICMP Extension Structure identifies
          the probed interface.</t>
        </list></t>

      <t>Section 7 of <xref target="RFC4884"/> defines the ICMP Extension
      Structure. As per RFC 4884, the Extension Structure contains exactly one
      Extension Header followed by one or more objects. When applied to the
      ICMP Extended Echo Request message, the ICMP Extension Structure MUST
      contain one or two instances of the <xref target="IntIdObj">Interface
      Identification Object</xref>.</t>

      <t>In most cases, a single instance of the Interface Identification
      Object identifies the probed interface. However, in some cases, a second
      instance is required for disambiguation.</t>

      <t>If the L-bit is set, the Interface Identification Object identifies
      the probed interface by name, index or address. It the L-bit is clear,
      the Interface Identification Object identifies the probed interface by
      address.</t>

      <t>If the Interface Identification Object identifies the probed
      interface by address, that address can be a member of any address
      family. For example, an ICMPv4 Extended Echo Request message can carry
      an Interface Identification Object that identifies the probed interface
      by IPv4, IPv6 or IEEE 802 address. Likewise, an ICMPv6 Extended Echo
      Request message can carry an Interface Identification Object that
      identifies the probed interface by IPv4, IPv6 or IEEE 802 address.</t>

      <section anchor="IntIdObj" title="Interface Identification Object">
        <t>The Interface Identification Object identifies the probed interface
        by name, index, or address. Like any other ICMP Extension Object, it
        contains an Object Header and Object Payload. The Object Header
        contains the following fields:</t>

        <t><list style="symbols">
            <t>Class-Num: Interface Identification Object. Value is TBD by
            IANA</t>

            <t>C-type: Values are: (1) Identifies Interface By Name, (2)
            Identifies Interface By Index, and (3) Identifies Interface By
            Address</t>

            <t>Length: Length of the object, measured in octets, including the
            object header and object payload.</t>
          </list></t>

        <t>If the Interface Identification Object identifies the probed
        interface by name, the object payload contains the human-readable
        interface name. The interface name MUST be the full MIB-II ifName.</t>

        <t>If the Interface Identification Object identifies the probed
        interface by index, the length is equal to 8 and the payload contains
        the MIB-II ifIndex [RFC2863].</t>

        <t>If the Interface Identification Object identifies the probed
        interface by address, the payload is as depicted in <xref
        target="addrFig"/>.</t>

        <figure align="center" anchor="addrFig"
                title="Interface Identification Object - C-type 3 Payload">
          <artwork><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            AFI                |        Reserved               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                Address   ....
       
 

]]></artwork>
        </figure>

        <t>Payload fields are defined as follows:</t>

        <t><list style="symbols">
            <t>Address Family Identifier (AFI): This 16-bit field identifies
            the type of address represented by the Address field. All values
            found in the IANA registry of Address Family Numbers (available
            from
            &lt;https://www.iana.org/assignments/address-family-numbers/address-family-numbers.xhtml&gt;)
            are valid in this field.</t>

            <t>Reserved: This field MUST be set to zero and ignored upon
            receipt.</t>

            <t>Address: This variable-length field represents an address
            associated with the probed interface.</t>
          </list></t>
      </section>
    </section>

    <section anchor="ExtenedEchoReply" title="ICMP Extended Echo Reply">
      <t>The ICMP Extended Echo Reply message is defined for both ICMPv4 and
      ICMPv6. Like any ICMP message, the ICMP Extended Echo Reply message is
      encapsulated in an IP header. The ICMPv4 version of the Extended Echo
      Reply message is encapsulated in an IPv4 header, while the ICMPv6
      version is encapsulated in an IPv6 header.</t>

      <t><xref target="ICMPEchoReplyFIG"/> depicts the ICMP Extended Echo
      Reply message.</t>

      <t><figure align="center" anchor="ICMPEchoReplyFIG"
          title="ICMP Extened Echo Reply Message">
          <artwork><![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      |     Code      |          Checksum             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Identifier          |Sequence Number| Resvd |A|F|S|E|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
                             


]]></artwork>
        </figure></t>

      <t>IP Header fields:</t>

      <t><list style="symbols">
          <t>Source address: Copied from the Destination Address field of the
          invoking Extended Echo Request message</t>

          <t>Destination address: Copied from the Source Address field of the
          invoking Extended Echo Request message</t>
        </list></t>

      <t>ICMP fields:<list style="symbols">
          <t>Type: Extended Echo Reply. The value for ICMPv4 is TBD by IANA.
          The value for ICMPv6 is also TBD by IANA</t>

          <t>Code: (0) No Error, (1) Malformed Query, (2) No Such Interface,
          (3) Multiple Interfaces Satisfy Query</t>

          <t>Checksum: For ICMPv4, see RFC 792. For ICMPv6, see RFC 4443</t>

          <t>Identifier: Copied from the Identifier field of the invoking
          Extended Echo Request packet</t>

          <t>Sequence Number: Copied from the Sequence Number field of the
          invoking Extended Echo Request packet</t>

          <t>Resvd - This field MUST be set to zero and ignored upon
          receipt</t>

          <t>A (Active) - The A-bit is set if Code is equal to zero and the
          probed interface is active. Otherwise, the A-bit is clear.</t>

          <t>F (IPv4) - The F-bit is set if the A-bit is also set and IPv4 is
          running on the probed interface. Otherwise, the F-bit is clear.</t>

          <t>S (IPv6) - The S-bit is set if the A-bit is also set and IPv6 is
          running on the probed interface. Otherwise, the S-bit is clear.</t>

          <t>E (Ethernet) - The E-bit is set if the A-bit is also set and IPv4
          is running on the probed interface. Otherwise, the E-bit is
          clear.</t>
        </list></t>
    </section>

    <section anchor="proc" title="ICMP Message Processing">
      <t>When a node receives an ICMP Extended Echo Request message and any of
      the following conditions apply, the node MUST silently discard the
      incoming message:</t>

      <t><list style="symbols">
          <t>The node does not recognize ICMP Extended Echo Request
          messages</t>

          <t>The node has not explicitly enabled ICMP Extended Echo
          functionality</t>

          <t>The incoming ICMP Extend Echo Request carries a source address
          that is not explicitly authorized for the incoming ICMP Extended
          Echo Request L-bit setting</t>

          <t>The incoming ICMP Extend Echo Request carries a source address
          that is not explicitly authorized for the incoming ICMP Extended
          Echo Request type (i.e., by ifName, by IfIndex, by Address)</t>

          <t>The Source Address of the incoming messages is not a unicast
          address</t>
        </list></t>

      <t>Otherwise, when a node receives an ICMPv4 Extended Echo Request, it
      MUST format an ICMP Extended Echo Reply as follows:<list style="symbols">
          <t>Don't Fragment flag (DF) is 1</t>

          <t>More Fragments flag is 0</t>

          <t>Fragment Offset is 0</t>

          <t>TTL is 255</t>

          <t>Protocol is ICMP</t>
        </list>When a node receives an ICMPv6 Extended Echo Request, it MUST
      format an ICMPv6 Extended Echo Reply as follows:<list style="symbols">
          <t>Hop Limit is 255</t>

          <t>Next Header is ICMPv6</t>
        </list>In either case, the responding node MUST:<list style="symbols">
          <t>Copy the source address from the Extended Echo Request message to
          the destination address of the Extended Echo Reply</t>

          <t>Copy the destination address from the Extended Echo Request
          message to the source address of the Extended Echo Reply</t>

          <t>Set the DiffServ codepoint to <xref
          target="RFC4594">CS0</xref></t>

          <t>Set the ICMP Type to Extended Echo Reply</t>

          <t>Copy the Identifier from the Extended Echo Request message to the
          Extended Echo Reply</t>

          <t>Copy the Sequence Number from the Extended Echo Request message
          to the Extended Echo Reply</t>

          <t>Set the Code field as described <xref target="code"/></t>

          <t>If the Code Field is equal to No Error (0) and the L-bit is
          clear, set the A-Bit.</t>

          <t>If the Code Field is equal to No Error (0) and the L-bit is set
          and the probed interface is active, set the A-bit.</t>

          <t>If the A-bit is set, set the F-bit, S-bit and E-bit as
          appropriate. Otherwise, clear the F, S and E bits.</t>

          <t>Set the checksum appropriately</t>

          <t>Forward the ICMP Extended Echo Reply to its destination</t>
        </list></t>

      <section anchor="code" title="Code Field Processing">
        <t>The Code field MUST be set to Malformed Query (1) if any of the
        following conditions apply:<list style="symbols">
            <t>The ICMP Extended Echo Request does not include an ICMP
            Extension Structure</t>

            <t>The ICMP Extension Structure does not include an Interface
            Identification Object</t>

            <t>The ICMP Extension Structure contains more than two Interface
            Identification Objects</t>

            <t>The L-bit is clear and the Interface Identification Object
            identifies the probed interface by ifName or ifIndex</t>

            <t>The query is otherwise malformed</t>
          </list>The Code field MUST be set to No Such Interface (2) if any of
        the following conditions apply:</t>

        <t><list style="symbols">
            <t>The L-bit is set and the ICMP Extension Structure does not
            identify any local interfaces</t>

            <t>The L-bit is clear and the address or addresses found in the
            Interface Identification object appear in neither the IPv4 Address
            Resolution Protocol (ARP) Table nor the IPv6 Neighbor Cache</t>
          </list>The Code field MUST be set to Multiple Interfaces Satisfy
        Query (3) if any of the following conditions apply:</t>

        <t><list style="symbols">
            <t>The L-bit is set and the ICMP Extension Structure identifies
            more than one local interfaces</t>

            <t>The L-bit is clear and the address or addresses found in the
            Interface Identification object map to multiple IPv4 ARP or IPv6
            Neighbor Cache entries</t>
          </list>Otherwise, the Code field MUST be set to No Error (0)</t>
      </section>
    </section>

    <section anchor="usecase" title="Use-Cases">
      <t>In the scenarios listed below, network operators can use PROBE to
      determine the status of a probed interface, but cannot use PING for the
      same purpose. In all scenarios, assume bidirectional connectivity
      between the probing and proxy interfaces. However, bidirectional
      connectivity between the probing and probed interfaces is lacking.</t>

      <t><list style="symbols">
          <t>The probed interface is unnumbered</t>

          <t>The probing and probed interfaces are not directly connected to
          one another. The probed interface has an IPv6 link-local address,
          but does not have a more globally scoped address</t>

          <t>The probing interface runs IPv4 only while the probed interface
          runs IPv6 only</t>

          <t>The probing interface runs IPv6 only while the probed interface
          runs IPv4 only</t>

          <t>For lack of a route, the probing node cannot reach the probed
          interface.</t>
        </list></t>
    </section>

    <section title="Updates to RFC 4884">
      <t>Section 4.6 of RFC 4884 provides a list of extensible ICMP messages
      (i.e., messages that can carry the ICMP Extension Structure). This
      document adds the ICMP Extended Echo message and the ICMP Extended Echo
      Reply message to that list.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document requests the following actions from IANA:</t>

      <t><list style="symbols">
          <t>Add an entry to the "ICMP Type Number" registry, representing the
          Extended Echo Request. This entry has one code (0).</t>

          <t>Add an entry to the "Internet Control Message Protocol version 6
          (ICMPv6) Parameters" registry, representing the Extended Echo
          Request. This entry has one code (0).</t>

          <t>Add an entry to the "ICMP Type Number" registry, representing the
          Extended Echo Reply. This entry has the following codes: (0) No
          Error, (1) Malformed Query, (2) No Such Interface, (3) Multiple
          Interfaces Satisfy Query. Protocol Flag Bit mappings are as follows:
          Bit 0 (IPv4), Bit 1 (IPv6), Bit 2 (Ethernet), Bits 3-15
          (Reserved).</t>

          <t>Add an entry to the "Internet Control Message Protocol version 6
          (ICMPv6) Parameters" registry, representing the Extended Echo Reply.
          This entry has the following codes: (0) No Error, (1) Malformed
          Query, (2) No Such Interface, (3) Multiple Interfaces Satisfy Query.
          Protocol Flag Bit mappings are as follows: Bit 0 (IPv4), Bit 1
          (IPv6), Bit 2 (Ethernet), Bits 3-15 (Reserved).</t>

          <t>Add an entry to the "ICMP Extension Object Classes and Class
          Sub-types" registry, representing the Interface Identification
          Object. It has C-types Reserved (0), Identifies Interface By Name
          (1), Identifies Interface By Index (2), Identifies Interface By
          Address (3)</t>
        </list></t>

      <t>Note to RFC Editor: this section may be removed on publication as an
      RFC.</t>
    </section>

    <section anchor="security" title="Security Considerations">
      <t>The following are legitimate uses of PROBE:</t>

      <t><list style="symbols">
          <t>to determine the operational status of an interface</t>

          <t>to determine which protocols (e.g., IPv4, IPv6) are active on an
          interface</t>
        </list></t>

      <t>However, malicious parties can use PROBE to obtain additional
      information. For example, a malicious party can use PROBE to discover
      interface names. Having discovered an interface name, the malicious
      party may be able to infer additional information. Additional
      information may include:</t>

      <t><list style="symbols">
          <t>interface bandwidth</t>

          <t>the type of device that supports the interface (e.g., vendor
          identity)</t>

          <t>the operating system version that the above-mentioned device
          executes</t>
        </list></t>

      <t>Understanding this risk, network operators establish policies that
      restrict access to ICMP Extended Echo functionality. In order to enforce
      these polices, nodes that support ICMP Extended Echo functionality MUST
      support the following configuration options:</t>

      <t><list style="symbols">
          <t>Enable/disable ICMP Extended Echo functionality. By default, ICMP
          Extend Echo functionality is disabled.</t>

          <t>Define enabled L-bit settings. By default, L-bit set is enabled
          and L-bit clear is disabled.</t>

          <t>Define enabled query types (i.e., by ifName, by ifIndex, by
          Address). By default, all query types are disabled.</t>

          <t>For each enabled query type, define the prefixes from which ICMP
          Extended Echo Request messages are permitted</t>

          <t>For each interface, determine whether ICMP Echo Request messages
          are accepted</t>
        </list></t>

      <t>When a node receives an ICMP Extended Echo Request message that it is
      not configured to support, it MUST silently discard the message. See
      <xref target="proc"/> for details.</t>

      <t>PROBE MUST NOT leak information about one Virtual Private Network
      (VPN) into another. Therefore, when a node receives an ICMP Extended
      Echo Request and the proxy interface is in a different VPN than the
      probed interface, the node MUST return an ICMP Extended Echo Reply with
      error code equal to (2) No Such Interface.</t>

      <t>In order to protect local resources, implementations SHOULD
      rate-limit incoming ICMP Extended Echo Request messages.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <?rfc include='reference.RFC.4884'?>

      <?rfc ?>

      <?rfc include='reference.RFC.0792'?>

      <?rfc ?>

      <?rfc include='reference.RFC.2863'?>

      <?rfc include='reference.RFC.4443'?>
    </references>

    <references title="Informative References">
      <?rfc include='reference.RFC.2151'?>

      <?rfc ?>

      <?rfc ?>

      <?rfc ?>

      <?rfc ?>

      <?rfc ?>

      <?rfc include='reference.RFC.4594'?>

      <?rfc ?>

      <?rfc ?>

      <?rfc ?>
    </references>

    <section anchor="application" title="The PROBE Application">
      <t>The PROBE application accepts input parameters, sets a counter and
      enters a loop to be exited when the counter is equal to zero. On each
      iteration of the loop, PROBE emits an ICMP Extended Echo Request,
      decrements the counter, sets a timer, waits for the timer to expire. If
      an expected ICMP Extended Echo Reply arrives while PROBE is waiting for
      the timer to expire, PROBE relays information returned by that message
      to its user. However, on each iteration of the loop, PROBE waits for the
      timer to expire, regardless of whether an Extended Echo Reply message
      arrives.</t>

      <t>PROBE accepts the following parameters:</t>

      <t><list style="symbols">
          <t>Count</t>

          <t>Wait</t>

          <t>Probing Interface Address</t>

          <t>Hop Count</t>

          <t>Proxy Interface Address</t>

          <t>Local</t>

          <t>Probed Interface Identifier</t>
        </list></t>

      <t>Count is a positive integer whose default value is 3. Count
      determines the number of times that PROBE iterates through the
      above-mentioned loop.</t>

      <t>Wait is a positive integer whose minimum and default values are 1.
      Wait determines the duration of the above-mentioned timer, measured in
      seconds.</t>

      <t>Probing Interface Address specifies the source address of ICMP
      Extended Echo Request. The Probing Interface Address MUST be a unicast
      address and MUST identify an interface that is local to the probing
      node.</t>

      <t>The Proxy Interface Address identifies the interface to which the
      ICMP Extended Echo Request message is sent. It can be an IPv4 or IPv6
      address. If it is an IPv4 address, PROBE emits an ICMPv4 message. If it
      is an IPv6 address, PROBE emits an ICMPv6 message.</t>

      <t>Local is a boolean value. It is TRUE if the proxy and probed
      interfaces both reside on the probed node. It is FALSE if the proxy
      interface resides on the probed node and the probed interface is
      directly connected to the probed node.</t>

      <t>The probed interface is the interface whose status is being queried.
      It is identified by one of the following:</t>

      <t><list style="symbols">
          <t>an interface name</t>

          <t>an address from any address family (e.g., IPv4, IPv6, IEEE 802,
          48-bit MAC, 64-bit MAC)</t>

          <t>an ifIndex</t>
        </list></t>

      <t>If the probed interface identifier is an address, it does not need to
      be of the same address family as the proxy interface address. For
      example, PROBE accepts an IPv4 destination interface address and an IPv6
      probed interface identifier</t>
    </section>

    <section anchor="Acknowledgements" numbered="no" title="Acknowledgments">
      <t>Thanks to Sowmini Varadhan, Jeff Haas, Carlos Pignataro, Jonathan
      Looney, Dave Thaler and Joe Touch for their thoughtful review of this
      document.</t>
    </section>
  </back>
</rfc>
