<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc='yes'?>
<?rfc tocdepth="3"?>
<?rfc compact="yes"?>
<?rfc tocdepth="yes"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline ="yes"?>
<?rfc subcompact="no"?>
<?rfc tocompact="yes"?>
<?rfc colonspace="yes"?>
<rfc category="std" docName="draft-muthu-ippm-twamp-nat-00" ipr="trust200902">

 <front>
 <title abbrev="NAT Considerations for IPPM Protocols">
 Network Address Translator (NAT) Considerations for IP Performance Metrics 
 (IPPM) Active Measurement Protocols</title>

 <author initials="M." surname="Perumal" fullname="Muthu Arul Mozhi Perumal">
      <organization>Ericsson</organization>
      <address>
        <postal>
          <street>Ferns Icon</street>
          <street>Doddanekundi, Mahadevapura</street>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <code>560037</code>
          <country>India</country>
        </postal>
        <email>p.muthu.arul.mozhi@ericsson.com</email>
      </address>
    </author>

	<author initials='G.' surname="Mirsky" fullname='Greg Mirsky'>
		<organization>Ericsson</organization>
		<address>
			<email>gregory.mirsky@ericsson.com</email>
		</address> 
	</author>

    <date />

    <area>Transport</area>
	
    <workgroup>Network Working Group</workgroup>
	
    <keyword>Internet-Draft</keyword>
	
    <keyword>IPPM</keyword>
	
    <keyword>OWAMP</keyword>
	
    <keyword>TWAMP </keyword>
   
    <abstract>
      <t>This document describes the problems in obtaining IP Performance 
	  Metrics (IPPM) one-way and two-way active measurements across Internet 
	  paths that traverse Network Address Translators (NATs). It also documents 
	  the requirements, guidelines and best practices when such measurements 
	  are obtained across NATs.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>One of the primary reasons for standardizing techniques for collecting 
	  IP Performance Metrics (IPPM) one-way and two-way active measurements is 
	  to create an environment where IPPM metrics can be collected across a 
	  broad mesh of Internet paths. This together with the deployment of open 
	  servers is expected to make IPPM measurements a commonplace across those 
	  Internet paths.</t>

      <t>The One-way Active Measurement Protocol (OWAMP) and Two-Way Active 
	  Measurement Protocol (TWAMP) is designed to effectively support active 
	  measurements in a variety of environments, from publicly accessible 
	  measurement beacons running on arbitrary hosts to network monitoring 
	  deployments within private corporate networks.</t> 
	  
	  <t>With the proliferation of Internet of Things (IoT), it is expected 
	  that IPPM measurements will be obtained by the service provider from a 
	  variety of devices not imagined before, such as sensors, smart phones,
	  vehicles, customer premises equipment (CPE) and residential gateways. 
	  Such devices are likely to be behind NATs, deployed at the customer 
	  premise or hosted by the service provider (known as Carrier Grade 
	  NATs).</t>

      <t>NATs are considered a 'necessary evil' of the Internet and a 
	  'fact of life' (see <xref target="RFC2993"/>). They generally operate by 
	  modifying the IP address and port information (within the 
	  network/transport header) of packets en-route. <xref target="RFC3027"/> 
	  describes the common characteristics of protocols broken by NAT:</t>
	  
	  <t><list style="empty">
	    <t>Bundled session applications such as FTP, H.323, SIP and RTSP, which
        use a control connection to establish a data flow are also usually
        broken by NAT devices enroute.  This is because these applications
        exchange address and port parameters within control session to
        establish data sessions and session orientations.  NAT cannot know
        the inter-dependency of the bundled sessions and would treat each
        session to be unrelated to one another. Applications in this case
        can fail for a variety of reasons. Two most likely reasons for
        failures are:  (a) addressing information in control payload is
        realm-specific and is not valid once packet crosses the originating
        realm, (b) control session permits data session(s) to originate in a
        direction that NAT might not permit.</t>
      </list></t>

      <t>Both OWAMP and TWAMP negotiate the sender and receiver addresses and 
	  port numbers used by the test session in their control protocol. 
	  Therefore, they also suffer from the same problems described above, when 
	  operating across a NAT.</t>
    </section>

    <section anchor="sec-term" title="Terminology">
      <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"/>.
	  </t>

      <t>In this document, the term "NAT" refers to both "Basic NAT" and
      "Network Address/Port Translator (NAPT)" (see section 3 of 
	  <xref target="RFC4787"/>). Basic NAT and NAPT are two variations of 
	  NAT in that translation in Basic NAT is limited to IP addresses alone, 
	  whereas translation in NAPT is extended to include IP addresses and 
	  transport identifiers (such as a TCP/UDP port).</t>
    </section>

    <section title="Problem Description">
      <t>The following sections describe the problems NAT causes for TWAMP.
	  The problems NAT causes for OWAMP are very similar and is left out for 
	  brevity.</t>
	  
	  <section title="Traversal Problem">
	    <t>The following diagram shows the presence of NATs on the TWAMP-Test 
		session path between two hosts, Host A and Host B, one playing the 
		roles of Control-Client and Session-Sender, and the other playing the 
		roles of Server and Session-Reflector.</t>
		
		<figure title="Figure1: TWAMP across NAT">
		 <artwork><![CDATA[
           Host A                                      Host B
        +----------+                               +-----------+
        | Control  |<--------TWAMP-Control-------->| Server    |
        | Client   |                               |           |
        |          |                               |           |
        | Session  |                               | Session   |
        | Sender   |<--+-------TWAMP-Test------+-->| Reflector |
        +----------+   |                       |   +-----------+
                      NAT A                   NAT B
        Addr 192.0.2.1 | 50.1.1.1     60.1.1.1 | 198.51.100.1
        Port 50000       55000        58000      52000

        <---Private---><--------Public--------><----Private---->
         ]]></artwork>
		</figure>
	
	    <t>To initiate a test session, the Control-Client sends a 
		Request-TW-Session command to the Server. The Sender Address and 
		Receiver Address fields carried inside this message contain, 
		respectively, the sender and receiver addresses of the endpoints of the 
		Internet path over which a TWAMP-Test session is requested. As shown in 
		the above diagram, when there is NAT in this path, these addresses may 
		not be valid since they may be addresses from private realm and not the 
		corresponding public addresses which map to them.</t>
		
		<t>The Request-TW-Session command also carries the Sender Port and 
		Receiver Port. The Sender Port is the UDP port from which TWAMP-Test 
		packets will be sent and the port to which TWAMP-Test packets will be 
		sent by the Session-Reflector. The Receiver Port is the desired UDP 
		port to which TWAMP-Test packets will be sent by the Session-Sender or 
		the port where the Session-Reflector is asked to receive test packets. 
		These ports may not be valid in the presence of NAT.</t>
		
		<t>The Session-Reflector then responds with an Accept-Session message 
		containing a Port field. This Port field indicates the port number 
		where the Session-Reflector expects to receive packets from the 
		Session-Sender. This port also may not be valid in the presence of 
		NAT.</t>
      </section>
		
      <section title="Application Level Gateway (ALG) Problem">
		<t>When a protocol is unable to operate through a NAT, the use of an 
		Application Level Gateway (ALG) may permit operation of that protocol 
		<xref target="RFC3235"/>. ALGs typically operate inside routers along 
		with the NAT component. An example is a DNS-ALG that interacts with the 
		NAT component to modify the contents of a DNS response. In a similar 
		way, a TWAMP-ALG could be used along with the NAT component to rewrite 
		the private addresses and ports carried inside the control protocol 
		with the NAT translated addresses and ports. This would however work 
		only when TWAMP operates in the unauthenticated mode.</t>
		
		<t><xref target="RFC2694"/> notes that if DNS packets are 
		encrypted/authenticated per DNSSEC, then DNS-ALG will fail because it 
		won't be able to perform payload modifications. Similarly, when TWAMP 
		operates in the authenticated or encrypted mode, modifications of the 
		TWAMP-Control payload by the TWAMP-ALG will cause TWAMP integrity 
		protection to fail.</t>
      </section>
	</section>
	
	<section title="Requirements">
	  <t>Since NAT behaviour is not standardized, a solution capable of 
	  collecting IPPM one-way and two-way active measurements across all types 
	  of NATs may not be feasible. However, it may be feasible to come up with 
	  solutions, guidelines and best practices that work for certain 
	  deployments. Any such proposal MUST have the following 
	  characteristics.</t>
	  
	  <t>REQ1: It MUST be backward compatible with the current version of OWAMP 
	  and TWAMP, described respectively in <xref target="RFC4656"/> and
	  <xref target="RFC5357"/>.</t>
	  
	  <t>REQ2: It MUST NOT compromise on the security properties of OWAMP and 
	  TWAMP.</t>
	</section>
	
    <section title="Guidelines for Operating Across NATs">
	  <t>To be done.</t>
	</section>
	
    <section title="Security Considerations">
      <t>Solutions, guidelines and best practices for collecting IPPM one-way 
	  and two-way active measurements across NATs MUST NOT introduce new 
	  security vulnerabilities compromising the security properties of OWAMP 
	  and TWAMP.</t>
    </section>

    <section anchor="sec.iana-considerations" title="IANA Considerations">
      <t>This document does not require any action from IANA.</t>
    </section>

    <section title="Acknowledgement">
      <t>To be done</t>
    </section>
  </middle>

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

    <references title="Informative References">
	  <?rfc include="reference.RFC.2993"?>
	  
	  <?rfc include="reference.RFC.3027"?>
	  
      <?rfc include="reference.RFC.4787"?>
	  
	  <?rfc include="reference.RFC.3235"?>
	  
	  <?rfc include="reference.RFC.2694"?>
	  
	  <?rfc include="reference.RFC.5389"?>
    </references>
  </back>
</rfc>