本节书摘来自异步社区《深入解析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地址。

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

  1. 《深入解析IPv6(第3版)》——第10章 IPv6路由选择10.1 IPv6中的路由选择

    本节书摘来自异步社区<深入解析IPv6(第3版)>一书中的第10章,第10.1节,作者: [美]Joseph Davies 更多章节内容可以访问云栖社区"异步社区"公众 ...

  2. 《深入解析IPv6(第3版)》——10.5 失效网关检测

    本节书摘来自异步社区<深入解析IPv6(第3版)>一书中的第10章,第10.5节,作者: [美]Joseph Davies 更多章节内容可以访问云栖社区"异步社区"公众 ...

  3. 数据结构——顺序栈和链式栈的简单实现和解析(C语言版)

    摘自:数据结构学习--顺序栈和链式栈的简单实现和解析(C语言版) 作者:正弦定理 发布时间:2020-11-26 21:26:49 网址:https://blog.csdn.net/chineseko ...

  4. 数据结构——链式队列解析(C语言版)

    摘自:数据结构学习--链式队列解析(C语言版) 作者:正弦定理 发布时间:2020-11-26 21:07:08 网址:https://blog.csdn.net/chinesekobe/articl ...

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

    本节书摘来自异步社区<设计模式解析(第2版•修订版)>一书中的第1章,第1.4节应对变化:使用功能分解,作者[美]Alan Shalloway(艾伦•沙洛维) , James R.Trot ...

  6. Oracle数据库精讲与疑难解析(第2版)

    Oracle数据库精讲与疑难解析(第2版) 赵振平编著 ISBN978-7-121-20021-2 2013年4月出版 定价:148.00元 1100页 16开 编辑推荐 耗时3年,作者曾为本书辞职在 ...

  7. 杏花岭教师招聘计算机真题,杏花岭2015年小学教师招聘考试真题及答案解析【完整word版】...

    1:迁移的关系转换说强调( ). 单项选择题 A.发展了的心理官能 B.学习材料的相似性 C.已有经验的概括化 D.对情境关系的理解 2:教师威信的重要来源是( ). 单项选择题 A.高尚的职业道德 ...

  8. linux ipv6动态解析,家庭宽带ipv6搭建外网访问方案,ddns动态解析ipv6,ipv6建站等

    注意:ipv6和ipv4之间不可互相访问!!! 如题: 1.先确认我们本地是否有公网ipv6地址 Windows查看方法:打开cmd.输入ipconfig 看到有2开头的就是公网ipv6了 linux ...

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

    作者简介 设计模式解析(第2版•修订版) Alan Shalloway 美国Net Objectives咨询/培训公司的创始人和CEO.他是麻省理工学院的计算机科学硕士,具有30多年面向对象咨询.培训 ...

最新文章

  1. YARN的job提交过程
  2. 软件工程学完java后干_软件工程学习后的一些体会--------两周
  3. 使用Postman完成接口测试
  4. android 判断是否正在扫描蓝牙_判断蓝牙是否连接
  5. oracle中有类似split的方法么,Oracle 实现拆分列数据的split()方法
  6. Jmeter之逻辑控制器(Logic Controller)
  7. svn异地同步 linux,svn库两地开发之代码数据的同步包括***连接的全套解决方案
  8. ssl双向认证_详解TLS/SSL运行机制
  9. php ajax加载,php – 什么更快? Ajax加载JSON或Ajax加载完整输出
  10. 天津农学院计算机科学与技术在那个校区,天津农学院有几个校区及校区地址
  11. 最新黑马内部视频+相关配套学习资料
  12. 【正点原子FPGA连载】第三十二章 MDIO接口读写测试实验-摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
  13. objectc foundation class hierachy
  14. Django项目中常用的配置与官方文档
  15. 报错:Container killed by YARN for exceeding memory limits
  16. Android6.0权限
  17. LeetCode 力扣算法题解汇总,All in One
  18. IT十年人生过客-二十一-忙碌和非凡的一年(上)
  19. 最强大脑魏郭撕X,理科男与文科生的…
  20. mybatis入门学习(九) -DB环境切换、使用注解、事务提交、获取自增ID、多参数传参、鉴别器、内置参数、批量写入、Oracle字段无法插入 null 值

热门文章

  1. 新手项目:黑马blog (适合刚接触node和数据库MongoDB)
  2. Git1天打卡 day13-查看仓库文件改动状态
  3. python音频分析工具_『开发技巧』Python音频操作工具PyAudio上手教程
  4. jpsnamenode和不显示_hadoop启动后jps查不到namenode的解决办法
  5. linux进程优雅退出,Golang信号处理及如何实现进程的优雅退出详解
  6. 这台计算机没有连接到网络怎么办,如果计算机连接到路由器并且没有互联网,该怎么办...
  7. 防止html网页被f12抓取,JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码...
  8. oracle catalog命令,使用Catalog命令注册RMAN备份集
  9. 卷积神经网络多输入和多输出
  10. ENVI高光谱物质识别