NAT64(Network Address Translation 64)是一种网络地址转换技术,用于实现IPv6与IPv4之间的互通。在过渡期IPv6部署中,许多网络环境同时支持IPv6和IPv4,但由于两个协议的不兼容性,需要进行地址转换以实现通信。NAT64提供了一种解决方案,它允许IPv6主机与IPv4主机进行通信。

NAT64(Network Address Translation 64)是一种协议,用于在 IPv6 和 IPv4 网络之间进行地址转换,允许 IPv6 客户端与 IPv4 服务器进行通信。NAT64 的工作原理是通过将 IPv6 地址映射到 IPv4 地址,解决了 IPv6 向后兼容 IPv4 的问题。以下是与 NAT64 协议相关的规范、标准和技术文档来源:

1. NAT64 规范和标准

NAT64 的规范和标准主要由 IETF(互联网工程任务组)发布,涉及的关键文档包括:

2. 相关协议和技术文档

除了 RFC 文档外,NAT64 的实现还涉及一些关键的协议和技术文档。

3. 技术资源和实施文档

  • Linux 内核实现: Linux 系统中对 NAT64 的支持通常通过 tayga(一个开源 NAT64 实现)进行配置和管理。

  • Cisco 实现:Cisco 提供了 NAT64 的详细实现说明,帮助网络管理员配置和管理 NAT64 路由。

  • Windows 实现:Windows Server 也支持 NAT64,用于在企业环境中进行 IPv6 与 IPv4 之间的转换。Microsoft 提供了相关的配置文档和技术支持。

4. 其他相关文档

  • IETF IPv6 过渡和互操作性文档:IETF 还发布了与 IPv6 过渡和互操作性相关的技术文档,这些文档有助于理解 NAT64 和其他技术如何协同工作。

NAT64 的标准和协议主要由 IETF 负责,核心文档包括 RFC 6146 和 RFC 6052,涵盖了其规范、地址映射机制和在 IPv6 和 IPv4 之间的转换方式。与 NAT64 相关的技术资源包括操作系统的实现、第三方工具(如 Tayga)以及大型厂商的配置指南(如 Cisco 和 Microsoft)。这些文档和资源为网络管理员和开发者提供了实现和管理 NAT64 的必要支持。


NAT64(Network Address Translation 64)是一种网络地址转换技术,旨在实现IPv6和IPv4之间的互通。它允许IPv6客户端访问仅支持IPv4的服务器,从而解决了在IPv6过渡过程中面临的互操作性问题。以下是对NAT64的详细解释:

什么是NAT64?

NAT64是一种网络协议,主要用于在IPv6网络和IPv4网络之间进行地址转换。它通过将IPv6地址转换为IPv4地址,使得IPv6设备能够与IPv4设备进行通信。NAT64通常与DNS64一起使用,后者可以将IPv4地址解析为相应的IPv6地址。

NAT64是怎么工作的?

  1. 地址转换:

    • NAT64使用特定的IPv6地址范围(通常是64:ff9b::/96)来表示IPv4地址。当IPv6客户端尝试访问IPv4服务器时,NAT64会将IPv6地址转换为相应的IPv4地址。
  2. DNS64解析:

    • 在NAT64环境中,DNS64服务器会将IPv4地址转换为对应的IPv6地址,并返回给IPv6客户端。客户端随后使用这个IPv6地址进行通信。
  3. 数据包转换:

    • 当IPv6客户端发送数据包到NAT64设备时,NAT64会将数据包中的目标IPv6地址转换为IPv4地址,并修改数据包的头部信息,以适应IPv4协议。
  4. 响应处理:

    • 当IPv4服务器响应时,NAT64设备会接收IPv4响应数据包,并将其转换回IPv6格式,修改头部信息以适应IPv6协议,然后将其转发回原始的IPv6客户端。

为什么使用NAT64?

  1. 解决IPv6过渡问题:

    • 随着IPv6的推广,许多新设备和服务开始支持IPv6,但仍有大量现有服务和设备仅支持IPv4。NAT64提供了一种解决方案,使得IPv6用户能够访问这些IPv4服务。
  2. 提高互操作性:

    • NAT64使得IPv6和IPv4网络之间的互操作性得以实现,促进了网络的无缝连接。
  3. 支持未来网络架构:

    • 随着IPv6的普及,NAT64为网络架构的未来发展提供了支持,帮助网络运营商平滑过渡到IPv6环境。

NAT64是一种重要的网络技术,旨在解决IPv6和IPv4之间的互通问题。通过地址和协议转换,NAT64使得IPv6客户端能够无缝访问IPv4服务器,从而促进了IPv6的推广和应用。随着互联网向IPv6的转型,NAT64的作用将变得愈加重要。


NAT64(Network Address Translation 64)是一种网络地址转换技术,旨在支持IPv6与IPv4之间的互通。以下是NAT64的发展时间线,概述了其主要里程碑和相关技术的演变:

NAT64 发展时间线

  1. 2003年:

    • 初步概念提出:NAT64的概念在IETF(互联网工程任务组)中开始被讨论,作为解决IPv6和IPv4互通问题的一种方法。
  2. 2005年:

    • RFC 4213 发布:IETF发布了RFC 4213《Basic Transition Mechanisms for IPv6 Hosts and Routers》,其中介绍了NAT64的基本原理和工作方式。
  3. 2007年:

    • NAT64 相关技术的进一步发展:随着IPv6的推广,NAT64的实现和应用逐渐受到关注,相关的实验和实现开始在一些网络中进行。
  4. 2011年:

    • RFC 6146 发布:IETF发布RFC 6146《Stateful NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers》,详细描述了有状态NAT64的工作机制和实现细节。
  5. 2012年:

    • NAT64 的实际应用:一些互联网服务提供商(ISP)和企业开始在其网络中部署NAT64,以支持IPv6用户访问IPv4内容。
  6. 2013年:

    • NAT64 和 DNS64 的结合:DNS64(DNS Server that synthesizes AAAA records from A records)作为NAT64的配套技术被广泛应用,帮助IPv6客户端解析IPv4地址。
  7. 2016年:

    • IPv6 采用增加:随着IPv6的普及,NAT64的需求和应用场景不断增加,许多网络设备和操作系统开始原生支持NAT64。
  8. 2020年及以后:

    • NAT64 的成熟与标准化:NAT64技术逐渐成熟,成为IPv6过渡方案的重要组成部分,广泛应用于各种网络环境中。

NAT64的发展历程反映了IPv6过渡技术的重要性,随着互联网向IPv6的转型,NAT64在实现IPv4和IPv6之间的互通方面发挥了关键作用。随着技术的不断演进,NAT64的应用场景和实现方式也在不断丰富。


NAT64(Network Address Translation 64)是一种网络地址转换技术,旨在实现IPv6和IPv4之间的互通。它允许IPv6客户端访问仅支持IPv4的服务器,解决了IPv6过渡过程中的互操作性问题。以下是NAT64的基本原理和工作原理的详细说明。

基本原理

  1. 地址转换:

    • NAT64通过将IPv6地址转换为IPv4地址,使得IPv6网络中的设备能够与IPv4网络中的设备进行通信。它使用特定的IPv6地址范围(通常是64:ff9b::/96)来表示IPv4地址。
  2. 协议转换:

    • 除了地址转换外,NAT64还负责处理协议层的转换,确保IPv6和IPv4之间的协议差异得到妥善处理。
  3. 无状态与有状态NAT64:

    • 无状态NAT64:简单的地址转换,不维护连接状态,适用于简单的应用场景。
    • 有状态NAT64:维护连接状态,能够处理更复杂的应用,如TCP连接,支持更高的功能和性能。

工作原理

NAT64的工作过程可以分为以下几个步骤:

  1. IPv6客户端发送请求:

    • 当IPv6客户端希望访问一个IPv4服务器时,它会发送一个IPv6数据包,目标地址是IPv4服务器的IPv4地址。
  2. DNS64解析:

    • 在NAT64环境中,通常会使用DNS64服务器。DNS64会将IPv4地址转换为对应的IPv6地址(使用NAT64定义的地址范围),并返回给IPv6客户端。这样,客户端就可以使用IPv6地址进行通信。
  3. 数据包转换:

    • 当IPv6客户端发送数据包到NAT64设备时,NAT64会将IPv6数据包中的目标IPv6地址转换为相应的IPv4地址,并修改数据包的头部信息,以适应IPv4协议。
  4. 转发到IPv4服务器:

    • NAT64设备将转换后的IPv4数据包转发到目标IPv4服务器。
  5. 响应处理:

    • 当IPv4服务器响应时,NAT64设备会接收IPv4响应数据包,并将其转换回IPv6格式,修改头部信息以适应IPv6协议,然后将其转发回原始的IPv6客户端。
  6. 状态维护(有状态NAT64):

    • 在有状态NAT64中,设备会维护连接状态,以便在处理TCP连接时能够正确跟踪会话状态。

NAT64通过提供IPv6和IPv4之间的地址和协议转换,解决了在IPv6过渡过程中面临的互操作性问题。它的基本原理和工作原理确保了IPv6客户端能够无缝访问IPv4服务器,从而促进了IPv6的推广和应用。


NAT64(Network Address Translation 64)是一种网络地址转换技术,用于实现IPv6与IPv4之间的互通。

在过渡期IPv6部署中,许多网络环境同时支持IPv6和IPv4,但由于两个协议的不兼容性,需要进行地址转换以实现通信。NAT64提供了一种解决方案,它允许IPv6主机与IPv4主机进行通信。

NAT64的关键是将IPv6数据包转换为IPv4数据包,并反之亦然。当IPv6主机需要访问IPv4资源时,NAT64会将IPv6数据包转换为IPv4数据包,并将其路由到目标IPv4主机。反之,当IPv4主机需要访问IPv6资源时,NAT64会将IPv4数据包转换为IPv6数据包,并将其路由到目标IPv6主机。

NAT64使用一个64位的IPv6前缀来表示IPv4地址,因此得名NAT64。它在网络边界设备上维护着一个转换表,记录IPv6和IPv4地址之间的映射关系。根据转换表中的映射规则,NAT64可以执行地址转换操作。

使用NAT64的好处是可以在IPv6环境中访问IPv4资源,同时促进IPv6的推广和部署。它提供了一种过渡机制,允许现有的IPv4系统与IPv6系统进行通信,减少了对IPv4的依赖。但是,NAT64引入了一定的性能延迟和复杂性,并且可能会影响某些应用程序的正常运行。

需要注意的是,随着IPv6的不断发展和普及,纯IPv6网络将成为未来的目标,以充分利用IPv6地址空间和其他优势。尽管NAT64提供了临时的解决方案,但长期来看,推广纯IPv6网络仍然是更可取的选择。



NAT64的主要作用是在IPv6网络中与IPv4网络进行通信,它实现了IPv6与IPv4地址之间的互通。以下是NAT64的一些应用场景和作用:

IPv6访问IPv4资源:在纯IPv6网络中,使用NAT64可以使IPv6主机能够访问IPv4资源,例如IPv4网站、IPv4服务器等。NAT64将IPv6数据包转换为IPv4数据包,使得IPv6主机可以与IPv4资源进行通信。

IPv4访问IPv6资源:NAT64还允许IPv4主机访问IPv6资源。当IPv4主机需要访问IPv6资源时,NAT64将IPv4数据包转换为IPv6数据包,并将其路由到目标IPv6主机。

IPv4到IPv6过渡:NAT64是IPv4到IPv6过渡的一种解决方案之一。它允许同时支持IPv4和IPv6的网络环境进行平滑的过渡,不需要立即完全迁移到IPv6。通过使用NAT64,IPv6设备和IPv4设备可以在同一个网络环境中进行互联互通。

促进IPv6部署:IPv6是下一代互联网协议,具有更大的地址空间和其他改进。通过使用NAT64,可以降低IPv6部署的难度和成本,因为现有的IPv4设备可以继续使用,并且IPv6主机可以通过NAT64与其进行通信。这有助于推动IPv6的普及和部署。

需要注意的是,尽管NAT64提供了一种在IPv6和IPv4之间进行通信的解决方案,但它可能引入一些性能延迟和复杂性,并且可能会影响某些应用程序的正常运行。长期来看,推广纯IPv6网络仍然是更可取的选择,以充分利用IPv6的优势和潜力。


Get-Net6to4Configuration / Set-Net6to4Configuration 完整拆解

基础标识

命令归属:PowerShell NetTCPIP 模块
 
作用对象:Windows 6to4 隧道(RFC3056 IPv6 过渡技术)
 
对应传统工具:netsh interface ipv6 6to4 show / netsh interface ipv6 6to4 set
 
支持系统:Windows 8 / Server 2012 及更高版本
关键前置约束:内核驱动 6to4.sys 存在才能生效;Windows 11 默认移除 6to4.sys,参数可读写但隧道功能不工作。

一、底层原理

核心原理

两条 Cmdlet 是 IPHLPAPI 之上的 PowerShell 托管封装,用于读写系统 6to4 隧道全局配置:
  1. Get-Net6to4Configuration:查询内核 TCP/IP 栈内 6to4 运行时参数 + 注册表持久配置;
  2. Set-Net6to4Configuration:写入配置参数到注册表,同时通过 IPHLPAPI 动态下发至 6to4.sys 驱动。
可管控核心参数:
  • State:Disabled / Enabled / Router(三种工作模式)
  • RelayName / RelayAddress:6to4 中继服务器地址
  • AutoRelay:自动中继开关
底层行为等价于 netsh interface ipv6 6to4 set/show,两套接口共用同一套内核配置存储,修改一处两边立即可见。
运行逻辑边界
  • 6to4 报文封装规则:IPv6 数据包封装在 IPv4 协议号 41;
  • 前缀自动生成 2002:公网IPv4::/48;
  • NAT 环境原生 6to4 难以正常穿透;
  • 配置仅控制隧道策略,不主动创建虚拟接口,参数变更即时生效无需重启。

二、依赖文件、进程、组件

1. PowerShell 模块载体

模块名称:NetTCPIP.psd1
 
核心程序集:Microsoft.Windows.NetTCPIP.Commands.dll

2. Win32 底层 API 依赖

iphlpapi.dll:提供 IP 网络配置查询、设置原生接口,是 Cmdlet 与内核协议栈通信桥梁。

3. 内核硬性依赖

6to4.sys:6to4 微型端口隧道驱动;缺失则配置写入成功,但无隧道封装功能。
 
tcpip.sys:Windows TCP/IP 内核协议栈,承载隧道报文封装 / 解封装、路由转发。

4. 持久化注册表路径

HKLM\SYSTEM\CurrentControlSet\Services\6to4\Parameters
 
存储:状态模式、中继地址等持久参数;重启主机后加载。

5. 进程载体

运行于 powershell.exe / pwsh.exe;无独立后台服务。

三、依赖关系图谱

plaintext
PowerShell执行 Get-Net6to4Configuration
        ↓
加载 NetTCPIP 模块 → Microsoft.Windows.NetTCPIP.Commands.dll
        ↓
托管代码调用 iphlpapi.dll 原生API
        ↓
IPC查询 tcpip.sys / 6to4.sys 当前运行配置
        ↓
内核返回参数 → 封装为PS自定义对象输出

PowerShell执行 Set-Net6to4Configuration
        ↓
模块 → iphlpapi.dll
        ↓
① 将参数写入注册表6to4\Parameters持久化
② 动态下发配置至内核6to4.sys驱动
        ↓
驱动更新隧道封装策略(启用/禁用、中继地址变更)

四、两条核心逻辑链路

链路 A:查询链路 Get-Net6to4Configuration

  1. 用户执行命令;
  2. PowerShell 加载 NetTCPIP 模块;
  3. 调用 IPHLPAPI 获取 6to4 全局配置块;
  4. 读取:State、RelayAddress、AutoRelay 等属性;
  5. 序列化为 Net6to4Configuration 对象输出,支持管道筛选。
示例:
powershell
Get-Net6to4Configuration

链路 B:配置写入链路 Set-Net6to4Configuration

  1. 传入参数 -State Enabled -RelayName "6to4.relay.example"
  2. Cmdlet 校验参数合法性;
  3. 通过 iphlpapi 同步更新注册表与内核驱动;
  4. 6to4.sys 即时切换工作模式;
  5. 返回执行结果;无异常则无输出。
示例:
powershell
Set-Net6to4Configuration -State Enabled

链路 C:与 netsh 互通特性

PowerShell 修改 6to4 配置 → netsh show 立刻看到变更;
 
netsh 修改配置 → Get-Net6to4Configuration 同步读取;
 
二者共享同一内核配置源,不存在隔离。

五、配套链(工具、协同组件、相邻技术)

配套同系列 PowerShell 命令

powershell
# Teredo隧道配置
Get-NetTeredoConfiguration
Set-NetTeredoConfiguration
# ISATAP配置
Get-NetIsatapConfiguration
Set-NetIsatapConfiguration
# 查看IPv6接口、路由
Get-NetAdapter
Get-NetRoute -AddressFamily IPv6

传统对等命令

cmd
netsh interface ipv6 6to4 show
netsh interface ipv6 6to4 set
netsh interface ipv6 6to4 dump

协同组件

  1. Windows 防火墙:必须放行 IPv4 协议 41,6to4 封装流量才能互通;
  2. 6to4 公共 / 私有中继服务器;
  3. TCP/IP 路由表:控制 2002::/16 流量转发至隧道接口;
  4. 网络适配器微型端口驱动体系。

同类过渡技术对比

  • 6to4:公网 IP 自动前缀,协议 41;淘汰方案
  • Teredo:UDP 封装,可穿越 NAT
  • ISATAP:企业内网 IPv6 过渡

六、安全提醒 & 运维注意事项

  1. Windows 11 移除 6to4.sys;命令执行不报错误,但隧道完全失效,禁止在 Win11 部署;
  2. 6to4 流量无加密,中间人可窃听、篡改内部 IPv6 报文;
  3. 运营商普遍拦截 IPv4 协议 41,公网连通性不稳定;
  4. NAT 宽带环境原生 6to4 基本无法正常工作;
  5. 启用 6to4 自动新增 IPv6 路由,扩大攻击面,无 IPv6 需求建议保持 State=Disabled;
  6. 公开 6to4 中继持续减少,不建议作为长期 IPv6 接入方案;
  7. 普通用户可查询,修改配置需要管理员权限。

可直接并入总表标准化条目

功能名称 (中文):Get-Net6to4Configuration / Set-Net6to4Configuration(PowerShell 6to4 隧道配置命令)
 
功能描述 (英文):NetTCPIP module cmdlets to retrieve and modify global 6to4 tunnel settings, wraps iphlpapi.dll to communicate with 6to4.sys driver; functional equivalent to netsh interface ipv6 6to4 commands.
 
应用场景:脚本自动化配置 6to4 IPv6 过渡隧道、批量终端统一隧道策略、查询当前 6to4 工作模式与中继地址。
 
安全提醒:依赖 6to4.sys 内核驱动,Windows 11 已移除驱动;流量无加密;依赖 IPv4 协议 41,极易被防火墙拦截;NAT 兼容性差;属于废弃过渡技术,不建议新建部署;修改配置需管理员权限。
 
配套链:NetTCPIP 模块、iphlpapi.dll、6to4.sys、tcpip.sys、netsh interface ipv6 6to4、Get-NetTeredoConfiguration、Windows 防火墙(协议 41 放行)、IPv6 路由管理。

netsh interface ipv6 6to4 完整拆解

基础标识

命令载体:netsh.exe
 
操作上下文:interface ipv6 6to4
 
作用对象:Windows 6to4 隧道协议(RFC 3056)
 
系统支持:Windows XP / Windows Server 2003 ~ Windows 10 21H2 / Server 2019;Windows 11 默认移除 6to4 驱动支持
 
定位:IPv6 过渡技术,在 IPv4 互联网之上封装 IPv6 报文,实现孤立 IPv6 站点互通。
6to4 核心逻辑:使用公网 IPv4 地址自动生成前缀 2002:IPv4地址::/48,IPv6 数据包封装在 IPv4 协议号 41 载荷中传输。

一、底层原理

1. 6to4 运行模型

  1. 主机获取公网 IPv4 地址;自动构造 6to4 前缀 2002:aabb:ccdd::/48(aabb.ccdd 为公网 IPv4 十六进制)
  2. 发送 IPv6 报文目的地址以2002::/16开头时:
    • 提取目的 IPv6 地址第 2、3 组,还原对端 IPv4 地址
    • 将 IPv6 报文封装进 IPv4(协议号 41)
    • 直接路由至对端公网 IPv4
  3. 访问外部 IPv6 互联网时,报文转发至6to4 中继网关(Relay)
  4. 入站:收到协议 41 的 IPv4 包,解封装取出 IPv6 报文送入 IPv6 协议栈

2. netsh 6to4 子命令职能

plaintext
netsh interface ipv6 6to4 ?          # 枚举可用子命令(帮助文本)
netsh interface ipv6 6to4 help       # 等同于 ?,输出命令清单
netsh interface ipv6 6to4 show       # 查看6to4状态、中继地址、接口模式
netsh interface ipv6 6to4 set        # 修改模式:启用/禁用、设置中继服务器
netsh interface ipv6 6to4 dump       # 输出可回滚的配置脚本(netsh重放文本)
set 可控制三种工作模式:
  • disabled:关闭 6to4
  • enabled:自动模式(公网 IP 启用 6to4,内网私网 IP 不激活)
  • router:6to4 路由器模式

关键约束原理

  1. 依赖系统内核 6to4 隧道驱动;驱动卸载 / 缺失 → 所有命令配置写入但不生效(Win11 典型现象)
  2. 封装使用 IPv4 协议 41,防火墙必须放行入站 / 出站协议 41;NAT 环境原生 6to4 基本无法正常工作
  3. 6to4 已被 IETF 标记为历史过渡技术,逐步废弃;推荐替代:WireGuard、VLAN、GRE 隧道、VxLAN、DHCPv6 + 原生 IPv6

二、依赖文件、进程、组件

核心程序

netsh.exe 位于 %SystemRoot%\System32\netsh.exe

netsh 辅助组件

  • netshipv6.dll:IPv6 上下文提供程序,承载 interface ipv6 所有子命令解析
  • iphlpapi.dll:TCP/IP 参数配置 API,下发隧道策略至内核

内核驱动(硬性依赖)

6to4.sys —— 6to4 隧道微型端口驱动
Windows 11 默认移除 6to4.sys;即便 netsh 命令还能执行,配置不生效。

协议栈载体

tcpip.sys:Windows TCP/IP 内核协议栈,处理封装 / 解封装、路由查找

配置持久化注册表路径

HKLM\SYSTEM\CurrentControlSet\Services\6to4\Parameters
 
保存:中继服务器地址、操作模式(Enabled/Disabled/Router)

相关服务

无需独立用户态服务;6to4 以内核微型端口驱动形式运行。

三、依赖关系图谱

plaintext
PowerShell/CMD 执行 netsh interface ipv6 6to4 xxx
        ↓
netsh.exe 加载 netshipv6.dll
        ↓
解析6to4子命令,调用 iphlpapi.dll 配置接口参数
        ↓
API下发配置 → tcpip.sys → 6to4.sys 隧道驱动
        ↓
show:从内核读取当前运行参数并打印
set:写入注册表持久化 + 实时更新驱动运行参数
dump:读取当前配置,生成netsh脚本文本输出

四、两条核心逻辑链路

链路 A:查看配置 netsh interface ipv6 6to4 show

  1. netsh.exe 加载 netshipv6.dll
  2. 通过 IPHLPAPI 向 tcpip.sys 查询 6to4 驱动运行状态
  3. 读取:工作模式、当前中继地址、绑定 IPv4 地址
  4. 格式化文本输出至控制台

链路 B:修改配置 netsh interface ipv6 6to4 set state enabled

  1. netsh 接收参数,调用 IPHLPAPI
  2. 将新模式写入注册表 6to4\Parameters
  3. 向内核 6to4.sys 下发动态配置
  4. 驱动根据模式启用 / 停止隧道封装逻辑
  5. 若缺少 6to4.sys:命令返回成功,但内核不创建隧道接口,无实际 IPv6 连通性

链路 C:dump 导出脚本

  1. 读取全部生效 6to4 配置项
  2. 拼装成可直接执行的 netsh 指令文本
  3. 输出 stdout,可重定向保存为.txt,后续直接导入恢复配置

五、配套链(工具、协同组件、相邻技术)

配套命令

cmd
# 查看6to4虚拟接口
netsh interface ipv6 show interfaces
# 查看IPv6路由
netsh interface ipv6 show routes
# 查看微型端口驱动清单
devmgmt.msc → 显示隐藏设备 → 网络适配器
# 等价PowerShell(现代替代)
Get-Net6to4Configuration
Set-Net6to4Configuration

协同组件

  1. 协议 41(IPv6-in-IPv4):防火墙必须放行
  2. 6to4 中继服务器(公开中继越来越少)
  3. TCP/IP 路由表:控制 2002::/16 流量转发至隧道接口
  4. Windows 防火墙:过滤协议 41 封装流量

同类 IPv6 过渡技术对比

  • 6to4:RFC3056,基于公网 IPv4 自动前缀,无分配服务器;NAT 兼容性差
  • Teredo:netsh interface teredo,穿越 NAT;依赖 teredo 服务器
  • ISATAP:企业内网过渡;netsh interface ipv6 isatap
  • 手动 IPv6 隧道(proto 41 静态隧道)

六、安全提醒 & 运维注意事项

  1. Windows 11 已移除 6to4.sys,命令可以执行但隧道无法工作,不要在 Win11 部署 6to4;
  2. 6to4 流量基于 IPv4 协议 41,多数运营商防火墙拦截协议 41;
  3. NAT 环境下原生 6to4 基本失效,不适合家用宽带;
  4. 公开 6to4 中继数量持续萎缩,不建议作为长期 IPv6 接入方案;
  5. 启用 6to4 将自动新增 IPv6 网段,扩大攻击面,内网终端若无 IPv6 需求建议默认禁用;
  6. 6to4 报文无内置加密,中间人可窃听篡改封装内 IPv6 流量;
  7. 配置变更无需重启主机,内核驱动动态加载参数。

可直接并入总表标准化条目

功能名称 (中文):netsh interface ipv6 6to4(6to4 隧道配置命令集)
 
功能描述 (英文):Netsh command set to configure and query 6to4 IPv6 transition tunnel (RFC3056), supports show/set/dump operations; relies on 6to4.sys kernel driver to encapsulate IPv6 packets within IPv4 protocol 41.
 
应用场景:早期 IPv4 互联网上搭建 IPv6 站点互通、历史网络环境过渡部署;仅适用于 Win7~Win10 21H2,Win11 移除驱动不再支持。
 
安全提醒:依赖协议 41,易被运营商防火墙拦截;流量无加密;NAT 环境兼容性差;攻击面扩大;属于淘汰过渡技术,不推荐新建部署;Win11 环境命令执行成功但功能失效。
 
配套链:netsh.exe、netshipv6.dll、6to4.sys、tcpip.sys、iphlpapi.dll、Get-Net6to4Configuration、Windows 防火墙(IPv4 协议 41 放行)、Teredo/ISATAP 同类过渡隧道。
 

PS C:\Users\Administrator> netsh interface ipv6 6to4 /?

下列指令有效:

此上下文中的命令:
 netsh interface ipv6 6to4 ?              - 显示命令列表。
 netsh interface ipv6 6to4 dump           - 显示一个配置脚本。
 netsh interface ipv6 6to4 help           - 显示命令列表。
 netsh interface ipv6 6to4 set            - 设置配置信息。
 netsh interface ipv6 6to4 show           - 显示信息。

若需要命令的更多帮助信息,请键入命令,接着是空格,后面跟 ?。

PS C:\Users\Administrator> netsh interface ipv6 6to4 show

下列指令有效:

此上下文中的命令:
 netsh interface ipv6 6to4 show interface - 显示 6to4 接口的配置信息。
 netsh interface ipv6 6to4 show relay     - 显示 6to4 中继信息。
 netsh interface ipv6 6to4 show routing   - 显示 6to4 路由状态。
 netsh interface ipv6 6to4 show state     - 显示 6to4 状态。

PS C:\Users\Administrator> netsh interface ipv6 6to4 show state
6to4 服务状态   : default
服务终止时撤消  : default

PS C:\Users\Administrator> netsh interface ipv6 6to4 show routing
路由状态        : default
用 SiteLocals   : default

PS C:\Users\Administrator> netsh interface ipv6 6to4 show  relay
中继名称        : default
用中继          : default
解析间隔        : default

PS C:\Users\Administrator> netsh interface ipv6 6to4 show interface


PS C:\Users\Administrator> netsh interface ipv6 6to4 set

下列指令有效:

此上下文中的命令:
 netsh interface ipv6 6to4 set interface  - 设置 6to4 接口的配置信息。
 netsh interface ipv6 6to4 set relay      - 设置 6to4 中继信息。
 netsh interface ipv6 6to4 set routing    - 设置 6to4 路由信息。
 netsh interface ipv6 6to4 set state      - 设置 6to4 状态。

PS C:\Users\Administrator> netsh interface ipv6 6to4 set interface
此命令提供的语法不正确。请查看帮助以获取正确的语法信息。

用法: set interface  [name=]<string>
          [[routing=](enabled|disabled|default)]

参数:

       标记               值
       name           - 接口名称或索引。
       routing        - 是否作为路由器。

说明: 设置 6to4 接口配置信息。

示例:

       set interface "Private" enabled

 

PS C:\Users\Administrator> netsh interface ipv6 6to4 set relay
此命令提供的语法不正确。请查看帮助以获取正确的语法信息。

用法: set relay [[name=](<string>|default)]
            [[state=](enabled|disabled|automatic|default)]
            [[interval]=<integer>]

参数:

       标记           值
       name           - 6to4 中继的名称
       state          - 中继名称解析的状态
       interval       - 解析间隔(以分钟为单位)

说明: 设置 6to4 中继信息。

范例:

       set relay 6to4.ipv6.org. enabled 1440

 

PS C:\Users\Administrator> netsh interface ipv6 6to4 set routing
此命令提供的语法不正确。请查看帮助以获取正确的语法信息。

用法: set routing  [[routing=](enabled|disabled|automatic|default)]
             [[sitelocals=](enabled|disabled|default)]

参数:

       标记               值
       routing        - 6to4 路由的状态
       sitelocals     - 是否使用 Site-Local 地址

说明: 设置 6to4 路由信息。

范例:

       set routing default default
       set routing routing=enabled sitelocals=enabled

 

PS C:\Users\Administrator> netsh interface ipv6 6to4 set state
此命令提供的语法不正确。请查看帮助以获取正确的语法信息。

用法: set state [[state=](enabled|disabled|default)]
             [[undoonstop=](enabled|disabled|default)]

参数:

       标记              值
       state          - 以下值之一:
                        disabled: 禁用 6to4 服务。不
                                  创建 6to4 接口。
                        enabled: 启用 6to4 服务。为每个
                                 公共 IPv4 地址配置 6to4 地址。
                        automatic: 允许 6to4 服务针对
                                   每个可用的公共 IPv4 地址自动
                                   配置自己。
                        default: 还原默认的 6to4 行为,该行为
                                 与 disabled 的相同。
       undoonstop     - 是否在服务停止时禁用 6to4。

备注: 设置 6to4 配置状态。

示例:

       set state default default
       set state state=enabled undoonstop=disabled


PS C:\Users\Administrator> netsh interface ipv6 6to4 dump


# ----------------------------------
# 6to4 配置
# ----------------------------------
pushd interface 6to4

reset

 

popd
# 6to4 配置结束


PS C:\Users\Administrator> netsh interface ipv6 6to4 ?

下列指令有效:

此上下文中的命令:
 netsh interface ipv6 6to4 ?              - 显示命令列表。
 netsh interface ipv6 6to4 dump           - 显示一个配置脚本。
 netsh interface ipv6 6to4 help           - 显示命令列表。
 netsh interface ipv6 6to4 set            - 设置配置信息。
 netsh interface ipv6 6to4 show           - 显示信息。

若需要命令的更多帮助信息,请键入命令,接着是空格,后面跟 ?。


IPv6 迁移技术:Windows 中的 netsh 是一个命令行实用程序,用于配置和监视网络参数,例如网络接口、防火墙、IPsec、无线网络等。netsh 是 Network Shell 的缩写,可以通过命令行或脚本文件来执行各种网络相关操作 - suv789 - 博客园

  • netsh interface ipv6 6to4:6to4 隧道配置

    netsh interface ipv6 6to4 命令用于配置和管理 6to4 隧道,这是一种 IPv6 过渡机制,允许 IPv6 数据包通过 IPv4 网络进行传输。以下是一些常见的 netsh interface ipv6 6to4 命令示例:

    1. 显示当前 6to4 配置

    显示当前的 6to4 配置信息。

    示例:

    bashCopy Code
    netsh interface ipv6 6to4 show state

    此命令将显示当前 6to4 隧道的状态和配置。

    2. 添加 6to4 隧道

    添加新的 6to4 隧道接口。

    示例:

    bashCopy Code
    netsh interface ipv6 6to4 add tunnel name="My6to4Tunnel" address=2002:xxxx:xxxx::1

    此命令将创建一个名为 “My6to4Tunnel” 的 6to4 隧道,地址根据实际需要替换为适当的 6to4 地址。

    3. 删除 6to4 隧道

    删除指定的 6to4 隧道接口。

    示例:

    bashCopy Code
    netsh interface ipv6 6to4 delete tunnel name="My6to4Tunnel"

    此命令将删除名为 “My6to4Tunnel” 的 6to4 隧道。

    4. 设置 6to4 隧道的状态

    启用或禁用 6to4 隧道。

    示例:

    bashCopy Code
    netsh interface ipv6 6to4 set tunnel name="My6to4Tunnel" state=enabled

    此命令将启用名为 “My6to4Tunnel” 的 6to4 隧道。

    5. 显示所有 6to4 隧道

    列出所有配置的 6to4 隧道。

    示例:

    bashCopy Code
    netsh interface ipv6 6to4 show tunnels

    此命令将显示系统中所有配置的 6to4 隧道的信息。

    6. 获取 6to4 IPv6 地址

    获取分配给 6to4 隧道的 IPv6 地址。

    示例:

    bashCopy Code
    netsh interface ipv6 6to4 show address

    此命令将显示所有通过 6to4 隧道获取的 IPv6 地址。

    7. 配置 6to4 适配器

    设置 6to4 适配器的参数。

    示例:

    bashCopy Code
    netsh interface ipv6 6to4 set adapter "Local Area Connection" forwarding=enabled

    此命令将启用 “Local Area Connection” 适配器的转发功能。

    使用 netsh interface ipv6 6to4 命令可以有效管理和配置 6to4 隧道,以实现 IPv6 的过渡。

  • netsh interface ipv6 isatap:ISATAP 隧道配置

    netsh interface ipv6 isatap 命令用于配置和管理 ISATAP(Intra-Site Automatic Tunnel Addressing Protocol)隧道。ISATAP 是一种过渡机制,允许 IPv6 数据包通过 IPv4 网络进行传输。以下是一些常见的 netsh interface ipv6 isatap 命令示例:

    1. 显示当前 ISATAP 配置

    显示当前 ISATAP 隧道的配置和状态。

    示例:

    bashCopy Code
    netsh interface ipv6 isatap show state

    此命令将显示当前 ISATAP 隧道的状态和配置信息。

    2. 添加 ISATAP 隧道

    创建一个新的 ISATAP 隧道接口。

    示例:

    bashCopy Code
    netsh interface ipv6 isatap add tunnel name="MyISATAPTunnel" address=2001:db8::1

    此命令将创建一个名为 “MyISATAPTunnel” 的 ISATAP 隧道,address 应根据需要替换为适当的 IPv6 地址。

    3. 删除 ISATAP 隧道

    删除指定的 ISATAP 隧道接口。

    示例:

    bashCopy Code
    netsh interface ipv6 isatap delete tunnel name="MyISATAPTunnel"

    此命令将删除名为 “MyISATAPTunnel” 的 ISATAP 隧道。

    4. 设置 ISATAP 隧道的状态

    启用或禁用 ISATAP 隧道。

    示例:

    bashCopy Code
    netsh interface ipv6 isatap set tunnel name="MyISATAPTunnel" state=enabled

    此命令将启用名为 “MyISATAPTunnel” 的 ISATAP 隧道。

    5. 显示所有 ISATAP 隧道

    列出所有配置的 ISATAP 隧道。

    示例:

    bashCopy Code
    netsh interface ipv6 isatap show tunnels

    此命令将显示系统中所有配置的 ISATAP 隧道的信息。

    6. 获取 ISATAP IPv6 地址

    获取分配给 ISATAP 隧道的 IPv6 地址。

    示例:

    bashCopy Code
    netsh interface ipv6 isatap show address

    此命令将显示所有通过 ISATAP 隧道获取的 IPv6 地址。

    7. 配置 ISATAP 适配器

    设置 ISATAP 适配器的参数。

    示例:

    bashCopy Code
    netsh interface ipv6 isatap set adapter "Local Area Connection" forwarding=enabled

    此命令将启用 “Local Area Connection” 适配器的转发功能。

    使用 netsh interface ipv6 isatap 命令可以有效管理和配置 ISATAP 隧道,以实现 IPv6 的过渡。

  • netsh interface ipv6 teredo:Teredo 隧道配置

    netsh interface ipv6 teredo 命令用于配置和管理 Teredo 隧道。Teredo 是一种过渡技术,允许在 IPv4 网络中传输 IPv6 数据包。以下是一些常见的 netsh interface ipv6 teredo 命令示例:

    1. 显示当前 Teredo 配置

    查看当前 Teredo 配置和状态。

    示例:

    bashCopy Code
    netsh interface ipv6 teredo show state

    此命令将显示当前 Teredo 隧道的状态,包括状态、客户端地址等信息。

    2. 启用 Teredo

    启用 Teredo 隧道功能。

    示例:

    bashCopy Code
    netsh interface ipv6 teredo set state type=client

    此命令将 Teredo 隧道设置为客户端模式。

    3. 禁用 Teredo

    禁用 Teredo 隧道功能。

    示例:

    bashCopy Code
    netsh interface ipv6 teredo set state disable

    此命令将禁用 Teredo 隧道。

    4. 设置 Teredo 服务器

    配置 Teredo 使用的服务器。

    示例:

    bashCopy Code
    netsh interface ipv6 teredo set state server=teredo.remlab.net

    此命令将 Teredo 隧道配置为使用指定的 Teredo 服务器(可以根据需要更改为其他服务器)。

    5. 查看 Teredo 地址

    获取 Teredo 分配的 IPv6 地址。

    示例:

    bashCopy Code
    netsh interface ipv6 teredo show address

    此命令将显示通过 Teredo 隧道获取的 IPv6 地址。

    6. 设置 Teredo 状态

    设置 Teredo 的工作状态,比如切换到服务器模式。

    示例:

    bashCopy Code
    netsh interface ipv6 teredo set state type=server

    此命令将 Teredo 隧道设置为服务器模式。

    7. 重置 Teredo

    重置 Teredo 隧道的状态和配置。

    示例:

    bashCopy Code
    netsh interface ipv6 teredo set state enterpriseclient

    此命令将 Teredo 隧道重置为企业客户端模式。

    通过使用 netsh interface ipv6 teredo 命令,您可以有效地管理和配置 Teredo 隧道,以便在 IPv4 网络中使用 IPv6。

posted @ 2023-07-04 11:18  suv789  阅读(2639)  评论(0)    收藏  举报