<?xml version='1.0' encoding='utf-8'?>
<!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="info" docName="draft-cerveny-bmwg-ipv6-nd-01" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en">
  <front>
    <title abbrev="draft-cerveny-bmwg-ipv6-nd-00">Benchmarking Neighbor Discovery Problems</title>
    <author fullname="Bill Cerveny" initials="W.J." surname="Cerveny">
      <organization>Arbor Networks</organization>
    </author>
    <date day="10" month="September" year="2013"/>
    <abstract>
      <t>This document is a benchmarking instantiation of RFC 6583: “Operational Neighbor Discovery Problems”. It describes a general testing procedure and measurements that can be performed to evaluate how the problems described in RFC 6583 may impact the functionality or performance of intermediate nodes.</t>
    </abstract>
    <note 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" pageno="false" format="default">RFC 2119</xref>.</t>
    </note>
  </front>
  <middle>
    <section title="Introduction" toc="default">
      <t>This document is a benchmarking instantiation of <xref format="default" target="RFC6583" pageno="false">RFC 6583: “Operational Neighbor Discovery Problems”</xref>. It describes a general testing procedure and measurements that can be performed to evaluate how the problems described in RFC 6583 may impact the functionality or performance of intermediate nodes.</t>
    </section>
    <section title="Terminology" toc="default">
      <t>
        <list style="hanging">
          <t hangText="Intermediate Node">An intermediate node can be a router, switch, firewall or any other device which separates end-nodes. The tests in this document can be completed with any intermediate node which maintains a list of addresses that traverse the intermediate node, although not all measurements and performance characteristics may apply. While it is likely that the intermediate node which will be the DUT will be at the edge of a network directly adjacent to an end-node, there may be reasons to test intermediate nodes closer to the center of the network path.</t>
          <t hangText="Neighbor Discovery">See <xref target="RFC4861" pageno="false" format="default">Section 1 of RFC 4861</xref></t>
          <t hangText="NDP Triggering Event">An event which forces the DUT (Device Under Test) to perform a neighbor solicitation. A triggering event could be an ICMPv6 echo request, but could also be any other packets which require discovering the MAC address of existing and non-existing nodes on an IPv6 subnet. A concern with using ICMPv6 echo requests as triggering events is that some immediate nodes deprioritize functions involving ICMPv6 echo requests.</t>
          <t hangText="Scanner Network">The network from which the scanning device is connected.</t>
          <t hangText="Target Network">The network for which the scanning tests is targeted.</t>
          <t hangText="Scanning Interface">The node which is conducting the scanning activity.</t>
          <t hangText="Target Network Measurement Interface">A node that resides on the target network, which is primarily used to measure DUT performance while the scanning activity is occurring.</t>
          <t hangText="Non-participating Network">Network connected to DUT, for which nodes are neither activie participants nor being directly impacted by the test traffic.</t>
        </list>
      </t>
    </section>
    <section title="Test Setup" toc="default">
      <t>The test network design is fairly simple. The network needs to minimally have two subnets: one from which the scanner(s) source their scanning activity and the other which is the target network of the address scans.</t>
      <t>It is assumed that the latency for all network segments is neglible.</t>
      <t>At least one node should reside on the target network to confirm some of the performance characteristics.</t>
      <figure title="" suppress-title="false" align="left" alt="" width="" height="">
        <preamble>Basic format of test network. Note that optional "non-participating network" is a third network not related to the scanner or target network.</preamble>
        <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height="">+---------------+             +-----------+              +--------------+
|               |   Scanner   |           |   Target     |              |
|   Scanning    |-------------|    DUT    |--------------|Target Network|
|   interface   |   Network   |           |   Network    |  interface   |
|               |             |           |              |              |
+---------------+             +-----------+              +--------------+
                                    |
                                    |
                           +-----------------+
                           |                 |
                           |Non-participating|
                           |    network      |
                           |                 |
                           +-----------------+</artwork>
      </figure>
    </section>
    <section title="Measurements" toc="default">
      <t>Throughout measurements, two testing interfaces are defined:</t>
      <t>tester#1-new: Sets up new addresses</t>
      <t>tester#2-renew: Discovers addresses previously discovered</t>
      <section title="Maximum number of hosts" toc="default">
        <t>This test evaluates how many hosts can be on a network and still have connectivity between all endpoints.</t>
        <t>Perform "scan" with addresses in ascending order.</t>
        <t>tester#1-new sets up new addresses</t>
        <t>tester#2-renew is pinging existing addresses, where granularity is somewhere between a millisecond and a second.</t>
        <t>tester#1-new and tester#2-renew should get responses to every packet</t>
      </section>
      <section title="Stable-state time" toc="default">
        <t>Given that there are as many hosts as determined in "maximum number of hosts" test, determine how long it takes for the neighbor cache get into a reasonable state.</t>
        <t>
          <list style="symbols">
            <t>Lowest timer value and still have connectivity between all endpoints.</t>
            <t>Make sure tester can keep up</t>
            <t>Keep getting smaller intervals</t>
          </list>
        </t>
        <t>reduce timer on tester#1-new</t>
        <t>tester#1-new should not always get responses tester#2-renew should get responses to every packet</t>
      </section>
      <section title="NDP Prioritization" toc="default">
        <t>How do we behave when we’re being scanned. Priority should be given to hosts that have been seen before.</t>
        <t>Slow down tester#2-renew until one gets into refreshing every 6 seconds. If an address is in the "stale" state, it should get priority over new request.</t>
        <t>increase timer on tester#2-renew.</t>
        <t>tester#2-renew should always get responses</t>
        <t>tester#1-new should not always get responses.</t>
      </section>
    </section>
    <section title="Measurements Explicitly Excluded" toc="default">
      <t>These are measurements which while possible, aren't being made because of the itemized reasons below:</t>
      <section title="DUT CPU Utilization" toc="default">
        <t>This measurement relies on the DUT to provide utilization information, which is subjective.</t>
      </section>
      <section title="Malformed Packets" toc="default">
        <t>This benchmarking test is not intended to test DUT behavior in the presence of malformed packets, such as packets which do not confirm to designs consistent with IETF standards.</t>
      </section>
    </section>
    <section title="DUT initialization" toc="default">
      <t>At the beginning of each test, the neighbor cache of the DUT should be initialized</t>
    </section>
    <section anchor="IANA" title="IANA Considerations" toc="default">
      <t>This document makes no request of IANA.</t>
      <t>Note to RFC Editor: this section may be removed on publication as an RFC.</t>
    </section>
    <section anchor="Security" title="Security Considerations" toc="default">
      <t>Benchmarking activities as described in this memo are limited to technology characterization using controlled stimuli in a laboratory environment, with dedicated address space and the constraints specified in the sections above.</t>
      <t>The benchmarking network topology will be an independent test setup and MUST NOT be connected to devices that may forward the test traffic into a production network, or misroute traffic to the test management network.</t>
      <t>Further, benchmarking is performed on a "black-box" basis, relying solely on measurements observable external to the DUT/SUT. Special capabilities SHOULD NOT exist in the DUT/SUT specifically for benchmarking purposes.</t>
      <t>Any implications for network security arising from the DUT/SUT SHOULD be identical in the lab and in production networks.</t>
    </section>
    <section anchor="Acknowledgements" title="Acknowledgements" toc="default">
      <t/>
    </section>
  </middle>
  <back>
    <references title="Normative References">
      <reference anchor="RFC2119">
        <front>
          <title abbrev="RFC Key Words">Key words for use in RFCs to Indicate Requirement Levels</title>
          <author initials="S." surname="Bradner" fullname="Scott Bradner">
            <organization>Harvard University</organization>
            <address>
              <postal>
                <street>1350 Mass. Ave.</street>
                <street>Cambridge</street>
                <street>MA 02138</street>
              </postal>
              <phone>- +1 617 495 3864</phone>
              <email>sob@harvard.edu</email>
            </address>
          </author>
          <date year="1997" month="March"/>
          <area>General</area>
          <keyword>keyword</keyword>
          <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.  Authors who follow these guidelines should incorporate this phrase near the beginning of their document: <list><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 RFC 2119.  </t></list></t>
            <t>Note that the force of these words is modified by the requirement level of the document in which they are used.  </t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <format type="TXT" octets="4723" target="http://www.rfc-editor.org/rfc/rfc2119.txt"/>
        <format type="HTML" octets="17970" target="http://xml.resource.org/public/rfc/html/rfc2119.html"/>
        <format type="XML" octets="5777" target="http://xml.resource.org/public/rfc/xml/rfc2119.xml"/>
      </reference>
      <reference anchor="RFC5180">
        <front>
          <title>IPv6 Benchmarking Methodology for Network Interconnect Devices</title>
          <author initials="C." surname="Popoviciu" fullname="C. Popoviciu">
            <organization/>
          </author>
          <author initials="A." surname="Hamza" fullname="A. Hamza">
            <organization/>
          </author>
          <author initials="G." surname="Van de Velde" fullname="G. Van de Velde">
            <organization/>
          </author>
          <author initials="D." surname="Dugatkin" fullname="D. Dugatkin">
            <organization/>
          </author>
          <date year="2008" month="May"/>
          <abstract>
            <t>The benchmarking methodologies defined in RFC 2544 are IP version independent.  However, RFC 2544 does not address some of the specificities of IPv6.  This document provides additional benchmarking guidelines, which in conjunction with RFC 2544, lead to a more complete and realistic evaluation of the IPv6 performance of network interconnect devices.  IPv6 transition mechanisms are outside the scope of this document.  This memo provides information for the Internet community.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5180"/>
        <format type="TXT" octets="41712" target="http://www.rfc-editor.org/rfc/rfc5180.txt"/>
      </reference>
      <reference anchor="RFC6583">
        <front>
          <title>Operational Neighbor Discovery Problems</title>
          <author initials="I." surname="Gashinsky" fullname="I. Gashinsky">
            <organization/>
          </author>
          <author initials="J." surname="Jaeggli" fullname="J. Jaeggli">
            <organization/>
          </author>
          <author initials="W." surname="Kumari" fullname="W. Kumari">
            <organization/>
          </author>
          <date year="2012" month="March"/>
          <abstract>
            <t>In IPv4, subnets are generally small, made just large enough to cover the actual number of machines on the subnet. In contrast, the default IPv6 subnet size is a /64, a number so large it covers trillions of addresses, the overwhelming number of which will be unassigned. Consequently, simplistic implementations of Neighbor Discovery (ND) can be vulnerable to deliberate or accidental denial of service (DoS), whereby they attempt to perform address resolution for large numbers of unassigned addresses. Such denial-of-service attacks can be launched intentionally (by an attacker) or result from legitimate operational tools or accident conditions. As a result of these vulnerabilities, new devices may not be able to "join" a network, it may be impossible to establish new IPv6 flows, and existing IPv6 transported flows may be interrupted.&lt;/t&gt;&lt;t&gt; This document describes the potential for DoS in detail and suggests possible implementation improvements as well as operational mitigation techniques that can, in some cases, be used to protect against or at least alleviate the impact of such attacks. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6583"/>
        <format type="TXT" octets="29480" target="http://www.rfc-editor.org/rfc/rfc6583.txt"/>
      </reference>
      <reference anchor="RFC2544">
        <front>
          <title abbrev="Benchmarking Methodology">Benchmarking Methodology for Network Interconnect Devices</title>
          <author initials="S." surname="Bradner" fullname="Scott Bradner">
            <organization>Harvard University</organization>
            <address>
              <postal>
                <street>1350 Mass. Ave</street>
                <street>Room 813</street>
                <city>Cambridge</city>
                <region>MA</region>
                <code>02138</code>
                <country>US</country>
              </postal>
              <phone>+1 617 495 3864</phone>
              <facsimile>+1 617 496 8500</facsimile>
              <email>sob@harvard.edu</email>
            </address>
          </author>
          <author initials="J." surname="McQuaid" fullname="Jim McQuaid">
            <organization>NetScout Systems</organization>
            <address>
              <postal>
                <street>4 Westford Tech Park Drive</street>
                <city>Westford</city>
                <region>MA</region>
                <code>01886</code>
                <country>US</country>
              </postal>
              <phone>+1 978 614 4116</phone>
              <facsimile>+1 978 614 4004</facsimile>
              <email>mcquaidj@netscout.com</email>
            </address>
          </author>
          <date year="1999" month="March"/>
          <abstract>
            <t>This document discusses and defines a number of tests that may be used to describe the performance characteristics of a network interconnecting  device.  In addition to defining the tests this document also describes specific formats for reporting the results of the tests.  Appendix A lists the tests and conditions that we believe should be included for specific cases and gives additional information about testing practices.  Appendix B is a reference listing of maximum frame rates to be used with specific frame sizes on various media and Appendix C gives some examples of frame formats to be used in testing.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="2544"/>
        <format type="TXT" octets="66688" target="http://www.rfc-editor.org/rfc/rfc2544.txt"/>
      </reference>
      <reference anchor="RFC4861">
        <front>
          <title>Neighbor Discovery for IP version 6 (IPv6)</title>
          <author initials="T." surname="Narten" fullname="T. Narten">
            <organization/>
          </author>
          <author initials="E." surname="Nordmark" fullname="E. Nordmark">
            <organization/>
          </author>
          <author initials="W." surname="Simpson" fullname="W. Simpson">
            <organization/>
          </author>
          <author initials="H." surname="Soliman" fullname="H. Soliman">
            <organization/>
          </author>
          <date year="2007" month="September"/>
          <abstract>
            <t>This document specifies the Neighbor Discovery protocol for IP Version 6.  IPv6 nodes on the same link use Neighbor Discovery to discover each other's presence, to determine each other's link-layer addresses, to find routers, and to maintain reachability information about the paths to active neighbors. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4861"/>
        <format type="TXT" octets="235106" target="http://www.rfc-editor.org/rfc/rfc4861.txt"/>
      </reference>
    </references>
  </back>
</rfc>
