【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资源

相关推荐
BestOrNothing_201533 分钟前
(3)Ubuntu 22.04 双系统安装全过程记录
linux·ubuntu22.04·双系统安装
西门吹-禅35 分钟前
【sap fiori cds up error】
java·服务器·sap cap cds
寂柒2 小时前
Linux——基础IO
linux
杨云龙UP2 小时前
Oracle ASM磁盘组空间分配与冗余理解
linux·运维·数据库·sql·oracle
朽棘不雕2 小时前
Linux权限
linux
互成3 小时前
加密系统哪款最好用?2026年五款加密系统深度对比测评
运维·网络·安全
minji...3 小时前
Linux 库制作与原理(三)深入动静态链接原理
linux·运维·服务器·c++
mftang3 小时前
WebSocket 通信协议详细解析
网络·websocket·网络协议
bukeyiwanshui3 小时前
Linux实践
linux·运维·服务器
ChoSeitaku3 小时前
NO.2|proto3语法|消息类型|通讯录|文件读取|enum类型
java·服务器·前端