]> Network Address Port Translator (NAPT) Any-Source Multicast Requirement Cisco Systems
170 West Tasman Drive San Jose CA 95134 USA dwing@cisco.com
Transport BEHAVE I-D Internet-Draft NAT multicast IGMP IGMPv2 IGMPv3 proxy This document places a requirement on a Network Address Translator (NAT) and Network Address and Port Translator (NAPT) that supports any-source multicast. 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.
For users to accept and enjoy any-source multicast, multicast UDP must work as seamlessly as unicast UDP. However, NATs have little consistency in multicast operation which results in inconsistant user experiences and failed multicast operation.
A multicast NAPT device that adheres to the requirements of this document can optimize the operation of any-source multicast applications that are generally unaware of multicast NAPT devices. This document describes the behavior of a device providing any-source multicast proxy functions as described in using ICMPv1 or ICMPv2, and that additionally functions as a Network Address and Port Translator (NAPT), as described in section 4.1.2 of . Specifically out of scope of this document are PIM-SM, and IPv6. PIM is used only between routers and the IGMP Proxy devices that are scoped in this document do not function as routers. IPv6 is out of scope because NAPT is not considered necessary with IPv6. This document describes how an IGMP Proxy device can NAPT multicast traffic so that existing any-source multicast applications function without awareness the multicast traffic they send has been NAPTted.
When a NAPT isn't used, a host might be connected to the Internet in a configuration such as this:
The primary functions of an IGMP proxy device are to collect IGMP traffic from the 'inside' interface and relay it to the 'outside' interface, and accept multicast traffic from that 'outside' interface and route -- or replicate it -- to the 'inside' interface(s). Packets with a multicast destination IP address do not have their destination IP address changed by a NAPT. However, their source IP address and source UDP port is changed if the packet goes from an 'inside' interface of a NAPT to the 'outside' interface of a NAPT -- similar to the behavior of a a unicast packet.
This document is a companion document to "NAT Behavioral Requirements for Unicast UDP".
If a NAPTed host is receiving any multicasts stream, and that NAPTed host sends UDP traffic to the same multicast address the NAPTed host is receiving, the NAPT MUST have a UDP mapping timer of 60 minutes. If a NAPT has exhausted its resources, the NAPT MAY time out a mapping before 60 minutes have elapsed. However, a NAPT is still required to follow the minimum mapping duration (REQ-5 of ). Discussion: RTP uses the source transport address (source IP address and source UDP port), in addition to the the RTP/RTCP SSRC value, to identify session members. If a session member sees the same SSRC arrive from a different transport address, that session member will perform RTP collision detection (section 8.2 of ). If a NAPT merely followed the requirements of and timed out a UDP session after 2 minutes of inactivity and RTCP receiver reports are sent less often than every 2 minutes, RTP collision detection would be performed by other session members sharing the same SSRC, complicating diagnostic tools. This situation can occur, for example, with a multicast group of approximately 300 members with a normal 50kbps audio RTP stream. To prevent this unnecessary RTP collision detection by other session members, the other session members need to see the same source transport address for the RTP and RTCP traffic from the NAPTed host. This requires the NAPT to assign the same UDP source port for that RTCP traffic. This requirement also facilitates other, non-RTP multicast applications which may function similarly.
There are no special requirements on a NAPT when NAPTing Source-Specific Multicast traffic. This is because with SSM, the RTCP feedback traffic from a NAPTed host is sent to a unicast address and encourages SSM applications to not rely exclusively on transport address for collision detection.
Compliance with this specification does not increase security risks beyond those already discussed in the Security Considerations section of IGMPv3 and IGMP/MLD Proxying.
This document does not require any IANA registrations.
Thanks to Yiqun Cai, Stephen Casner, Marcus Maranhao, Bryan McLaughlin, and Magnus Westerlund for their assistance in writing this document.
&rfc2119; &rfc3376; &rfc2663; &rfc4605; &rfc2236; &I-D.ietf-behave-nat-udp; &rfc3550; &rfc2362; &rfc4604; &rfc1112; &I-D.ietf-avt-rtcpssm;