【HCIE-08】NAT64

  • 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 地址")

  1. IPv6→IPv4 必须显式关联 IPv4 地址:IPv6 地址空间(128 位)远大于 IPv4(32 位),是 "多对少" 的压缩转换,必须指定真实可用的 IPv4 地址(或地址池),否则 IPv4 侧无法识别和回包;
  2. IPv4→IPv6 看似无关联实则隐藏 :不是不需要 IPv4 地址,而是通过2002::/96前缀将 IPv4 地址嵌入 IPv6 地址(如2002::1.1.1.1),设备会自动剥离前缀还原 IPv4 地址,本质仍依赖 IPv4 地址关联;
  3. 为何不能用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那边端口则无需

  1. 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服务器)

  1. AR1发起请求

◦ 源:2001:db8::100:50000

◦ 目的:64:ff9b::203.0.113.10:80(DNS64合成)

◦ 路由指向NAT64网关

  1. 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网络

  1. IPv4服务器接收

◦ 收到IPv4包:源198.51.100.1:30000,目的203.0.113.10:80

三、反向回包(IPv4服务器→NAT64→AR1)

  1. 服务器回包

◦ 源:203.0.113.10:80

◦ 目的:198.51.100.1:30000,发送到NAT64网关

  1. 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侧

  1. AR1接收

◦ 收到IPv6包:源64:ff9b::203.0.113.10:80,目的2001:db8::100:50000,完成通信

四、关键总结

• 正向:IPv6→IPv4,做源SNAT+目的地址提取+协议转换,建立会话表

• 反向:IPv4→IPv6,基于会话表逆向转换,保证原路返回

• 核心依赖:DNS64合成地址+NAT64会话表+有状态转换,实现纯IPv6主机访问纯IPv4资源

相关推荐
DM今天肝到几点?21 分钟前
AI 安全进入「攻防同频」:Gemini 3.8 Flash Cyber 上线、Astra 触及关键级、HiddenLayer 融资 1 亿美元
网络·人工智能·深度学习·安全·语言模型·开源·知识图谱
幼儿园蛋小黑1 小时前
TCP 并发:从原理到高并发实践
网络·网络协议·tcp/ip
开心大爆炸3 小时前
xrdp 连接 登录对话框输入密码后闪退
linux·运维·服务器
我爱cope3 小时前
【计算机网络 | 网络层11:ICMP 协议:Ping 和 Traceroute 的底层原理】
网络·学习·计算机网络
oushaojun23 小时前
大厂 C++ 面试:深度剖析 Linux Signal 信号机制(转)
linux
Latticy3 小时前
vulnhub系列靶机-Photographer
网络·网络安全·内网渗透·内网
爱浦路 IPLOOK3 小时前
矿山无人化作业5G专网方案:企业专网核心网络选型分析
网络·分布式·科技·5g·信息与通信
制冷技术咨询与服务3 小时前
某纯电牵引车的CAN网络3
网络·某纯电牵引车的can网络2
苏生Susheng4 小时前
【软件实施】Linux系统Shell脚本教程
linux·运维·服务器·chrome·spring boot·学习·实施
曹牧4 小时前
C#:文本文件读取
服务器·前端·c#