Internet DRAFT - draft-sarikaya-behave-mcast4nat64
draft-sarikaya-behave-mcast4nat64
Network Working Group B. Sarikaya
Internet-Draft Huawei USA
Intended status: Standards Track T. Kiviniemi
Expires: July 11, 2013 CSC
January 7, 2013
Multicast Support for NAT64
draft-sarikaya-behave-mcast4nat64-07.txt
Abstract
This memo specifies modifications required to NAT64 so that IPv6 only
hosts can receive multicast data from IPv4 only servers. The
protocol is based on translating IPv4 multicast data before
delivering it to the host in IPv6. The protocol also allows IPv6
only host to join IPv4 any source/ source specific multicast group in
IPv6 using Multicast Listener Discovery protocol.
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on July 11, 2013.
Copyright Notice
Copyright (c) 2013 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
Sarikaya & Kiviniemi Expires July 11, 2013 [Page 1]
Internet-Draft Multicast for NAT64 January 2013
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 3
4. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . 3
5. NAT64 Multicast Operation . . . . . . . . . . . . . . . . . . 5
5.1. Address Translation . . . . . . . . . . . . . . . . . . . 5
5.1.1. Learning Multicast Prefixes for IPv4-embedded
IPv6 Multicast Addresses . . . . . . . . . . . . . . . 6
5.2. Protocol Translation . . . . . . . . . . . . . . . . . . . 7
5.2.1. Differences with IP/ICMP Translation . . . . . . . . . 8
5.2.2. PIM versus IGMP . . . . . . . . . . . . . . . . . . . 8
6. Security Considerations . . . . . . . . . . . . . . . . . . . 9
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 9
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 9
9.1. Normative References . . . . . . . . . . . . . . . . . . . 9
9.2. Informative references . . . . . . . . . . . . . . . . . . 10
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11
Sarikaya & Kiviniemi Expires July 11, 2013 [Page 2]
Internet-Draft Multicast for NAT64 January 2013
1. Introduction
With IPv4 address depletion on the horizon, many techniques are being
standardized for IPv6 migration including NAT64 [RFC6146]. NAT64
together with DNS64 [RFC6147] and the translation algorithm [RFC6145]
enables IPv6-only hosts to communicate with IPv4-only servers.
NAT64 currently supports only unicast communication [RFC6146],
[RFC6145], [RFC6052]. With the advent of IPTV and Mobile IPTV, there
is a need to provide support for multicast communication as well.
The document continues in Section 3 with a set of requirements on a
solution for NAT64 multicast support. In Section 4 the architecture
is presented. Multicast translation protocol is explained in
Section 5.
2. Terminology
This document uses the terminology defined in [RFC6146], [RFC6145],
[RFC6052], [I-D.ietf-mboned-64-multicast-address-format], [RFC3810]
and [RFC3376].
3. Requirements
This section states requirements on NAT64 translation protocol.
The protocol MUST support IPv4-embedded IPv6 multicast addresses as
defined in [I-D.ietf-mboned-64-multicast-address-format]. The
translation protocol MUST enable an IPv6 only host to join IPv4
multicast groups where IPv6 only host identifies IPv4 groups using
IPv4-embedded IPv6 multicast addresses.
Both any source multicast (ASM) and source specific multicast (SSM)
MUST be supported.
In IPv4 network, Protocol Independent Multicast routing MAY be
supported. In IPv4 network, Internet Group Management Protocol
routing MAY be supported.
User Datagram Protocol (UDP) MUST be supported. Transmission Control
Protocol (TCP) MAY be supported.
4. Architecture
We consider an IPv6 only host (Host 1, H1) that wishes to receive
Sarikaya & Kiviniemi Expires July 11, 2013 [Page 3]
Internet-Draft Multicast for NAT64 January 2013
multicast data sent to IPv4 multicast groups, sent by an IPv4 only
host (Host 2, H2). Multicast data sent to an IPv4 multicast group
such as 232.1.2.3 must be translated into an IPv6 multicast group
data such as FF3E::232.1.2.3. So a translator element is needed in
the architecture. The translator has to be connected simultaneously
into IPv4 network and IPv6 network.
+---------------------------+ +---------------+
| | | |
|IPv6 network +-------+ | IPv4 |
| | +-----+ |IGMPv3 | | Network |
| |--| MLD | |Client | -- | |
| | +-----+ +-------+ | +----+ |
| +----+ | +------+ |--- | H2 | |
| | H1 |---| | PIM | --- | +----+ |
| +----+ | +------+ | 232.1.2.3 |
|FF3E:: | +-----------+ | |
| 232.1.2.3|----- |Translator |---- | |
| | +-----------+ | |
| | | | |
+---------------------------+ +---------------+
Figure 1: Key elements of NAT64 Multicast Translator
In order to receive multicast data, the host H1 must first subscribe
to the multicast group of interest. In IPv6 this is done using MLD
protocol [RFC3810] by sending MLD Membership Report message
indicating the group address which should have an IPv4 multicast
group address embedded such as FF3E::232.1.2.3. MLD entity has to
communicate the group membership information to an entity that
supports wide-area multicast routing protocol such as PIM [RFC3973],
[RFC4601], [RFC5015]. PIM supports both IPv4 and IPv6.
IPv4 group address in MLD membership Report message should be
communicated to an entity that supports IGMP protocol [RFC3376]. So
an IGMP Client is needed to handle joining and leaving IPv4 multicast
groups by sending IGMPv3 Report messages to IPv4 network. Once IGMP
Client subscribes to an IPv4 multicast group, all IPv4 multicast
packets can be received from the interface connected to IPv4 network.
The translator translates such packets into IPv6 multicast data
packets and forwards them to IPv6 network which delivers it to IPv6
hosts that have joined the corresponding IPv6 multicast group.
All the elements of NAT64 multicast translation system are shown in
Figure 1. Not shown in the figure are MLD Proxies which are located
in Host 1's first hop router. MLD Proxy optimizes MLD operation by
providing only aggregate multicast group membership information to
the upstream MLD router and duplicating multicast data at a place
Sarikaya & Kiviniemi Expires July 11, 2013 [Page 4]
Internet-Draft Multicast for NAT64 January 2013
close to the hosts.
Note that the architecture in Figure 1 is generic and does not
prescribe any solution as to where in a real network the different
components can be hosted or whether the architecture can be
duplicated in the same network. While in unicast communication
multiple NAT64 boxes can be supported in an operator's network using
multiple Pref64s, in multicast NAT64 the same does not hold because
IPv6 only hosts do not send multicast data. The elements in the
architecture in Figure 1 are best placed in where the designated MLD
router/ querier is hosted. In broadband networks Broadband Network
Gateway (BNG), in 3GPP networks Packet Data Network Gateway (P-GW)
are the candidates for such a placement. This implies that NAT64
multicast translator may be hosted in a different network element
than NAT64 unicast translator [RFC6146].
5. NAT64 Multicast Operation
In this section we specify how the host can receive IPv4 multicast
data from IPv4-only content provider based on the architecture
defined in Section 4. The reverse translation of IPv6 multicast data
for IPv4-only receivers is out of scope. Multicast translation
involves address translation defined in Section 5.1 and protocol
(IPv4 to IPv6) translation defined in Section 5.2.
5.1. Address Translation
IPv6-only H1 will join IPv4 multicast group by sending MLD Membership
Report message upstream towards the MLD entity in Figure 1. H1 MUST
use synthesized IPv6 address of IPv4 multicast group address using
IPv4-embedded IPv6 multicast address format
[I-D.ietf-mboned-64-multicast-address-format]. ASM_MPREFIX64 for any
source multicast groups and SSM_MPREFIX64 for source specific
multicast groups are used. Both are /96 prefixes.
In both ASM_MPREFIX64 and SSM_MPREFIX64, M bit MUST be set to 1 to
indicate that an IPv4 address is embedded in the last 32 bits of the
multicast IPv6 address. ASM_MPREFIX64 values are formed by setting
flgs bits to make it an embedded RP prefix by setting R bit to 1 and
P and T bits to 1 as shown in Figure 2 [RFC4291], [RFC3306],
[RFC3956].
| 8 | 4 | 4 | 4 | 76 | 32 |
+--------+----+----+----+------------------------------+----------+
|11111111|0111|scop|1000| sub-group-id |v4 address|
+--------+----+----+----+-----------------------------------------+
Sarikaya & Kiviniemi Expires July 11, 2013 [Page 5]
Internet-Draft Multicast for NAT64 January 2013
Figure 2: ASM_MPREFIX64 Formation
Each translator is assigned a unique ASM_MPREFIX64 prefix. The hosts
can learn this value by means out of scope with this document. With
this, the host can easily create an IPv6 multicast address from the
IPv4 group address a.b.c.d that it wants to join.
Source-Specific Multicast (SSM) can also be supported similar to the
Any Source Multicast (ASM) described above. In case of SSM, IPv4
multicast addresses use 232.0.0.0/8 prefix. IPv6 SSM_MPREFIX64
values are formed by setting R bit to zero, P and T bits to 1. This
gives FF3x00008x::/96 as the SSM prefix. This prefix is referred to
as SSM_PREFIX64 Figure 3.
| 8 | 4 | 4 | 16 | 4 | 60 | 32 |
+--------+----+----+-----------+----+------------------+----------+
|11111111|0011|scop|00.......00|1000| sub-group-id |v4 address|
+--------+----+----+-----------+----+------------------+----------+
Figure 3: SSM_MPREFIX64 Formation
Since SSM translation requires a unique address for each IPv4
multicast source, an IPv6 unicast prefix must be configured to the
translator to represent IPv4 sources. This prefix is prepended to
IPv4 source addresses in translated packets.
The join message from the host for the group ASM_MPREFIX64:a.b.c.d or
SSM_MPREFIX64:a.b.c.d or an aggregate join message will be received
by MLD entity in the translator. The translator as multicast anchor
checks the group address and recognizes ASM_MPREFIX64 or
SSM_MPREFIX64 prefix. It next checks the last 32 bits is an IPv4
multicast address in range 224/8 - 239/8. If all checks succeed,
IGMPv4 Client joins a.b.c.d using IGMP on its IPv4 interface.
Joining IPv4 groups can also be done using PIM since PIM supports
both IPv4 and IPv6. The advantage of using PIM is that there is no
need to enable IGMP support in neighboring IPv4 routers. The
advantage of using IGMP is that IGMP is a simpler protocol and it is
supported by a wider range of routers. The use of PIM or IGMP is
left as an implementation choice.
5.1.1. Learning Multicast Prefixes for IPv4-embedded IPv6 Multicast
Addresses
The hosts can be pre-configured with Multicast Prefix64 of
ASM_MPREFIX64 and SSM_MPREFIX64 that are supported in their network.
However automating this process is also desired.
[I-D.sarikaya-softwire-6man-raoptions] describes a Router
Sarikaya & Kiviniemi Expires July 11, 2013 [Page 6]
Internet-Draft Multicast for NAT64 January 2013
Advertisement based method which is suitable for mobile hosts
accessing 3GPP networks.
A new DHCPv6 option, OPTION_AFT_PREFIX_DHCP, can be defined for this
purpose. The option contains IPv6 ASM and SSM prefixes. The host
can request these prefixes by sending this option in its request to
the DHCP server and the server replies with the option containing the
prefixes.
After the host gets the multicast prefixes, when an application in
the host wishes to join an IPv4 multicast group the host MUST use
ASM_MPREFIX64 or SSM_MPREFIX64 and then obtain the synthesized IPv6
group address before sending MLD join message.
5.2. Protocol Translation
Translator, after processing the addresses will then translate IPv4
multicast data packet into an IPv6 multicast data packet. The
destination address is IPv6 group address ASM_MPREFIX64::a.b.c.d and
source address is the translator's IPv6 interface address. The value
in Type of Service (TOS) field of IPv4 packet is copied into IPv6
Traffic Class field. IPv4 Protocol and TTL fields are copied into
IPv6 Next Header and Hop Limit fields respectively. IPv4 payload is
copied into IPv6 payload. UDP checksum is updated which completes
the packet translation process [Thesis]. The packet is sent towards
the host and on its way it may be duplicated for each member of this
group and then sent to the individual host separately.
Any IPv4 fragments sent by the routers must be translated into IPv6
packets with IPv6 Fragment Header. Fragmentation Offset field is
copied into the corresponding field in the Fragment Header. 16-bit
Identification field is copied into the low-order 16 bits of IPv6
Fragment Header Identification field. The high-order bits of the 32-
bit IPv6 Fragment Header Identification field are set to zero. More
Fragments (MF) flag is copied to the corresponding field in IPv6
Fragment Header [Thesis].
Multicast translation described in this section is not specific to
the hosts. Translator gets the join message from the host and then
updates the membership database. Translator and any MLD Proxies
downstream have to know all members of each IPv4 group so that they
can correctly duplicate the data packets and deliver to the
individual hosts.
Also this prefix must be routed towards the translator on the IPv6
network, to enable reverse path forwarding for multicast, and to
inform other PIM routers about the correct destination for PIM (S,G)
Join messages [Thesis].
Sarikaya & Kiviniemi Expires July 11, 2013 [Page 7]
Internet-Draft Multicast for NAT64 January 2013
5.2.1. Differences with IP/ICMP Translation
The Stateless IP/ICMP translation [RFC6145] is designed for unicast
communication. IP/ICMP Translation uses a different address
translation than multicast address translation described Section 5.1.
However some parts of IP/ICMP Translation can be used in multicast
translation. In this section we describe the differences of IP/ICMP
Translation with NAT64 translation.
IP/ICMP Translation translates IPv4 packets into IPv6 using minimum
MTU size of 1280 bytes. However in DVB-IPTV data streams, 1364 byte
IPv6 packets need to be supported. NAT64 translator must perform
IPv6 path MTU discovery and set the MTU size accordingly, not
necessarily always to 1280 byte MTU size. Note that IPv4 routers
must not send ICMPv4 error message in response to a multicast packet
[RFC1812] while in IPv6 this is not the case which enables path MTU
discovery for multicast. Path MTU values are kept in the translator
for each multicast group. However, for SSM, a different MTU value
MUST be kept for each SSM channel.
IP/ICMP Translation does not require transport layer checksum
modifications because the prefixes used in IP/ICMP Translation are
checksum neutral. NAT64 translator must however modify the UDP
checksum to replace the IPv4 addresses with the IPv6 source and
destination addresses in the pseudo-header which consists of source
address, destination address, protocol and UDP length fields before
calculating the new checksum.
5.2.2. PIM versus IGMP
To handle joining and leaving IPv4 multicast groups, PIM client
instead of IGMPv3 client as mentioned in Section 4 can be used. With
IGMPv3, SSM support requires that all neighboring routers support
IGMPv3. If they support IGMPv1 or IGMPv2 the translator has to also
support IGMPv1 or IGMPv2 for compatibility and as a result, SSM could
not be supported.
SSM can be supported with a PIM Client at the translator. There are
other advantages of having PIM client at the translator. PIM can
communicate with neighboring IPv4 routers over flexible connections.
The need to enable IGMP in the neighboring routers is removed if PIM
is used.
On the other hand, IGMP, being a simpler protocol than PIM, is more
widely supported. IGMP does not need to know the location of
rendezvous points (RP) which makes it easier to configure the
translator.
Sarikaya & Kiviniemi Expires July 11, 2013 [Page 8]
Internet-Draft Multicast for NAT64 January 2013
6. Security Considerations
Security considerations for IPv4 interface of the translator is
similar to [RFC6146] and the considerations stated there apply.
7. IANA Considerations
TBD.
8. Acknowledgements
TBD.
9. References
9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2629] Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629,
June 1999.
[RFC1812] Baker, F., "Requirements for IP Version 4 Routers",
RFC 1812, June 1995.
[RFC3810] Vida, R. and L. Costa, "Multicast Listener Discovery
Version 2 (MLDv2) for IPv6", RFC 3810, June 2004.
[RFC3376] Cain, B., Deering, S., Kouvelas, I., Fenner, B., and A.
Thyagarajan, "Internet Group Management Protocol, Version
3", RFC 3376, October 2002.
[RFC3973] Adams, A., Nicholas, J., and W. Siadak, "Protocol
Independent Multicast - Dense Mode (PIM-DM): Protocol
Specification (Revised)", RFC 3973, January 2005.
[RFC3306] Haberman, B. and D. Thaler, "Unicast-Prefix-based IPv6
Multicast Addresses", RFC 3306, August 2002.
[RFC3956] Savola, P. and B. Haberman, "Embedding the Rendezvous
Point (RP) Address in an IPv6 Multicast Address",
RFC 3956, November 2004.
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing
Sarikaya & Kiviniemi Expires July 11, 2013 [Page 9]
Internet-Draft Multicast for NAT64 January 2013
Architecture", RFC 4291, February 2006.
[RFC4601] Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas,
"Protocol Independent Multicast - Sparse Mode (PIM-SM):
Protocol Specification (Revised)", RFC 4601, August 2006.
[RFC5015] Handley, M., Kouvelas, I., Speakman, T., and L. Vicisano,
"Bidirectional Protocol Independent Multicast (BIDIR-
PIM)", RFC 5015, October 2007.
[RFC6052] Bao, C., Huitema, C., Bagnulo, M., Boucadair, M., and X.
Li, "IPv6 Addressing of IPv4/IPv6 Translators", RFC 6052,
October 2010.
[RFC6146] Bagnulo, M., Matthews, P., and I. van Beijnum, "Stateful
NAT64: Network Address and Protocol Translation from IPv6
Clients to IPv4 Servers", RFC 6146, April 2011.
[RFC6145] Li, X., Bao, C., and F. Baker, "IP/ICMP Translation
Algorithm", RFC 6145, April 2011.
[RFC6147] Bagnulo, M., Sullivan, A., Matthews, P., and I. van
Beijnum, "DNS64: DNS Extensions for Network Address
Translation from IPv6 Clients to IPv4 Servers", RFC 6147,
April 2011.
[I-D.ietf-mboned-64-multicast-address-format]
Boucadair, M., Qin, J., Lee, Y., Venaas, S., Li, X., and
M. Xu, "IPv6 Multicast Address With Embedded IPv4
Multicast Address",
draft-ietf-mboned-64-multicast-address-format-04 (work in
progress), August 2012.
9.2. Informative references
[I-D.sarikaya-softwire-6man-raoptions]
Sarikaya, B., "IPv6 RA Options for Translation Multicast
Prefixes", draft-sarikaya-softwire-6man-raoptions-00 (work
in progress), August 2012.
[Thesis] Teemu Kiviniemi, Helsinki University of Technology,
Master's Thesis, "Implementation of an IPv4 to IPv6
Multicast Translator", October 2009.
Sarikaya & Kiviniemi Expires July 11, 2013 [Page 10]
Internet-Draft Multicast for NAT64 January 2013
Authors' Addresses
Behcet Sarikaya
Huawei USA
5340 Legacy Drive, Suite 175
Plano, TX 75074
Phone: +1 469-277-5700
Email: sarikaya@ieee.org
Teemu Kiviniemi
CSC
Phone:
Email: teemu.kiviniemi@csc.fi
Sarikaya & Kiviniemi Expires July 11, 2013 [Page 11]