Explicit Address Mappings for Stateless IP/ICMP Translation
Extracted elements (19)
In the 464XLAT use case, when the CLAT lacks a dedicated IPv6 prefix and uses a single interface address that is not IPv4-translatable, EAMs allow that address to be mapped to the IPv4 Service Continuity Prefix address, enabling stateless translation without IPv4-translatable addressing.
IVI embeds IPv4 addresses in a 40-bit translation prefix with a non-RFC-6052 layout (bits 33-40 set to 1, IPv4 in bits 41-72). EAMs allow SIIT to support this address format by expressing the IVI mapping as a /0-to-/40 EAM entry.
SIIT-DC uses EAMs to map individual IPv4 addresses to specific native IPv6 addresses of data-center services, avoiding the operational and routing overhead of assigning secondary IPv4-translatable addresses throughout the IPv6-only data center.
SIIT with IPv4-translatable addresses requires a secondary address 'stack' that creates routing complexity, operational complexity, and restricted address formats incompatible with EUI-64-based autoconfiguration. EAMs remove the constraint that IPv6 nodes communicating via SIIT must use IPv4-translatable addresses.
Two IPv6 nodes both covered by EAMs may attempt to communicate through the translator using IPv4-converted addresses, causing the response packet's source address to differ from the destination the initiator used, breaking bidirectional communication. Hairpinning support resolves this by retranslating packets that would loop back through the translator.
Configuring EAMs with overlapping or identical IPv4 or IPv6 prefixes may produce asymmetric address translations, potentially making bidirectional communication impossible. Implementations MAY warn operators when overlapping EAMs are inserted or refuse to insert EAMs with identical prefix values.
EAM translation does not replace RFC 6052; when no matching EAM exists, RFC 6052 mapping is used. Within a single packet, one address field may be translated via EAM while the other is translated via RFC 6052.
When one or both address fields are translated via the EAM algorithm, checksum neutrality cannot be guaranteed even when using the well-known prefix 64:ff9b::/96. This differs from pure RFC 6052 translations.
An EAM's IPv4 prefix value MUST have an identical or smaller number of suffix bits than its corresponding IPv6 prefix value, ensuring enough IPv6 space to embed the IPv4 suffix.
An SIIT implementation SHOULD include a hairpinning feature, and the feature SHOULD be enabled by default. Two approaches are defined: simple hairpinning (modifies IPv4-to-IPv6 pass) and intrinsic hairpinning (loops packet through a second translation).
During the second (hairpin) translation pass from IPv4 back to IPv6, the Hop Limit field SHOULD NOT be decremented.
If no matching EAM entry is found during IPv4-to-IPv6 or IPv6-to-IPv4 translation, the EAM algorithm is aborted and the implementation MUST proceed to translate the address according to RFC 6145.
The outcome of the EAM address translation algorithm MUST be the same as described in Section 3.3, though implementations may use a different internal procedure to arrive at that outcome.
Under intrinsic hairpinning, when the destination (or inner source for ICMP errors) was translated via RFC 6052 and is found in the EAMT, the implementation MUST immediately translate the packet back to IPv6 before forwarding, applying simple hairpinning rules during the second pass.
Under simple hairpinning, for non-ICMPv4-error packets, the EAM algorithm MUST NOT be used to translate the source address in the IPv4 header; for ICMPv4 errors, the EAM algorithm MUST NOT be used for the inner destination address.
An EAM consists of an IPv4 prefix and an IPv6 prefix. If the prefix length is omitted, it defaults to /32 for IPv4 and /128 for IPv6. The IPv4 prefix MUST have an identical or smaller number of suffix bits than its corresponding IPv6 prefix.
IPv4-to-IPv6 translation: find longest-prefix match in EAMT, remove IPv4 prefix bits, prepend IPv6 prefix bits, and pad with trailing zeros to reach 128 bits. IPv6-to-IPv4 translation: find longest-prefix match, remove IPv6 prefix bits, prepend IPv4 prefix bits, and truncate to 32 bits.
The Explicit Address Mapping Table (EAMT) is a conceptual table where each row (EAM) describes a mapping between an IPv4 prefix and an IPv6 prefix. Implementations MAY include additional columns for proprietary extensions.
The EAM algorithm does not introduce any new security issues beyond those already discussed in Section 7 of RFC 6145 for SIIT.