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

简介:

本节书摘来自异步社区《深入解析IPv6(第3版)》一书中的第11章,第11.4节,作者: 【美】Joseph Davies 更多章节内容可以访问云栖社区“异步社区”公众号查看。

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地址。

相关文章
|
2月前
|
域名解析 缓存 网络协议
DNS问题之服务器流量被攻击如何解决
DNS服务器是负责将域名转换为IP地址的服务,它是互联网上实现域名解析的关键基础设施;本合集将探讨DNS服务器的工作原理、配置方法和常见问题处理,帮助用户理解和优化DNS服务的使用。
40 3
|
5月前
|
Kubernetes Java 双11
抗住双十一!实战Alibaba笔记,深度解析阿里微服务亿级流量治理
随着微服务的发展及DDD领域驱动设计的兴起,越来越多的企业开始使用微服务架构。为了应对微服务化带来的难题,一批微服务组件与应用涌现出来,如辅助问题排查得分布式调用链追踪探针、简化部署运维的Kubernetes,以及本书介绍的熔断器组件等。
|
7月前
|
Kubernetes 负载均衡 网络协议
全网最细,深度解析 Istio Ambient Mesh 流量路径
本文旨在对 Istio Ambient Mesh 的流量路径进行详细解读,力求尽可能清晰地呈现细节,以帮助读者完全理解 Istio Ambient Mesh 中最为关键的部分。
|
网络协议 Python
Python 使用Scapy操作DNS流量
通常一个DNS数据包,客户端发送DNSQR请求包,服务器发送DNSRR响应包。一个DNSQR包含有查询的名称qname、查询的类型qtype、查询的类别qclass。一个DNSRR包含有资源记录名名称rrname、类型type、资源记录类别rtype、TTL等等。
289 0
|
SQL 监控 Java
网站流量日志分析--统计分析--多维统计分析--终端维度--自定义 UDF 解析 UA|学习笔记
快速学习网站流量日志分析--统计分析--多维统计分析--终端维度--自定义 UDF 解析 UA
180 0
网站流量日志分析--统计分析--多维统计分析--终端维度--自定义 UDF 解析 UA|学习笔记
|
SQL 监控 NoSQL
网站流量日志分析--统计分析--sql补充扩展--group by 语法限制解析|学习笔记
快速学习网站流量日志分析--统计分析--sql补充扩展--group by 语法限制解析
145 0
|
SQL 监控 HIVE
网站流量日志分析--数据入库--宽表具体实现2—解析 url|学习笔记
快速学习网站流量日志分析--数据入库--宽表具体实现2—解析 url
134 0
网站流量日志分析--数据入库--宽表具体实现2—解析 url|学习笔记
|
网络协议 开发者
稳定平滑进行云上业务IPv6改造——Series3:SLB及DNS改造
稳定平滑进行云上业务IPv6改造——Series3:SLB及DNS改造
稳定平滑进行云上业务IPv6改造——Series3:SLB及DNS改造
|
网络协议 安全 Windows
阿里云公共DNS IPv6配置指南
随着IPv4地址的短缺,IPv6已是未来互联网的趋势,目前国家在大力的推广IPv6地址建设。阿里云作为建设IPv6的有力推动者,公共DNS已经正式推出了同时支持IPv4和IPv6的双栈公共DNS。以下我们对IPv6的公共DNS地址在Windows、Linux、Mac系统上的配置进行简单说明: Windows Windows101、打开Windows 10系统控制面板,点击右上角的以图标方式显示,点击“网络和共享中心”选项。
|
网络协议 安全
阿里云公共DNS正式发布支持IPv6的版本
在10月23日召开的GNTC 2019全球网络技术大会IPv6分论坛上,阿里云高级技术专家张先国宣布支持阿里公共DNS的IPv6版本正式发布,即阿里公共DNS在保持IPv4 稳定解析服务的基础上(Anycast地址为223.5.5.5,和223.6.6.6),还支持了一组IPv6 Anycast地址为 2400:3200::1和2400:3200:baba::1的资源节点,让处于双栈的用户能够通过配置通过IPv6快速访问DNS。

推荐镜像

更多