6.4 NAT-PT

(1)NAT-PT和NAT的差别

  ①NAT-PT(附带协议转换的网络地址转换)技术秉承NAT技术的思想,但在原理方面大有不同。

  ②NAT-PT和NAT本质的区别在于应用场合的不同。NAT是IPv4网络中公网、私网地址的相互转换,它是为了解决IPv4公网地址缺乏问题而NAT-PT则是IPv6和IPv4地址的相互转换,它是为了解决两者互通问题。在IPv4网络完全过渡到IPv6网络之间,两种类型之间直接通信可以通过NAT-PT来实现。

  ③NAT-PT作用于IPv4和IPv6网络边缘设备上,所有的地址转换都在该设备上实现,对于IPv4和IPv6网络来说是透明的,即用户不必改变目前的IPv4网络中主机的配置就可以实现IPv6网络与IPv4网络的通信

(2)NAT-PT和隧道的差别

  ①首先报文转换和转发方式不同:NAT-PT是对报文的网络层内容进行转换修改,剥离原先的报文头,替换为转换之后的报文头(如IPv4→IPv6或IPv6→IPv4),而隧道技术是对初始报文作另一层报文的封装

  ②NAT-PT会检查并且可以更改报文中的端口号;而隧道技术从来不会检查报文中的传输层内容。

  ③NAT-PT一般适用于IPv4和IPv6不同网络中主机互相访问的环境中;而隧道技术一般用于实现一种网络协议跨越另一种网络协议之间的通信。所以NAT-PT的环境只需有一台可以进行NAT-PT转换的设备即可,而构造一种隧道的环境必须有两台设备形成一个隧道。

(3)NAT-PT分类

  ①静态NAT-PT

    A.提供一对一的IPv6地址和IPv4地址的映射

    B.IPv6单协议网络内的节点要访问IPv4单协议网络内的每一个IPv4地址都必须在NAT-PT设备中配置。

    C.每一个目的IPv4在NAT-PT设备中被映射成一个具有预定义NAT-PT前缀的IPv6地址。在这种模式下,每一个IPv6映射到IPv4地址,需要IPv4地址可以双方发起连接

  ②动态NAT-PT

    A.NAT-PT网关向IPv6网络通告一个96位的地址前缀,并结合32位主机IPv4地址作为对IPv4网络中的主机的标识。

    B.从IPv6网络中的主机向IPv4网络发送的报文,其地址前缀与NAT-PT发布的地址前缀相同,这些报文都被路由到NAT-PT网关,由NAT-PT网关对报文头进行修改,取出其中的IPv4地址信息来替换目的地址,同时会修改端口号

    C.同时,NAT-PT网关定义了IPv4地址池,它从地址池中取出一个地址来替换IPv6报文的源地址,从而完成从IPv6地址到IPv4地址的转换

    D.由于动态NAT-PT只能由IPv6一侧首先发起连接,路由器把IPv6地址转换为IPv4地址后,IPv4主机才知道使用哪一个IPv4地址来标识IPv6主机。若从IPv4端首先发起连接,IPv4主机并不知道IPv6主机的IPv4地址,因为这个地址是NAT-PT网关从地址池中随机选择的,连接无法进行。

(4)实战:配置静态NAT-PT

  ①路由器配置(并不是所有的路由器都支持NAT-PT,本例采用思科unzip-c3640-js-mz.124-10.bin

//R1路由器
R1#conf t
R1(config)#interface fastEthernet /
R1(config-if)#ip address 192.168.10.10 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#interface serial /
R1(config-if)#clock rate
R1(config-if)#ip address 131.107.0.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#ip route 12.10.12.0 255.255.255.0 131.107.0.2 //添加到12.10.12.0网段的路由
R1(config)#exit //R2路由器(NAT-PT路由器)
R2#conf t
R2(config)#ipv6 unicast-routing
R2(config)#interface serial /
R2(config-if)#ip address 131.107.0.2 255.255.255.0
R2(config-if)#ipv6 nat
//启用该接口的IPv6 Nat功能
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#interface serial /
R2(config-if)#clock rate
R2(config-if)#ipv6 address :::/
R2(config-if)#ipv6 nat
//启用该接口的IPv6 Nat功能
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#ip route 192.168.10.0 255.255.255.0 131.107.0.1 //添加到192.168.10.0/24的路由
R2(config)#ipv6 route :::/ ::: //添加到2001:1::/64网段的路由
//将v6映射成v4,从而能在ipv4网络中可以访问到ipv6主机。
R2(config)#ipv6 nat v6v4 source 2001:1::2 12.10.12.12 //配置静态NAT-PT映射,将源IPv6映射为IPv4地址
//将v4映射成v6,从而能在ipv6网络中可以访问到ipv4主机。
R2(config)#ipv6 nat v4v6 source 192.168.10.20 2001:3::122 //配置静态NAT-PT映射,将源IPv4映射为IPv6地址
R2(config)#ipv6 nat prefix 2001:3::/96 //IPv6前缀,定义将IPv4网络映射到IPv6的2001:3::/96网段
R2(config)#exit
R2# //R3路由器
R3#conf t
R3(config)#ipv6 unicast-routing //启用IPv6路由转发功能
R3(config)#interface serial /
R3(config-if)#ipv6 address :::/
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#interface fastEthernet /
R3(config-if)#ipv6 address :::/
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#ipv6 route :::/ ::: //添加到2001:3::/64网段的路由
R3(config)#exit
R3#

  ②Win7虚拟机:放入VMnet1网络,IPv4为192.168.10.20/24,默认网关192.168.10.10。Win8虚拟机:放入VMnet8网络,IPv6设置为2001:1::2/64,默认网关为2001:1::1。

  ③测试:在R2上打开IPv6 nat调试开关(R2# debug IPv6 nat)。然后让Win7虚拟机ping 12.10.12.12Win8虚拟机ping 2001:3::122并观察IPv6 nat的调试输出(注意观察源和目标地址的变化)

//跟踪NAT调试结果
R2#debug ipv6 nat //打开IPv6 nat调试开关(关闭时用no debug ipv6 nat)
IPv6 NAT-PT debugging is on
R2#
*Mar ::40.363: IPv6 NAT: src (192.168.10.20) -> (:::), dst (12.10.12.12) -> (:::)
*Mar ::40.431: IPv6 NAT: icmp src (:::) -> (12.10.12.12), dst (:::) -> (192.168.10.20)
R2#
*Mar ::41.371: IPv6 NAT: src (192.168.10.20) -> (:::), dst (12.10.12.12) -> (:::)
*Mar ::41.431: IPv6 NAT: icmp src (:::) -> (12.10.12.12), dst (:::) -> (192.168.10.20)

(5)实战:配置动态NAT-PT

  ①路由器配置

//R1路由器
R1#conf t
R1(config)#interface fastEthernet /
R1(config-if)#ip address 192.168.10.10 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#interface serial /
R1(config-if)#clock rate
R1(config-if)#ip address 131.107.0.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#ip route 12.10.12.0 255.255.255.0 131.107.0.2 //指定到12.10.12.0/24网段的路由 //R2路由器
R2#conf t
R2(config)#ipv6 unicast-routing
R2(config)#interface serial /
R2(config-if)#ip address 131.107.0.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#interface serial /
R2(config-if)#clock rate
R2(config-if)#ipv6 address :::/
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#ip route 192.168.10.0 255.255.255.0 131.107.0.1
R2(config)#ipv6 route :::/ :::
R2(config)#interface serial / //在R2的接口用ipv6的nat
R2(config-if)#ipv6 nat //启用IPv6地址转换
R2(config-if)#exit
R2(config)#interface serial /
R2(config-if)#ipv6 nat
R2(config-if)#exit
R2(config)#ipv6 access-list v4map permit :::/ any //定义访问控制列表
R2(config)#ipv6 access-list v6list permit :::/ any //定义允许访问IPv4网络的IPv6网段
R2(config)#ipv6 nat prefix :::/ v4-mapped v4map //定义IPv4充当的IPv6网段 (前缀)
R2(config)#ipv6 nat v6v4 pool v4pool 12.10.12.10 12.10.12.100 prefix-length //定义IPv4地址池(名为v4pool)
R2(config)#ipv6 nat v6v4 source list v6list pool v4pool //配置动态映射
R2(config)#exit //R3路由器
R3#conf t
R3(config)#ipv6 unicast-routing
R3(config)#interface serial /
R3(config-if)#ipv6 address :::/
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#interface fastEthernet /
R3(config-if)#ipv6 address :::/
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#ipv6 route :::/ :::
R3(config)#exit

  ②测试:Win7A和Win7B虚拟机IP设置与上例相同。让Win7B虚拟机ping 2001:3::c0a8:0a14(即,2001:3::192.168.10.20,注意只能从IPv6主动访问IPv4网络)。同时,可以在R2#debug ipv6 nat进行跟踪。

//查看NAT调试结果
R2#debug ipv6 nat
IPv6 NAT-PT debugging is on
R2#
*Mar ::30.223: IPv6 NAT: icmp src (:::) -> (12.10.12.10), dst (:::C0A8:A14) -> (192.168.10.20)
*Mar ::30.291: IPv6 NAT: src (192.168.10.20) -> (:::C0A8:A14), dst (12.10.12.10) -> (:::)
R2#
*Mar ::31.423: IPv6 NAT: icmp src (:::) -> (12.10.12.10), dst (:::C0A8:A14) -> (192.168.10.20)
*Mar ::31.535: IPv6 NAT: src (192.168.10.20) -> (:::C0A8:A14), dst (12.10.12.10) -> (:::)

第11章 拾遗5:IPv6和IPv4共存技术(3)_NAT-PT技术【全书完】的更多相关文章

  1. 第11章 拾遗5:IPv6和IPv4共存技术(1)_双栈技术和6to4隧道技术

    6. IPv6和IPv4共存技术 6.1 双栈技术 (1)双协议主机的协议结构 (2)双协议栈示意图 ①双协议主机在通信时首先通过支持双协议的DNS服务器查询与目的主机名对应的IP地址. ②再根据指定 ...

  2. 第11章 拾遗5:IPv6和IPv4共存技术(2)_ISATAP隧道技术

    6.3 ISATAP隧道技术 (1)基本概念 ①在一个IPv4网络中主机与路由器之间创建一条ISATAP隧道,以便让该主机可以访问IPv6网络中的资源. ②条件:IPv4中的PC主机需要支持IPv4和 ...

  3. 第11章 拾遗4:IPv6(1)_报文格式和地址类型

    1. IPv4和IPv6协议栈的比较 (1)IPv6取代IPv4,支持IPv6的动态路由协议都属于IPv6协议(如RIPng.OSPFv3). (2)Internet控制消息协议IPv6版(ICMPv ...

  4. 第11章 拾遗4:IPv6(2)_给计算机配置IPv6地址

    4. 给计算机配置IPv6地址 4.1 无状态自动配置IPv6地址 (1)网络拓扑 ①无状态地址自动配置是指不需要DHCP服务器进行管理,由客户端向路由器发送前缀请求(RS)询问其所在网段.路由器收到 ...

  5. 第11章 拾遗4:IPv6(3)_配置IPv6路由

    5. 配置IPv6路由 5.1 配置IPv6静态路由 (1)在路由器上配置静态路由(以R1路由器为例) //静态路由 R1#config t R1(config)#ipv6 unicast-routi ...

  6. 第11章 拾遗3:虚拟局域网(VLAN)

    1. 虚拟局域网(VLAN) (1)VLAN是建立在物理网络基础上的一种逻辑子网,它将把一个LAN划分成多个逻辑的局域网(VLAN),每个VLAN是一个广播域,VLAN内的主机间通信就和在一个LAN内 ...

  7. 第11章 拾遗1:网络地址转换(NAT)和端口映射

    1. 网络地址转换(NAT) 1.1 NAT的应用场景 (1)应用场景:允许将私有IP地址映射到公网地址,以减缓IP地址空间的消耗 ①需要连接Internet,但主机没有公网IP地址 ②更换了一个新的 ...

  8. ipv6转ipv4 NAT64与DNS64基本原理概述

    原文: https://blog.csdn.net/zhangjie1989/article/details/51464251 1.NAT64与 DNS64背景 在 IPv6网络的发展过程中,面临最大 ...

  9. IPv6地址格式示例及IPv6与IPv4的区别分析

    认识IPv6地址 IPv4地址是类似 A.B.C.D 的格式,它是32位,用\".\"分成四段,用10进制表示: 而IPv6地址类似X:X:X:X:X:X:X:X的格式,它是128 ...

随机推荐

  1. 机器学习 - 开发环境安装pycharm + tensorflow集成篇

    继续上篇的pyspark集成后,我们再来看看当今热的不得了的tensorflow是如何继承进pycharm环境的 参考: http://blog.csdn.net/include1224/articl ...

  2. NPOI之Excel——设置单元格背景色

    NPOI Excel 单元格颜色对照表,在引用了 NPOI.dll 后可通过 ICellStyle 接口的 FillForegroundColor 属性实现 Excel 单元格的背景色设置,FillP ...

  3. Python 处理JSON数据报错解决办法

    春节期间通过接口爬取携程数据的时候,返回的json字符串通过json.loads加载时报错"ValueError: Invalid control character at: line 1 ...

  4. spring-IOC容器(一)

    ApplicationContext 代表IOC容器(控制反转) ApplicationContext的主要实现类: ——ClassPathXmlApplicationContext:从类路径下加载配 ...

  5. 读DataSnap源代码(五)

    function TDSHTTPWebDispatcher.DispatchRequest(Sender: TObject; Request: TWebRequest; Response: TWebR ...

  6. golang 自定义json解析

    在实际开发中,经常会遇到需要定制json编解码的情况. 比如,按照指定的格式输出json字符串, 又比如,根据条件决定是否在最后的json字符串中显示或者不显示某些字段. 如果希望自己定义对象的编码和 ...

  7. MySQL:ROWNUM的假实现

    MySQL中的ROWNUM的实现 MySQL 几乎模拟了 Oracle,SQL Server等商业数据库的大部分功能,函数.但很可惜,到目前的版本(5.7)为止,仍没有实现ROWNUM这个功能. se ...

  8. 排序算法<No.4>【基数排序】

    由于春节,以及项目要上线的原因,导致这期的算法博文跟进的有点慢,内疚! 今天要介绍的是排序算法中的基数排序(Radix Sort),这类排序也是一个分而治之的排序,是对桶排序的一个升级和改造,也是稳定 ...

  9. DEVC++ C++ Builder6.0

    Devc++安装后无法正常编译程序 出现错误,不知道是什么,可能是不兼容的原因 然后就是一直编译出错,程序是最简单的helloworld程序. 之后选择安装C++ Builder 6.0

  10. Console下Pause效果的函数

    function PauseConsole(Prompt: PAnsiChar): boolean;var  hStdIn, hStdOut: THandle;  dwRd, dwWr, i: Car ...