<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- Some of the more generally applicable PIs that most I-Ds might want to use -->
<!-- Try to enforce the ID-nits conventions and DTD validity -->
<?rfc strict='yes' ?>
<!-- Items used when reviewing the document -->
<?rfc comments='no' ?>
<!-- Controls display of <cref> elements -->
<?rfc inline='no' ?>
<!-- When no, put comments at end in comments section, otherwise, put inline -->
<?rfc editing='no' ?>
<!-- When yes, insert editing marks: editing marks consist of a string such as <29> printed in the blank line at the beginning of each paragraph of text. -->
<!-- Create Table of Contents (ToC) and set some options for it. Note the ToC may be omitted for very short documents,but idnits insists on a ToC if the document has more than 15 pages. -->
<?rfc toc='yes'?>
<?rfc tocompact='yes'?>
<!-- If 'yes' eliminates blank lines before main section entries. -->
<?rfc tocdepth='3'?>
<!-- Sets the number of levels of sections/subsections... in ToC -->
<!-- Choose the options for the references. Some like symbolic tags in the references (and citations) and others prefer numbers. The RFC Editor always uses symbolic tags. The tags used are the anchor attributes of the references. -->
<?rfc symrefs='yes'?>
<?rfc sortrefs='yes' ?>
<!-- If 'yes', causes the references to be sorted in order of tags. This doesn't have any effect unless symrefs is "yes" also. -->
<!-- These two save paper: Just setting compact to 'yes' makes savings by not starting each main section on a new page but does not omit the blank lines between list items. If subcompact is also "yes" the blank lines between list items are also omitted. -->
<?rfc compact='yes' ?>
<?rfc subcompact='no' ?>
<!-- end of list of popular I-D processing instructions -->
<!-- end of list of processing instructions -->
<rfc updates="6145"  category="std" docName="draft-ietf-v6ops-ivi-icmp-address-07" ipr="trust200811">


<front>
<title abbrev="Source Address Mapping for ICMPv6">
Stateless Source Address Mapping for ICMPv6 Packets</title> 

<author initials="X." surname="Li" fullname="Xing Li">
<organization abbrev="CERNET Center/Tsinghua University">
CERNET Center/Tsinghua University</organization> 
<address>
<postal>
<street>Room 225, Main Building, Tsinghua University</street>
<city>Beijing</city> <code>100084</code>
<country>CN</country>
</postal>
<phone>+86 10-62785983</phone>
<email>xing@cernet.edu.cn</email>
</address>
</author>

<author initials="C.X." surname="Bao" fullname="Congxiao Bao">
<organization abbrev="CERNET Center/Tsinghua University">
CERNET Center/Tsinghua University</organization> 
<address>
<postal>
<street>Room 225, Main Building, Tsinghua University</street>
<city>Beijing</city> <code>100084</code>
<country>CN</country>
</postal>
<phone>+86 10-62785983</phone>
<email>congxiao@cernet.edu.cn</email>
</address>
</author>

<author fullname="Dan Wing" initials="D." surname="Wing">
<organization abbrev="Cisco">Cisco Systems, Inc.</organization>
<address>
<postal>
<street>170 West Tasman Drive</street>
<city>San Jose</city>
<region>CA</region>
<code>95134</code>
<country>USA</country>
</postal>
<email>dwing@cisco.com</email>
</address>
</author>

<author initials="R." surname="Vaithianathan" fullname="Ramji Vaithianathan">
<organization abbrev="Cisco">
Cisco Systems, Inc.</organization> 
<address>
<postal>
<street>A 5-2, BGL 12-4, SEZ Unit,</street>
<street>Cessna Business Park, Varthur Hobli</street>
<street>Sarjapur Outer Ring Road</street>
<city>BANGALORE</city> <code>KARNATAKA 560 103</code>
<country>INDIA</country>
</postal>
<phone>+91 80 4426 0895</phone>
<email>rvaithia@cisco.com</email>
</address>
</author> 

<author fullname="Geoff Huston" initials="G." surname="Huston">
<organization abbrev="APNIC">APNIC</organization>
<address>
<email>gih@apnic.net</email>
</address>
</author>
<date year="2012"/> 

<abstract>
<t>
A stateless IPv4/IPv6 translator may receive ICMPv6 packets containing
non IPv4-translatable addresses as the source. These packets should be passed
across the translator as ICMP packets directed to the IPv4 destination.  This document presents recommendations for source address translation in ICMPv6 headers to handle such cases.
</t>
</abstract>
</front>

<middle>

<section title="Introduction">

<t>
<xref target="RFC6145"></xref> section 5.2 of the "IP/ICMP Translation Algorithm" document.
states that "the IPv6 addresses in the
ICMPv6 header may not be IPv4-translatable addresses and there will be
no corresponding IPv4 addresses representing this IPv6 address. In
this case, the translator can do stateful translation.  A mechanism by
which the translator can instead do stateless translation is left for
future work." This document, Stateless Source Address Mapping for ICMPv6 Packets, provides
   recommendations for this case.
</t>

<!-- <t>
<xref target="RFC6145"></xref>

 section 5.3 of the "IP/ICMP Translation Algorithm"
   document states that "the IPv6 addresses in the ICMPv6 header may
   not be IPv4-translatable addresses and there will be no corresponding
   IPv4 addresses representing this IPv6 address.  In this case, the
   translator can do stateful translation.  A mechanism by which the
   translator can instead do stateless translation is left for future
   work."  This document, Stateless Source Address Mapping for ICMPv6
   Packets, provides recommendations for this case.
</t> -->

<t>
   For the purposes of  this document, the term IPv4-translatable address"  is as defined in Section 2.2 of 
<xref target="RFC6052"></xref>.
</t>

</section>

<section title="Notational Conventions">
<t>The key words MUST, MUST NOT, REQUIRED, SHALL, 
SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and 
OPTIONAL, when they appear in this document, 
are to be interpreted as described in 
<xref target="RFC2119"/>.
</t>
</section>

<section title="Problem Statement and Considerations">
<t>
   When a stateless IPv4/IPv6 translator receives an ICMPv6 message 
<xref target="RFC4443"></xref>
(for
   example "Packet Too Big") sourced from an non-IPv4-translatable IPv6
   address, bound for to an IPv4-translatable IPv6 address, the translator needs to
   pick a source address with which to generate an ICMP message.  For the reasons discussed below, this choice
   is problematic.
</t>

<section title="Considerations">

<t>
The source address used, SHOULD NOT cause the ICMP packet to be discarded. It SHOULD NOT be drawn from 
<xref target="RFC1918"/> 
address space, because 
<xref target="RFC1918"/> 
sourced packets are likely to be subject to uRPF 
<xref target="RFC3704"/> 
filtering.
</t>


<t>
IPv4/IPv6 translation is intended for use in contexts where IPv4 addresses may not be readily available,
so it is not considered appropriate to assign IPv4-translatable IPv6
addresses for all internal points in the IPv6 network that may originate
ICMPv6 messages.
</t>

<t>
Another consideration for source selection is that it should be possible for the IPv4 recipients of
the ICMP message to be able to distinguish between different IPv6 network origination of ICMPv6
messages, (for example, to support a traceroute diagnostic utility
that provides some limited network level visibility across the IPv4/IPv6
translator). This consideration implies that an IPv4/IPv6 translator needs to have a
pool of IPv4 addresses for mapping the source address of
ICMPv6 packets generated from different origins, or to include the IPv6 source address information for mapping the source address by others means. 
Currently, the TRACEROUTE and MTR <xref target="MTR"/> are the only consumers of
translated ICMPv6 messages that care about the ICMPv6 source address.
</t> 

</section>
<section title="Recommendations">
<t>
The recommended approach to source selection is to use the a single (or small pool) of public IPv4 address as the source address of the translated ICMP message and leverage ICMP extension  <xref target="RFC5837"/> to include IPv6 address as an Interface IP Address Sub-Object.
</t>
</section>
</section>


<section title="ICMP Extension">
<t>
   In the case of either a single public IPv4 address (the IPv4 interface address or loopback address of the translator)      
    or a pool of public IPv4 addresses, the translator SHOULD implement ICMP extension defined by <xref target="RFC5837"/>. 
   The ICMP message SHOULD
   include the Interface IP Address Sub-Object, and specify the source IPv6
   addresses of the original ICMPv6. When an enhanced traceroute
   application is used, it can derive the real IPv6 source addresses which generated the
   ICMPv6 messages. Therefore, it would be able improve on visibility towards the origin rather than simply blackholing at or beyond the translator.

   In the future, a new ICMP extension whose presence 
   indicates that the packet has been translated and that the source 
   address belongs to the translator, not the originating node can also 
   be considered.
</t>
</section>


<section title="Stateless Address Mapping Algorithm">

<t>
   If a pool of public IPv4 addresses is configured on the translator,
   it is RECOMMENDED to randomly select the IPv4 source address from the
   pool.  Random selection reduces the probability that two ICMP
   messages elicited by the same TRACEROUTE might specify the same
   source address and, therefore, erroneously present the appearance of
   a routing loop.  
</t>
<t>
 <xref target="RFC5837"/> 
extensions and an enhanced traceroute application, if used, will
   reveal the IPv6 source addresses which generated the original ICMPv6 messages.

</t>

</section>



<section title="Security Considerations">
<t>
This document recommends the generation of IPv4 ICMP messages from IPv6 ICMP messages. These messages would otherwise have been discarded. It is not expected that new considerations result from this change. As with a number of ICMP messages, a spoofed source address may result in replies arriving at hosts that did not expect them using the facility of the translator.</t>

</section>

<section title="IANA Considerations">
<t>
There is no consideration requested of IANA.
</t>
</section>

<section title="Acknowledgments">
<t>
The authors would like to acknowledge the following contributors 
of this document: Kevin Yin, Chris Metz, Neeraj Gupta and Joel Jaeggli. The authors would also like to thank 	Ronald Bonica, Ray Hunter, George Wes, Yu Guanghui, Sowmini Varadhan, David Farmer, Fred Baker, Leo Vegoda, Joel Jaeggli, Henrik Levkowetz, Henrik Levkowetz, Randy Bush and Warren Kumari for their comments and suggestions. 
</t>
</section>

</middle>

<back>
<references title="Normative References"> 
<?rfc include='reference.RFC.6145' ?>
<?rfc include='reference.RFC.2119' ?>
<?rfc include='reference.RFC.3704' ?>
<?rfc include='reference.RFC.1918' ?>
<?rfc include='reference.RFC.5837' ?>
<?rfc include='reference.RFC.4443' ?>
<?rfc include='reference.RFC.6052' ?>

</references> 

<references title="Informative References"> 

<reference anchor="MTR">
<front>
<title>http://www.bitwizard.nl/mtr/</title>
<author initials='' surname='' fullname=''><organization/></author>
<date month="" year="" />
</front>
	</reference>

</references> 

</back>
</rfc>


