<?xml version="1.0" encoding="utf-8"?>
<rfc version="3" ipr="trust200902" docName="draft-matolin-global-nat64-anycast-00" submissionType="IETF" category="std" xml:lang="en" xmlns:xi="http://www.w3.org/2001/XInclude" indexInclude="true" consensus="true">

    <front>
        <title abbrev="Global NAT64 Anycast">Global Anycast NAT64 Well-Known Prefix</title>
        <seriesInfo value="draft-matolin-global-nat64-anycast-00" stream="IETF" status="standard" name="Internet-Draft"/>
        <author initials="M." surname="Matolin" fullname="M. Matolin">
            <organization>Valtrix Labs</organization>
            <address>
                <postal>
                    <street/>
                    <city/>
                    <country/>
                </postal>
                <email>meizfl@valtrix.org</email>
            </address>
        </author>
        <date year="2026" month="April" day="16"/>
        <area>Internet</area>
        <workgroup>Internet Area Working Group</workgroup>
        <keyword>NAT64</keyword>
        <keyword>anycast</keyword>
        <keyword>IPv6 transition</keyword>
        <keyword>well-known prefix</keyword>

        <abstract>
            <t>This document defines a globally routable, anycast NAT64 service
                using the IPv6 prefix 2600:6464::/96 as a standardized translation
                substrate for IPv6-to-IPv4 connectivity.</t>
            <t>The goal of this specification is to eliminate per-network NAT64
                configuration complexity by introducing a single globally consistent
                NAT64 translation prefix operated as a distributed anycast service
                by participating Internet Service Providers, cloud providers, and
                content delivery networks.</t>
            <t>The model assumes an IPv6-only client environment with mandatory
                IPv4 reachability via NAT64 translation. IPv4-only services remain
                reachable without modification.</t>
            <t>IPv4 is not modified. IPv6 is not modified. Only translation
                placement and routing semantics are standardized.</t>
            <t>This document defines:</t>
            <ul spacing="compact">
                <li>A globally shared NAT64 prefix (2600:6464::/96)</li>
                <li>Anycast-based NAT64 edge behavior</li>
                <li>Stateless IPv6-to-IPv4 synthesis rules</li>
                <li>Optional reverse mapping constraints (IPv4->IPv6 blocked)</li>
                <li>Operational requirements for participating networks</li>
            </ul>
        </abstract>

    </front>

    <middle>

        <section anchor="introduction"><name>Introduction</name>

            <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
                NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
                "MAY", and "OPTIONAL" in this document are to be interpreted as
                described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/>
                when, and only when, they appear in all capitals, as shown here.</t>

            <t>NAT64 <xref target="RFC6146"/> enables IPv6-only clients to communicate with IPv4
                servers via protocol translation. Current deployments require
                per-operator configuration of NAT64 prefixes, DNS64 behavior, and
                stateful translation pools.</t>
            <t>This document proposes a globally standardized NAT64 prefix:</t>
            <t>2600:6464::/96</t>
            <t>and defines its use as a globally anycasted translation endpoint.</t>
            <t>Instead of each operator deploying isolated NAT64 infrastructure,
                participating networks announce the prefix via BGP anycast,
                allowing the nearest translation edge to handle synthesis.</t>
        </section>

        <section anchor="motivation"><name>Motivation</name>
            <t>Current NAT64 deployments suffer from:</t>
            <ul spacing="compact">
                <li>inconsistent prefix selection (multiple well-known prefixes)</li>
                <li>fragmented operational models</li>
                <li>lack of global routing consistency</li>
                <li>duplicated stateful NAT infrastructure per operator</li>
            </ul>
            <t>This leads to:</t>
            <ul spacing="compact">
                <li>operational overhead</li>
                <li>inconsistent debugging models</li>
                <li>lack of deterministic routing behavior</li>
            </ul>
            <t>A single global NAT64 anycast prefix provides:</t>
            <ul spacing="compact">
                <li>deterministic synthesis behavior</li>
                <li>reduced operational complexity</li>
                <li>unified debugging and telemetry model</li>
                <li>elimination of per-network NAT64 planning</li>
            </ul>
        </section>

        <section anchor="prefix-allocation"><name>Prefix Allocation</name>
            <t>The IPv6 prefix 2600:6464::/96 is reserved as:</t>
            <t><strong>Global NAT64 Anycast Translation Prefix</strong></t>
            <t>Characteristics:</t>
            <ul spacing="compact">
                <li>MUST be routed via BGP anycast</li>
                <li>MUST NOT be subnetted beyond /96</li>
                <li>MUST NOT be used for non-translation purposes</li>
                <li>MUST be implemented by participating NAT64 edges</li>
            </ul>
            <t>The last 32 bits represent the IPv4 address being synthesized.</t>
            <t>Example:</t>
            <t>2600:6464::0808:0808 -> 8.8.8.8</t>
            </section>

            <section anchor="anycast-nat64-architecture"><name>Anycast NAT64 Architecture</name>
                <t>Participating operators advertise 2600:6464::/96 globally.</t>
                <t>Routing behavior:</t>
                <t>Client -> nearest NAT64 edge (anycast)<br/>
                -> stateful or stateless translation<br/>
                -> IPv4 Internet</t>
            <t>The architecture is intentionally stateless at routing level and
                stateful at translation edge only.</t>
            <t>All NAT state is local to the terminating edge.</t>
        </section>

        <section anchor="ipv6-to-ipv4-mapping"><name>IPv6-to-IPv4 Mapping</name>
            <t>Mapping rule:</t>
            <t>IPv6 address = 2600:6464:0:0:W.X.Y.Z</t>
            <t>Where:</t>
            <ul spacing="compact">
                <li>W.X.Y.Z is IPv4 destination</li>
                <li>NAT64 edge extracts IPv4 literal</li>
                <li>packet is translated and forwarded</li>
            </ul>
            <t>No DNS dependency is required if literal IPv4 embedding is used.</t>
        </section>

        <section anchor="dns64-interaction"><name>DNS64 Interaction</name>
            <t>DNS64 MAY synthesize AAAA records using prefix 2600:6464::/96.</t>
            <t>Example:</t>
            <t>A record: example.com -> 93.184.216.34</t>
            <t>Synthesized AAAA:<br/>
                2600:6464::5db8:d822</t>
            <t>DNSSEC considerations:</t>
            <ul spacing="compact">
                <li>synthesis occurs after validation</li>
                <li>no modification to authoritative DNS required</li>
            </ul>
        </section>

        <section anchor="reverse-traffic-policy"><name>Reverse Traffic Policy</name>
            <t>IPv4 -> IPv6 direct access via NAT64 prefix is explicitly disallowed.</t>
            <t>Reason:</t>
            <ul spacing="compact">
                <li>prevents external injection into IPv6 space</li>
                <li>preserves IPv6-only security boundary model</li>
                <li>avoids bidirectional NAT ambiguity</li>
            </ul>
            <t>Only IPv6-originated sessions MAY traverse NAT64 edges.</t>
        </section>

        <section anchor="operational-requirements"><name>Operational Requirements</name>
            <t>Any network participating in global NAT64 anycast MUST:</t>
            <ul spacing="compact">
                <li>announce 2600:6464::/96 via BGP</li>
                <li>implement IPv4 translation backend</li>
                <li>support at least 10M concurrent NAT sessions</li>
                <li>provide per-edge state isolation</li>
                <li>implement deterministic failover within anycast cluster</li>
            </ul>
            <t>SHOULD:</t>
            <ul spacing="compact">
                <li>log translation mappings (privacy-aware)</li>
                <li>support stateless mapping mode for CDN workloads</li>
                <li>expose telemetry via standard API</li>
            </ul>
        </section>

        <section anchor="security-considerations"><name>Security Considerations</name>
            <t>Threat model includes:</t>
            <ul spacing="compact">
                <li>NAT64 edge spoofing</li>
                <li>prefix hijacking via BGP</li>
                <li>session state exhaustion attacks</li>
            </ul>
            <t>Mitigations:</t>
            <ul spacing="compact">
                <li>RPKI validation for prefix 2600:6464::/96</li>
                <li>strict ingress filtering at NAT edges</li>
                <li>per-source rate limiting</li>
                <li>mandatory DNS64 validation where applicable</li>
            </ul>
            <t>Anycast NAT64 edges MUST NOT forward packets without valid
                IPv4 extraction context.</t>
        </section>

        <section anchor="iana-considerations"><name>IANA Considerations</name>
            <t>IANA is requested to:</t>
            <ul spacing="compact">
                <li>reserve 2600:6464::/96 as "Well-Known Global NAT64 Anycast Prefix"</li>
                <li>register NAT64 anycast service type identifier</li>
                <li>document routing constraints for global translation services</li>
            </ul>
        </section>

        <section anchor="acknowledgements"><name>Acknowledgements</name>
            <t>Inspired by decades of NAT64 deployments, CGNAT scaling pain,
                and the universal human desire to stop dealing with IPv4.</t>
        </section>

    </middle>

    <back>

        <references>
            <name>References</name>

            <references>
                <name>Normative References</name>
                <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
                    <front>
                        <title>Key words for use in RFCs to Indicate Requirement Levels</title>
                        <author fullname="S. Bradner" initials="S." surname="Bradner"/>
                        <date year="1997" month="March"/>
                    </front>
                    <seriesInfo name="BCP" value="14"/>
                    <seriesInfo name="RFC" value="2119"/>
                </reference>
                <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
                    <front>
                        <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
                        <author fullname="B. Leiba" initials="B." surname="Leiba"/>
                        <date year="2017" month="May"/>
                    </front>
                    <seriesInfo name="BCP" value="14"/>
                    <seriesInfo name="RFC" value="8174"/>
                </reference>
                <reference anchor="RFC6146" target="https://www.rfc-editor.org/info/rfc6146">
                    <front>
                        <title>Stateful NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers</title>
                        <author fullname="M. Bagnulo" initials="M." surname="Bagnulo"/>
                        <author fullname="P. Matthews" initials="P." surname="Matthews"/>
                        <author fullname="I. van Beijnum" initials="I." surname="van Beijnum"/>
                        <date year="2011" month="April"/>
                    </front>
                    <seriesInfo name="RFC" value="6146"/>
                </reference>
            </references>

            <references>
                <name>Informative References</name>
            </references>

        </references>

    </back>

</rfc>
