《深入解析IPv6(第3版)》——11.4 流量转换

11.4 流量转换

Windows中的IPv6支持两类IPv6到IPv4的流量过渡技术。

NAT64/ DNS64。
PortProxy(端口代理)。
11.4.1 NAT 64/DNS64
NAT64定义在RFC 6146中。当纯IPv6节点发起流量时,NAT64可以在IPv6和IPv4流量之间提供状态化转换。NAT64会从纯IPv6节点中获得IPv6流量,并将其转换给可以发送给IPv4节点的IPv4流量,反之亦然。这种地址转换采取的工作方式类似于传统IPv4网络的地址转换(NAT)。如果进一步了解IPv4 NAT设备转换的工作方式,请参见本书的第14章。

NAT64的作用通常是让纯IPv6节点能够访问纯IPv4计算机。例如,一台基于Windows Server 2012的DirectAccess服务器可以使用NAT64让DirectAccess客户端(从本质上讲,该客户端就是一台通过DirectAccess连接发送信息的纯IPv6节点)访问内联网中那些只能通过IPv4进行访问的服务器和资源。如需进一步了解相关信息,请参见本书的第18章。

DNS64定义在RFC 6147中,它是一种将纯IPv6地址记录(AAAA)DNS查询消息映射为IPv4地址记录(A)查询消息的方式,因此它能够实现纯IPv6节点和纯IPv4节点之间的通信。当一台纯IPv6节点发送DNS查询消息来查询某个域名的IPv6地址时,DNS64会在这个过程中充当中间设备。它可以将AAAA域名查询变为一个A域名查询和一个AAAA域名查询,并将这两条查询消息发送给一台内联网DNS服务器。如果只收到了A记录,那么它就会将解析出来的IPv4地址表达为IPv6地址,并将它返回给请求方的客户端设备。然后,客户端设备就可以尝试使用这个IPv6地址来发起通信了,而这个通信的过程会由NAT64进行转换。

将NAT64和DNS64结合起来使用,可以让纯IPv6节点向纯IPv4节点发起通信,而无需对纯IPv6节点和纯IPv4节点本身进行任何改变。DNS64会将一个纯IPv4计算机的查询域名映射为一个IPv6地址。NAT64会将去往该IPv6地址的IPv6流量转换为去往一个IPv4地址的IPv4流量。注意,DNS64和NAT64组件必须具有相同的IPv6地址空间转换规则,才能正常工作。不过,它们并没有任何共享状态,而且也可以部署在不同的计算机上。

在Windows Server 2012中,管理员可以使用Windows PowerShell命令中的命令New-NetNatTransitionConfiguration、Set-NetNatTransition Configuration和Remove-NetNatTransit ion Configuration来配置NAT64组件,同样可以使用命令New-NetDnsTransitionConfiguration、 Set-NetDnsTransitionConfiguration和Remove-NetDnsTransitionConfiguration来配置DNS64组件。如需进一步了解相关信息,请参阅本书的第16章。

注释

在默认情况下,NAT64和DNS64不允许纯IPv4节点向纯IPv6 节点发起通信。例如,对于一台运行Windows Server 2012和Windows 8的DirectAccess服务器不允许一台内联网中的纯IPv4计算机(比如一台管理服务器)向DirectAccess客户端发起通信。此外,也不能在DNS64中使用DNSSEC(DNS安全扩展)。
11.4.2 端口代理
为了让无法使用普通互联网层协议(IPv4或IPv6)建立连接的节点或应用之间能够进行通信,Windows的IPv6协议提供了“端口代理(PortProxy)”,这个组件可以代理下列流量。

  • IPv4到IPv4:将去往一个IPv4地址的TCP流量代理为另一个IPv4地址的流量。
  • IPv4到IPv6:将去往一个IPv4地址的TCP流量代理为某个IPv6地址的流量。
  • IPv6到IPv6:将去往一个IPv6地址的TCP流量代理为另一个IPv6地址的流量。
  • IPv6到IPv4:将去往一个IPv6地址的TCP流量代理为某个IPv4地址的流量。

IPv6最需要且最有用的代理是从IPv4到IPv6和从IPv6到IPv4的代理,它们能实现下述方案。

  • 纯IPv4节点可以直接访问纯IPv6节点:在纯IPv4节点的IPv4 DNS架构中,纯IPv6节点的域名会解析为分配给端口代理计算机某个接口的IPv4地址。这可能需要在DNS中手动配置一个A记录。当将端口代理计算机配置为代理IPv4到IPv6时,所有由纯IPv4节点发送的TCP流量都会用一种类似于Internet代理服务器的方式进行代理:纯IPv4节点与端口代理计算机建立一个TCP连接,然后端口代理计算机再与纯IPv6节点建立另一条连接。端口代理计算机在纯IPv4节点和纯IPv6节点之间传输TCP连接数据。
  • 纯IPv6节点可以访问纯IPv4节点:在纯IPv6节点的IPv6 DNS架构中,纯IPv4节点的域名会解析为分配给端口代理计算机某个接口的IPv6地址。这可能需要在DNS中手动配置一个AAAA记录。当端口代理计算机配置为代理IPv6到IPv4时,端口代理则代理会在纯IPv6节点和纯IPv4节点之间(通过转换)发送流量。
  • IPv6节点可以访问在IPv6/IPv4节点上运行的纯IPv4节点:在纯IPv6节点的IPv6 DNS架构中,IPv6/IPv4节点的域名会解析为分配给端口代理计算机的某个接口的IPv6地址。当端口代理计算机配置为代理IPv6到IPv4时,端口代理会代理在纯IPv6节点和端口代理计算机上运行的纯IPv4服务或程序之间发送的流量。

可以用netsh interface portproxy add|set|delete v4tov4|v4tov6|v6tov4|v6tov6命令来配置端口代理组件。

netsh interface portproxy add v6tov4命令的语法如下。

netsh interface portproxy add v6tov4 [listenport=]LPortNumber|LportName [[connectaddress=] IPv4Address|IPv4HostName] [[connectport=]CPortNumber|CPortName] [[listenaddress=]IPv6Address |IPv6HostName]
  • LPortNumber|LportName是端口代理侦听的TCP端口号或服务的名称。
  • IPv6Address|IPv6HostName是端口代理侦听的IPv6地址或主机名称(如果未指定,就假定是所有分配给端口代理计算机的IPv6地址)。
  • CPortNumber|CPortName是端口代理试图连接的TCP端口号或服务名称(如果未指定,就会将连接端口设为侦听端口)。
  • IPv4Address|IPv4HostName是端口代理试图连接的IPv4地址或主机名称(如果未指定,就假定为loopback地址)。

netsh interface portproxy add v4tov6命令的语法如下。

netsh interface portproxy add v4tov6 [listenport=]LPortNumber|LportName [[connectaddress=]IPv6Address |IPv6HostName] [[connectport=]CPortNumber|CPortName] [[listenaddress=]IPv4Address|IPv4HostName]

LPortNumber|LportName是端口代理侦听的TCP端口号或服务名称。

  • IPv4Address|IPv4HostName是端口代理侦听的IPv4地址或主机名称(如果未指定,就假定是所有分配给端口代理计算机的IPv4地址)。
  • CPortNumber|CPortName是端口代理试图连接的TCP端口号或服务名称(如果未指定,就会将连接端口设为侦听端口)。
  • IPv6Address|IPv6HostName是端口代理试图连接的IPv6地址或主机名称(如果未指定,就假定为loopback地址)。

注释

端口代理只能用于TCP流量,以及没有在TCP连接数据中内嵌地址或端口信息的应用层协议。与NAT不同,端口代理没有类似NAT编辑器的东西。因此,有些协议无法通过端口代理计算机运行(如FTP),因为该协议在使用FTP端口命令时内嵌了IPv4地址。

时间: 2024-10-22 17:26:49

《深入解析IPv6(第3版)》——11.4 流量转换的相关文章

《深入解析IPv6(第3版)》——11.2 过渡机制

11.2 过渡机制 为了与IPv4设施共存并最终过渡到纯IPv6设施,IPv6过渡标准规定了下列机制: 同时使用IPv4和IPv6: IPv6-over-IPv4隧道: DNS设施: IPv6和IPv4之间的流量转换(请参见本章的"流量转换"部分). 11.2.1 同时使用IPv4和IPv6在路由设施从纯IPv4过渡到IPv6/IPv4并最终过渡到纯IPv6的这个过程中,无论使用IPv4还是使用IPv6节点必须都能够到达目的.例如,在过渡中,某些服务器中的服务在未来可以使用IPv6可达

《深入解析IPv6(第3版)》——2.2 Windows的IPv6协议特性

2.2 Windows的IPv6协议特性 Windows中的IPv6协议包含以下特性. 默认已安装.启用,且已选用. 基本IPv6栈支持. IPv6协议栈增强. 通过GUI(图形用户界面)和命令行进行配置. 集成了对IPSec的支持. Windows防火墙支持. 临时地址. 随机接口ID. 域名系统(DNS)支持. 源地址和目的地址选择. ipv6-literal.net域名支持. 链接本地组播域名解析(Link-Local Multicast Name Resolution, LLMNR).

《深入解析IPv6(第3版)》—— 导读

前言 由于下列事件,IPv6对于未来因特网和组织内联网的重要性已毋庸置疑. 2011年2月3日,互联网名称与数字地址分配机构(ICANN)加入了数字资源组织(NRO),因特网结构委员会(IAB)和互联网协会(Internet Society).这一天,ICANN宣称,IPv4因特网地址当前已经全部被分配了出去.区域地址分配机构仍然有一些公有IPv4地址空间可以分配给各个组织机构,但是再也没有保留的IPv4地址空间了. 2011年6月8日,Microsoft与因特网协会的其他成员共同参加了世界IP

《深入解析IPv6(第3版)》——1.4 IPv4和IPv6的对比

1.4 IPv4和IPv6的对比 表1-1罗列显示了IPv4和IPv6间的一些主要差异. https://yqfile.alicdn.com/10ef09f92df649a765abf560bd433d6113d9476b.png" >

《设计模式解析(第2版•修订版)》目录—导读

作者简介 设计模式解析(第2版•修订版) Alan Shalloway 美国Net Objectives咨询/培训公司的创始人和CEO.他是麻省理工学院的计算机科学硕士,具有30多年面向对象咨询.培训和软件开发的经验,并经常受邀在重要的软件开发会议(包括SD Expro.Java One.OOP和OOPSLA)上演讲. James R. Trott 美国一家大型金融机构的资深顾问.他是应用数学科学硕士.MBA和跨文化研究硕士.在其20年的职业生涯中,他一直将面向对象和基于模式的分析技术运用在知识

《设计模式解析(第2版•修订版)》—第1章 1.4节应对变化:使用功能分解

1.4 应对变化:使用功能分解设计模式解析(第2版•修订版)用模块化封装变化 更进一步地来看"显示形状"问题.怎样编写代码才能更容易地应付多变的需求呢?与其编写一个大函数,不如使之更加模块化. 例如,在前面提到的步骤4c"以形状的位置作为参数,调用显示形状的函数"中,可以写一个例1-1所示的模块. 例1-1 用模块化封装变化 函数:显示形状输入:形状类型,形状描述操作: switch (形状类型) case 方形:调用显示方形的函数 case 圆形:调用显示圆形的函

《设计模式解析(第2版•修订版)》—第1章复习题

复习题设计模式解析(第2版•修订版)简答题1.叙述功能分解中使用的基本方法. 2.导致需求变更的三个原因是什么? 3.我提倡用责任而不是功能来思考.这意味着什么呢?请举出一个例子. 4.给出耦合和内聚的定义.什么是紧耦合? 5.对象接口的目的是什么? 6.给出类实例的定义. 7.类是一个对象行为的完整定义.这句话说明了对象的哪三个方面? 8.抽象类的作用是什么? 9.对象可能具有的三种主要可访问性1是什么? 10.给出封装的定义,并举出一个行为封装的例子. 11.给出多态的定义,并举出一个多态的

实例解析IPv6环境下的网络编程

自IPv4诞生至今已有20多年了,目前它虽仍因互联网的成功而风光无限,但是如同"Internet正在成为其自身巨大成功的受害者"一样,目前IPv4地址的极度匮乏注定它将被历史所淘汰.而IPv6-IPv4的继承人,具有地址空间巨大,支持QOS等许多优良特性,在不久的将来会迅速的普及,但IPv6的出现将对目前网络编程方式产生一定的影响. 本文将就IPv6环境下的网络编程方式进行实例解析. 最终效果: 实例解析IPv6环境下的网络编程-配置篇 目前我们所用的IP协议是v4版本的, 比如192

《设计模式解析(第2版•修订版)》—第1章 1.6节面向对象范型

1.6 面向对象范型 设计模式解析(第2版•修订版) 使用对象将责任转移到更局部的层次 面向对象范型以对象概念为中心,一切都集中在对象上.编写代码时是围绕对象而非函数进行组织的. 对象是什么?对象传统上被定义为带有方法(面向对象领域称呼函数的术语)的数据.糟糕的是,这是一种非常有局限性的对象观.稍后我会给出一个更好的对象定义(在第8章中还会谈到).我说到对象的数据时,可能指数值和字符串这样的简单事物,也可能指其他对象. 使用对象的优点在于,可以定义自己负责自己的事物(参见表1-2).对象天生就知