- IPv4 访问 IPv6 所需的具体配置;
- 为何 IPv6→IPv4 转换必须显式关联 IPv4 地址,而 IPv4→IPv6 看似无需关联(实际是通过 NAT64 前缀隐藏了 IPv4 地址嵌入);
- NAT64 地址的合法格式(如不能写
2001:1.1.1.1,需用2002::1.1.1.1这类规范格式); - 静态 1:1 映射可行但 NAT64 协议强制要求地址包含 IPv4 信息的底层原因(协议设计、回包路径、扩展性)。
核心逻辑(回答"为什么必须包含 IPv4 地址")
- IPv6→IPv4 必须显式关联 IPv4 地址:IPv6 地址空间(128 位)远大于 IPv4(32 位),是 "多对少" 的压缩转换,必须指定真实可用的 IPv4 地址(或地址池),否则 IPv4 侧无法识别和回包;
- IPv4→IPv6 看似无关联实则隐藏 :不是不需要 IPv4 地址,而是通过
2002::/96前缀将 IPv4 地址嵌入 IPv6 地址(如2002::1.1.1.1),设备会自动剥离前缀还原 IPv4 地址,本质仍依赖 IPv4 地址关联; - 为何不能用
2001:1.1.1.1:IPv6 语法规定仅最后一组可替换为 IPv4 格式,且需满足 96 位前缀 + 32 位 IPv4 的结构,2001:1.1.1.1长度和格式均不合法,设备无法识别。
1. 合法的 NAT64 嵌入格式
NAT64 前缀是 2002::/96,后面 32 位正好用来放 IPv4 地址。
- 比如 IPv4 地址
1.1.1.1会被嵌入成:2002::101:101(十六进制)或2002:0:0:0:0:0:1.1.1.1(标准 IPv6 双冒号压缩后) - 这种地址是完全合法的,也是 NAT64 协议规定的格式。
2. 为什么 2001:1.1.1.1 不合法
- IPv6 地址由 8 组 16 进制数组成,用冒号分隔。
- 只有在最后一组,才能用 IPv4 地址格式(
x.x.x.x)来替代两组 16 进制数,而且必须满足前缀长度要求。 2001:1.1.1.1不符合这个规则,它的结构是2001+1.1.1.1,长度不足,会被设备识别为无效地址。
压缩后可以变为2002::1.1.1.1
静态 NAT64 配置

# 全局前缀
nat64 prefix 2002:: 96
# 接口启用
interface GigabitEthernet 1/0/0 # IPv6侧接口
nat64 enable
# 静态映射:2001::1(IPv6主机)→1.1.1.6(IPv4映射地址)
nat64 static 2001::1 1.1.1.6 unr-route
nat64 enable必须写在v6这一端 v4那边端口则无需
unr-route用于自动生成回包路由,是静态映射必加参数。
当nat64前缀设置为2002后2002的地址默认被识别为nat64
所以将该目标地址直接使用nat64转化为v4访问


一开始的前缀是将 目的地址翻译过去 然后源地址靠手工指定 nat64 static
然后就可以成功通信
动态nat
地址池创建后
使用natpolicy 动作源nat绑定地址池
出发回归流程
以AR1为纯IPv6主机、NAT64网关用标准前缀64:ff9b::/96、有状态转换为例,完整流程如下(含源/目的地址与端口转换)。
一、前提与环境
• AR1(IPv6):2001:db8::100,源端口50000
• NAT64网关:IPv6侧2001:db8:64::1;IPv4侧198.51.100.1(地址池);合成前缀64:ff9b::/96
• IPv4服务器:203.0.113.10,目的端口80
• DNS64:将IPv4地址合成IPv6地址(如203.0.113.10→64:ff9b::203.0.113.10)
二、正向发包(AR1→NAT64→IPv4服务器)
- AR1发起请求
◦ 源:2001:db8::100:50000
◦ 目的:64:ff9b::203.0.113.10:80(DNS64合成)
◦ 路由指向NAT64网关
- NAT64网关处理(核心转换)
◦ 检查目的地址前缀匹配64:ff9b::/96,触发NAT64
◦ 提取内嵌IPv4:64:ff9b::203.0.113.10 → 203.0.113.10
◦ 分配网关IPv4:198.51.100.1:30000(地址池+端口转换)
◦ 创建会话表:记录(2001:db8::100:50000, 64:ff9b::203.0.113.10:80) ↔ (198.51.100.1:30000, 203.0.113.10:80)
◦ 封装IPv4报文:源198.51.100.1:30000,目的203.0.113.10:80,转发到IPv4网络
- IPv4服务器接收
◦ 收到IPv4包:源198.51.100.1:30000,目的203.0.113.10:80
三、反向回包(IPv4服务器→NAT64→AR1)
- 服务器回包
◦ 源:203.0.113.10:80
◦ 目的:198.51.100.1:30000,发送到NAT64网关
- NAT64网关反向转换
◦ 接收IPv4包,查会话表匹配目的198.51.100.1:30000
◦ 地址/端口回换:目的→2001:db8::100:50000;源→64:ff9b::203.0.113.10:80
◦ 封装IPv6报文:源64:ff9b::203.0.113.10:80,目的2001:db8::100:50000,转发到IPv6侧
- AR1接收
◦ 收到IPv6包:源64:ff9b::203.0.113.10:80,目的2001:db8::100:50000,完成通信
四、关键总结
• 正向:IPv6→IPv4,做源SNAT+目的地址提取+协议转换,建立会话表
• 反向:IPv4→IPv6,基于会话表逆向转换,保证原路返回
• 核心依赖:DNS64合成地址+NAT64会话表+有状态转换,实现纯IPv6主机访问纯IPv4资源

