IPv4 地址嵌入 IPv6 的前缀转换方式详解
1. 概述
在 IPv4 和 IPv6 网络共存的过渡期,NAT64(Network Address Translation 64)是一种关键技术,用于实现 IPv6-only 网络与 IPv4-only 网络的互操作。NAT64 前缀转换通过将 IPv4 地址嵌入到 IPv6 地址中,允许 IPv6 单栈主机访问 IPv4 网络资源。这种机制在 IPv6 过渡的后期阶段尤为重要,适用于 IPv6 占主导地位的网络环境。
NAT64 前缀转换的核心是将 IPv4 地址(32 位)嵌入到一个 IPv6 地址(128 位)中,使用特定的前缀和规则生成对应的 IPv6 地址。这种嵌入方式由 RFC 6052(“IPv6 Addressing of IPv4/IPv6 Translators”)定义,支持多种前缀长度(/32、/40、/48、/56、/64、/96),并允许灵活的地址表示形式。
2. NAT64 前缀概述
NAT64 前缀是用于构造 IPv4 节点在 IPv6 网络中的地址的前缀,长度可以是 32、40、48、56、64 或 96 位。这些前缀分为两种类型:
- 网络特定前缀(NSP, Network-Specific Prefix):由组织分配,通常是组织 IPv6 前缀的一个子网,长度可以是上述任意值。
- 公认前缀(WKP, Well-Known Prefix):固定为 64:ff9b::/96,只能使用 96 位前缀格式。
NAT64 前缀生成的 IPv6 地址用于 IPv6 主机与 IPv4 主机通信,但网络中的主机不会直接使用带有 NAT64 前缀的 IPv6 地址。这些地址主要由 NAT64 设备(如网关)用于地址转换和路由。
3. NAT64 前缀的地址格式
根据 RFC 6052,IPv4 嵌入的 IPv6 地址由以下部分组成:
- 前缀部分:长度为 32、40、48、56、64 或 96 位,表示网络标识。
- IPv4 地址部分:32 位,直接嵌入到 IPv6 地址的特定位置。
- 保留位:在某些前缀长度下(例如 /32、/40、/48、/56),地址的第 64 位到 71 位(即第 5 段的第 0 位到第 7 位)必须设置为 0,作为保留位。
- 填充位:在某些前缀长度下,可能需要额外的填充位(通常为 0)来补齐 128 位。
RFC 6052 定义了不同前缀长度下 IPv4 地址的嵌入位置,具体格式如下(参考 RFC 6052 Figure 1):
注意事项
- 保留位要求:对于 /32、/40、/48、/56 前缀,第 64 位到 71 位必须设置为 0,以确保地址格式的标准化。
- /96 前缀的特殊性:只有 /96 前缀允许直接使用点分十进制的 IPv4 地址表示,其他前缀必须使用十六进制。
- 地址简化规则:IPv6 地址可以省略前导零和连续的全零段(用 :: 表示,但只能使用一次)。例如,2001:db8:122:344:0:0:192.0.2.33 可简化为 2001:db8:122:344::192.0.2.33。
- 应用场景:NAT64 前缀转换常用于 IPv6 单栈网络访问 IPv4 资源,配合 DNS64 解析 IPv4 地址到 IPv6 地址。
4. IPv4 地址嵌入规则
根据前缀长度,IPv4 地址的 32 位被嵌入到 IPv6 地址的不同位置。以下是具体规则和示例(以 IPv4 地址 192.0.2.33 为例):
2、示例
IPv6 前缀 | IPv4 地址 | 嵌入 IPv4 地址的 IPv6 地址 |
---|---|---|
2001:db8::/32 | 192.0.2.33 | 2001:db8:c000:221:: |
2001:db8:100::/40 | 192.0.2.33 | 2001:db8:1c0:2:21:: |
2001:db8:122::/48 | 192.0.2.33 | 2001:db8:122:c000:2:2100:: |
2001:db8:122:300::/56 | 192.0.2.33 | 2001:db8:122:3c0:0:221:: |
2001:db8:122:344::/64 | 192.0.2.33 | 2001:db8:122:344:c0:2:2100:: |
2001:db8:122:344::/96 | 192.0.2.33 | 2001:db8:122:344::192.0.2.33 |
1. 前缀:2001:db8::/32
-
嵌入结果:2001:db8:c000:221::
-
完整形式:2001:0db8:c000:0221:0000:0000:0000:0000
-
简写规则:
-
每段前导零省略,例如 0db8 简化为 db8,0221 简化为 221。
-
最后四段连续全零段(0000:0000:0000:0000)用 :: 替换,且 :: 只能使用一次。
-
-
位分配:
-
0-31 位(前缀):2001:db8(32 位)。
-
32-63 位(IPv4 地址):c000:0221,对应 IPv4 地址 192.0.2.33(192.0 → c000,2.33 → 02:21)。
-
64-71 位(保留位):设置为 00(第 5 段高 8 位)。
-
72-127 位(填充位):全为 0(第 5 段低 8 位到第 8 段)。
-
-
IPv4 映射:192.0.2.33 的十六进制表示为 c0.00.02.21(192 → c0,0 → 00,2 → 02,33 → 21),嵌入到第 3 和第 4 段,形成 c000:0221。
2. 前缀:2001:db8:100::/40
-
嵌入结果:2001:db8:1c0:2:21::
-
完整形式:2001:0db8:01c0:0002:0021:0000:0000:0000
-
简写规则:
-
每段前导零省略,例如 0db8 简化为 db8,01c0 简化为 1c0,0002 简化为 2,0021 简化为 21。
-
最后三段连续全零段(0000:0000:0000)用 :: 替换。
-
-
位分配:
-
0-39 位(前缀):2001:db8:1(40 位,第 3 段高 8 位)。
-
40-71 位(IPv4 地址):c0:0002:0021,对应 IPv4 地址 192.0.2.33(192 → c0,0.2 → 0002,33 → 0021)。
-
72-79 位(保留位):设置为 00(第 5 段高 8 位)。
-
80-127 位(填充位):全为 0(第 5 段低 8 位到第 8 段)。
-
-
IPv4 映射:192.0.2.33 的 32 位被拆分为三部分(8 位 + 16 位 + 8 位),嵌入到第 3 段低 8 位(c0)、第 4 段(0002)、第 5 段高 8 位(0021),形成 1c0:2:21。
3. 前缀:2001:db8:122::/48
-
嵌入结果:2001:db8:122:c000:2:2100::
-
完整形式:2001:0db8:0122:c000:0002:2100:0000:0000
-
简写规则:
-
每段前导零省略,例如 0db8 简化为 db8,0122 简化为 122,0002 简化为 2。
-
最后两段连续全零段(0000:0000)用 :: 替换。
-
-
位分配:
-
0-47 位(前缀):2001:db8:122(48 位)。
-
48-79 位(IPv4 地址):c000:0002:2100,对应 IPv4 地址 192.0.2.33(192.0 → c000,2 → 0002,33 → 2100)。
-
80-87 位(保留位):设置为 00(第 6 段高 8 位)。
-
88-127 位(填充位):全为 0(第 6 段低 8 位到第 8 段)。
-
-
IPv4 映射:192.0.2.33 的 32 位被拆分为三部分(16 位 + 8 位 + 8 位),嵌入到第 4 段(c000)、第 5 段(0002)、第 6 段高 8 位(2100),形成 c000:2:2100。
4. 前缀:2001:db8:122:300::/56
-
嵌入结果:2001:db8:122:3c0:0:221::
-
完整形式:2001:0db8:0122:03c0:0000:0221:0000:0000
-
简写规则:
-
每段前导零省略,例如 0db8 简化为 db8,0122 简化为 122,03c0 简化为 3c0,0221 简化为 221。
-
最后两段连续全零段(0000:0000)用 :: 替换。
-
-
位分配:
-
0-55 位(前缀):2001:db8:122:3(56 位,第 4 段高 8 位)。
-
56-87 位(IPv4 地址):c0:0000:0221,对应 IPv4 地址 192.0.2.33(192 → c0,0 → 0000,2.33 → 0221)。
-
88-95 位(保留位):设置为 00(第 6 段高 8 位)。
-
96-127 位(填充位):全为 0(第 6 段低 8 位到第 8 段)。
-
-
IPv4 映射:192.0.2.33 的 32 位被拆分为三部分(8 位 + 16 位 + 8 位),嵌入到第 4 段低 8 位(c0)、第 5 段(0000)、第 6 段高 8 位(0221),形成 3c0:0:221。
5. 前缀:2001:db8:122:344::/64
-
嵌入结果:2001:db8:122:344:c0:2:2100::
-
完整形式:2001:0db8:0122:0344:00c0:0002:2100:0000
-
简写规则:
-
每段前导零省略,例如 0db8 简化为 db8,0122 简化为 122,0344 简化为 344,00c0 简化为 c0,0002 简化为 2。
-
最后一段全零(0000)用 :: 替换。
-
-
位分配:
-
0-63 位(前缀):2001:db8:122:344(64 位)。
-
64-95 位(IPv4 地址):00c0:0002:2100,对应 IPv4 地址 192.0.2.33(192 → 00c0,0.2 → 0002,33 → 2100)。
-
96-127 位(填充位):全为 0(第 7 段低 8 位到第 8 段)。
-
-
IPv4 映射:192.0.2.33 的 32 位被拆分为三部分(8 位 + 8 位 + 16 位),嵌入到第 5 段(00c0)、第 6 段高 8 位(0002)、第 6 段低 8 位和第 7 段高 8 位(2100),形成 c0:2:2100。
6. 前缀:2001:db8:122:344::/96
-
嵌入结果:2001:db8:122:344::192.0.2.33
-
完整形式:2001:0db8:0122:0344:0000:0000:c000:0221
-
简写规则:
-
每段前导零省略,例如 0db8 简化为 db8,0122 简化为 122,0344 简化为 344。
-
第 5 和第 6 段连续全零(0000:0000)用 :: 替换。
-
根据 RFC 6052 第 2.4 节,最后 32 位(第 7 和第 8 段)直接使用 IPv4 地址的点分十进制形式 192.0.2.33,而非十六进制 c000:0221。
-
-
位分配:
-
0-95 位(前缀):2001:db8:122:344:0:0(96 位)。
-
96-127 位(IPv4 地址):c000:0221,对应 IPv4 地址 192.0.2.33(192.0 → c000,2.33 → 0221),但表示为 192.0.2.33。
-
-
IPv4 映射:192.0.2.33 的 32 位直接占用第 7 和第 8 段(c000:0221),但 RFC 6052 允许使用点分十进制形式 192.0.2.33,形成 x:x:x:x:x:x:d.d.d.d 格式,提高可读性。
特殊说明:/96 前缀的点分十进制表示
对于 /96 前缀,IPv4 地址的 32 位直接占用 IPv6 地址的最后 32 位(第 7 和第 8 段)。RFC 6052 第 2.4 节明确规定,IPv4 地址可以以点分十进制形式表示(d.d.d.d),形成 x:x:x:x:x:x:d.d.d.d 的格式。这种表示方式:
- 提高可读性:直接使用 IPv4 的点分十进制形式(如 192.0.2.33)比十六进制(如 c000:0221)更直观。
- 简化转换:在 NAT64 场景中,设备可以直接解析点分十进制部分,减少地址转换的复杂性。
- 适用场景:常用于 NAT64 和 DNS64 环境,方便 IPv6 主机访问 IPv4 资源。
公认前缀(WKP):
- WKP 为 64:ff9b::/96,固定使用 /96 前缀。
- 示例:IPv4 地址 192.0.2.33 嵌入 WKP 后为 64:ff9b::192.0.2.33。
相关文章:

IPv4 地址嵌入 IPv6 的前缀转换方式详解
1. 概述 在 IPv4 和 IPv6 网络共存的过渡期,NAT64(Network Address Translation 64)是一种关键技术,用于实现 IPv6-only 网络与 IPv4-only 网络的互操作。NAT64 前缀转换通过将 IPv4 地址嵌入到 IPv6 地址中,允许 IPv…...

野火鲁班猫(arrch64架构debian)从零实现用MobileFaceNet算法进行实时人脸识别(三)用yolov5-face算法实现人脸检测
环境直接使用第一篇中安装好的环境即可 先clone yolov5-face项目 git clone https://github.com/deepcam-cn/yolov5-face.git 并下载预训练权重文件yolov5n-face.pt 网盘链接: https://pan.baidu.com/s/1xsYns6cyB84aPDgXB7sNDQ 提取码: lw9j (野火官方提供&am…...
IS-IS 中间系统到中间系统
前言: 中间系统到中间系统IS-IS(Intermediate System to Intermediate System)属于内部网关协议IGP(Interior Gateway Protocol),用于自治系统内部 IS-IS也是一种链路状态协议,使用最短路径优先…...

【图像生成大模型】HunyuanVideo:大规模视频生成模型的系统性框架
HunyuanVideo:大规模视频生成模型的系统性框架 引言HunyuanVideo 项目概述核心技术1. 统一的图像和视频生成架构2. 多模态大语言模型(MLLM)文本编码器3. 3D VAE4. 提示重写(Prompt Rewrite) 项目运行方式与执行步骤1. …...
GitHub 趋势日报 (2025年05月19日)
本日报由 TrendForge 系统生成 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日整体趋势 Top 10 排名项目名称项目描述今日获星总星数语言1public-apis/public-apis免费API的集体清单⭐ 1821⭐ 344364Python2virattt/a…...

如何使用Java生成pdf报告
文章目录 一、环境准备与Maven依赖说明二、核心代码解析1. 基础文档创建2. 中文字体处理3. 复杂表格创建4. 图片插入 三、完整代码示例四、最终效果 这篇主要说一下如何使用Java生成pdf,包括标题,文字,图片,表格的插入和调整等相关…...
HarmonyOS鸿蒙应用规格开发指南
在鸿蒙生态系统中,应用规格是确保应用符合系统要求的基础。本文将深入探讨鸿蒙应用的规格开发实践,帮助开发者打造符合规范的应用。 应用包结构规范 1. 基本配置要求 包结构规范 符合规范的应用包结构正确的HAP配置文件完整的应用信息 示例配置&…...
【Harmony】【鸿蒙】List列表View如何刷新内部的自定义View的某一个控件
创建自定义View Component export struct TestView{State leftIcon?:Resource $r(app.media.leftIcon)State leftText?:Resource | string $r(app.string.leftText)State rightText?:Resource | string $r(app.string.rightText)State rightIcon?:Resource $r(app.med…...
iisARR负均衡
IIS ARR负载均衡详细配置指南 🎯 什么是ARR(Application Request Routing) ARR是IIS的一个扩展模块,它可以: 负载均衡:将请求分发到多个服务器反向代理:隐藏后端服务器架构健康检查…...
uniapp打包报错:重新在manifest.json中生成自己的APPID
在UniApp开发过程中,打包时可能会遇到报错提示需要在manifest.json中重新生成自己的APPID。以下是解决该问题的具体方法: 检查并生成APPID 打开项目根目录下的manifest.json文件,找到appid字段。如果该字段为空或为默认值,需要重…...

人脸识别备案开启安全防护模式!紧跟《办法》!
国家互联网信息办公室与公安部于 2025 年 3 月 13 日联合公布了《人脸识别技术应用安全管理办法》(以下简称《办法》),并自 2025 年 6 月 1 日起正式施行。其中,人脸识别备案成为了规范技术应用、守护信息安全的关键一环。 一、…...
【爬虫】DrissionPage-7
官方文档: https://www.drissionpage.cn/browser_control/get_page_info/ 1. 页面信息 📌 html 描述:返回当前页面的 HTML 文本。注意:不包含 <iframe> 元素的内容。返回类型:str 示例: html_co…...

新浪《经济新闻》丨珈和科技联合蒲江政府打造“数字茶园+智能工厂+文旅综合体“创新模式
5月14日,新浪网《经济新闻》频道专题报道珈和科技在第十四届四川国际茶业博览会上的精彩亮相,并深度聚焦我司以数字技术赋能川茶产业高质量发展创新技术路径,及在成都市“茶业建圈强链”主题推介会上,珈和科技与蒲江县人民政府就智…...
git 撤销最近的几次push
要实现将远程仓库回退到最近5次push之前的状态,同时保留本地改动,可以按照以下步骤操作: 一、本地分支回退(保留改动) # 1. 查看提交历史确认要回退的提交点 git log --oneline# 2. 回退到5次提交前的状态࿰…...
水滴前端面经及参考答案
盒模型是什么,标准盒模型和 IE 盒模型有什么区别? 盒模型是 CSS 中一个基础概念,它描述了元素在页面中所占的空间大小。每个元素都可以看作是一个矩形盒子,从内到外由内容区(content)、内边距(padding)、边框(border)和外边距(margin)组成。 标准盒模型的宽度和高…...
React 第四十五节 Router 中 useHref() Hook的使用详解及注意事项
前言 React Router 中的 useHref 是一个用于生成完整 URL 路径的钩子, 它可以将相对路径解析为绝对路径,并确保在不同路由层级中正确工作。 它常用于自定义导航组件或需要手动构建链接的场景。 一、useHref核心用途 解析相对路径:自动将相…...

50、js 中var { ipcRenderer } = require(‘electron‘);是什么意思?
在 JavaScript 中,var { ipcRenderer } require(‘electron’); 这行代码的含义是: 1. require(‘electron’) 这是 Node.js 的模块引入语法,用于加载 Electron 的核心模块。electron 是 Electron 框架的主模块,提供了构建桌面…...
LeetCode 438. 找到字符串中所有字母异位词 | 滑动窗口与字符计数数组解法
文章目录 问题描述核心思路:滑动窗口 字符计数数组1. 字符计数数组2. 滑动窗口 算法步骤完整代码实现复杂度分析关键点总结类似问题 问题描述 给定两个字符串 s 和 p,要求找到 s 中所有是 p 的**字母异位词(Anagram)**的子串的起…...
@RequestParam 和 @RequestBody、HttpServletrequest 与HttpServletResponse
在Java Web开发中,RequestParam、RequestBody、HttpServletRequest 和 HttpServletResponse 是常用的组件,它们用于处理HTTP请求和响应。下面分别介绍它们的使用场景和使用方法: 1. RequestParam RequestParam 是Spring MVC框架中的注解&am…...

计算机底层的多级缓存以及缓存带来的数据覆盖问题
没有多级缓存的情况 有多级缓存的情况 缓存带来的操作覆盖问题 锁总线带来的消耗太大了。...

SpringBoot-1-入门概念介绍和第一个Spring Boot项目
文章目录 1 开发JAVA EE应用1.1 EJB1.2 Spring框架1.2.1 IoC(Inversion of Control)控制反转1.2.2 DI(Dependency Injection)依赖注入1.2.3 AOP面向切面编程1.3 Spring Boot1.4 Spring Cloud框架1.5 开发工具2 创建Spring Boot项目2.1 在线项目生成向导2.2 使用IDEA导入项目2.3…...
服务器多用户共享Conda环境操作指南——Ubuntu24.02
1. 使用阿里云镜像下载 Anaconda 最新版本 wget https://mirrors.aliyun.com/anaconda/archive/Anaconda3-2024.02-1-Linux-x86_64.sh bug解决方案 若出现:使用wget在清华镜像站下载Anaconda报错ERROR 403: Forbidden. 解决方案:wget --user-agent“M…...

基于FPGA的电子万年历系统开发,包含各模块testbench
目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于FPGA的电子万年历系统开发,包含各模块testbench。主要包含以下核心模块: 时钟控制模块:提供系统基准时钟和计时功能。 日历计算模块:…...
Leetcode刷题 | Day63_图论08_拓扑排序
一、学习任务 拓扑排序代码随想录 二、具体题目 1.拓扑排序117. 软件构建 【题目描述】 某个大型软件项目的构建系统拥有 N 个文件,文件编号从 0 到 N - 1,在这些文件中,某些文件依赖于其他文件的内容,这意味着如果文件 A 依…...

MySQL 可观测性最佳实践
MySQL 简介 MySQL 是一个广泛使用的开源关系型数据库管理系统(RDBMS),以其高性能、可靠性和易用性而闻名,适用于各种规模的应用,从小型网站到大型企业级系统。 监控 MySQL 指标是维护数据库健康、优化性能和确保数据…...
系统性能分析基本概念(3) : Tuning Efforts
系统性能调优(Tuning Efforts)是指通过优化硬件、软件或系统配置来提升性能,减少延迟、提高吞吐量或优化资源利用率。以下是系统性能调优的主要努力方向,涵盖硬件、操作系统、应用程序和网络等多个层面,结合实际应用场…...
OceanBase数据库全面指南(函数篇)函数速查表
文章目录 一、数学函数1.1 基本数学函数1.2 三角函数二、字符串函数2.1 基本字符串函数2.2 高级字符串处理函数三、日期时间函数3.1 基本日期时间函数3.2 日期时间计算函数四、聚合函数4.1 常用聚合函数4.2 分组聚合4.3 高级聚合函数五、条件判断函数5.1 基本条件函数5.2 CASE表…...
SpringBoot 对象转换 MapStruct
文章目录 工作原理核心优势为什么不使用 BeanUtils使用步骤添加依赖定义实体类和VO类定义映射接口测试数据 参考 工作原理 基于 Java 的 JSR 269 规范,该规范允许在编译期处理注解,也就是 Java 注解处理器。MapStruct 通过定义的注解处理器,…...
计算机网络——Session、Cookie 和 Token
在 Web 开发中,Session、Cookie 和 Token 是实现用户会话管理和身份验证的核心技术。它们既有联系,也有明显区别。以下从定义、原理、联系、区别和应用场景等方面详细解析。 一、基本定义与原理 1. Cookie 定义: 是浏览器存储在客户端的小…...

01-jenkins学习之旅-window-下载-安装-安装后设置向导
1 jenkins简介 百度百科介绍:Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。 [1] Jenkins官网地址 翻译&…...