查看: 14197|回复: 2

基于NAT-PT的IPv6试验

[复制链接]
发表于 2006-9-25 20:32:35 | 显示全部楼层 |阅读模式
  NAT-PT是附带协议转换的网络地址转换器,通过修改协议报头来转换网络地址,使IPv4节点和IPv6节点互通。与一些隧道技术不同,NAT-PT只要求在IPv4和IPv6之间互联的网络转换设备上启用,协议转换的目的是实现IPv4和IPv6协议头之间的转换,地址转换则是为了让IPv4和IPv6网络中的主机互相识别对方。另外,NAT-PT通过与应用层网关(ALG)相结合,实现了只安装IPv6的主机和只安装了IPv4主机的大部分应用的相互通信。
  同时,NAT-PT将SIIT(Stateless IP/ICMP Translation)协议转换技术和IPv4网络中动态地址翻译技术(NAT)相结合。它利用了SIIT技术的工作机制,同时又利用了传统的IPv4下的NAT技术,动态地访问IPv4节点的IPv6节点分配IPv4地址,很好地解决了SIIT技术中的全局IPv4地址池规模有限的问题。

SIIT技术
  无状态IP/ICMP翻译技术(Stateless IP/ICMP Translation,SIIT)是对IP/ICMP报文进行协议转换的技术,它并不记录一个流的状态(无状态)。在SIIT网络中,IPv6节点需要配置成格式为::FFFF:0:W.X.Y.Z的IPv4翻译地址,其中W.X.Y.Z是IPv4节点认为IPv6节点在IPv4网络中的地址,IPv6节点访问IPv4节点则通过映射地址::FFFF:0:W.X.Y.Z来表示IPv4节点。
  设IPv4主机A(IPv4地址为100.0.0.1),IPv6主机B的地址是::FFFF:0:W.X.Y.Z的IPv4翻译地址,并且W.X.Y.Z是全局IPv4单播地址(设为1.1.1.1)。



1.SIIT原理分析
  (1)IPv4到IPv6的地址头转换
  现假设A要访问B:当A发出的访问B的报文到达SIIT协议转换器时,报文的目的地址是B的低32位(这里是1.1.1.1),SIIT判断出此地址属于其管理的IPV6-Only节点的IPv4地址空间(设为1.1.1.1~1.1.1.254),就进行IPv4→IPv6的协议报文头转换,把源地址转换成IPv4的映射地址,目的地址转换为IPv4的翻译地址::FFFF:0:W.X.Y.Z,再把此报文传给主机B。即源地址100.0.0.1→::FFFF:0:100.0.0.1,目的地址1.1.1.1→::FFFF:0:1.1.1.1。
  (2)IPv6到IPv4的地址头转换
  现在假设B要访问A:当B发出的访问A的报文到达SIIT协议转换器时,报文的源地址是B的翻译地址(::FFFF:0:1.1.1.1),目的地址是A的映射地址(::FFFF:0:100.0.0.1),若 SIIT判断出目的地址是IPv4的映射地址,就进行IPv6→IPv4的协议报文头转换,转换的结果为:源地址::FFFF:0:1.1.1.1→1.1.1.1,目的地址::FFFF:0:100.0.0.1→100.0.0.1。
2.SIIT特点
  SIIT技术使用特定的地址空间来完成IPv4地址与IPv6地址的转换。SIIT需要有一个全局的IPv4地址池给与IPv4节点通信的IPv6节点分配IPv4地址。因为SIIT无法进行地址复用,所以地址池的空间限制了IPv6节点的数量。同时,当SIIT的IPv4地址池中的地址分配完后,新的IPv6节点如果需要同IPv4节点通信,就会因为没有足够的IPv4地址空间导致SIIT无法进行协议转换,造成通信中断。

静态NAT-PT
  静态NAT-PT是由NAT-PT网关静态的绑定IPv6和IPv4地址。当IPv4主机和IPv6主机之间互通,其报文在经过NAT-PT网关时,NAT-PT网关根据配置的绑定关系进行转换。



  在图2中,IPv6网络中的PCA是IPv6主机,地址1::1,它用一个IPv6地址2::2来标识IPv4主机PCB;IPv4网络中的PCB是IPv4主机,地址为2.2.2.2,它用一个IPv4地址2.2.2.3来标识IPv6主机PCA。路由器是NAT-PT网关。
1.静态NAT-PT原理
  当PCA向PCB发送报文时,源地址为1::1,目的地址为2::2,此报文到达路由器时,路由器查看目的地址前缀2::,并根据配置检查它匹配自己的静态映射,路由器就对此报文进行转换,转换的结果是:源地址1::1→2.2.2.3,目的地址2::2→2.2.2.2。此转换后的报文到达PCB后,PCB回复此报文,路由器又进行逆向转换。
2.静态NAT-PT特点
  静态NAT-PT原理简单明了,但由于网关上的配置的IPv6地址与IPv4地址一一对应,故配置复杂,维护量大,而且需要消耗大量的IPv4地址。

动态NAT-PT
  在动态NAT-PT中,NAT-PT网关向IPv6网络通告一个96位的地址前缀,并结合主机32位IPv4地址作为对IPv4网络中的主机的标识。从IPv6网络中的主机向IPv4网络发送的报文,其目的地址前缀与NAT-PT发布的地址前缀相同,这些报文都被路由到NAT-PT网关,由NAT-PT网关对报文头进行修改,取出其中的IPv4地址信息,替换目的地址。同时,NAT-PT网关定义了IPv4地址池,NAT-PT网关从地址池中取出一个地址来替换IPv6报文的源地址,从而完成从IPv6地址到IPv4地址的转换。
  在图3中,NAT-PT网关向IPv6网络通告的地址前缀为2::,所以PCA用一个2::2.2.2.2的IPv6地址来标识IPv4主机PCB。



1.动态NAT-PT原理
  当PCA向PCB发送报文时,源地址为1::1,目的地址为2::2.2.2.2,此报文到达路由器时,路由器查看目的地址前缀2::,并根据配置检查它匹配自己的动态映射,路由器就对此报文进行转换,并从地址池中选取一个IPv4地址2.2.2.3来替换IPv6源地址1::1,再根据IPv6目的地址2::2.2.2.2的低32位IPv4地址信息2.2.2.2来替换IPv6目的地址。转换的结果是:源地址1::1→2.2.2.3,目的地址2::2.2.2.2→2.2.2.2。此转换后的报文到达PCB后,PCB回复此报文,路由器进行逆向转换。
2.动态NAT-PT的特点
  动态NAT-PT改进了静态NAT-PT配置复杂、消耗大量IPv4地址池的缺点。由于它采用上层协议映射的方法,故只需用很少的IPv4地址就可以支持大量的IPv6到IPv4的转换。但是,动态NAT-PT只能由IPv6一侧首先发起连接,路由器把IPv6地址转换为IPv4地址后,IPv4主机才知道使用哪一个IPv4地址来标识IPv6主机。若从IPv4端首先发起连接,IPv4主机并不知道IPv6主机的IPv4地址,因为这个地址是NAT-PT网关从地址池中随机选择的,连接无法进行。

结合ALG的动态NAT-PT
  ALG(Application Level Gateway)即应用层网关。某些应用(如DNS)在净载荷中包含有IP地址,此时只能通过ALG对报文净载荷的IP地址进行格式转换。通过结合ALG的动态NAT-PT,一方面可以使IPv4主机与IPv6主机任意一方都可以主动发起连接,另一方面也可基于DNS名称访问对方主机,是一种很实用的IPv6过渡技术。
如图4,IPv4和IPv6网络中都有DNS服务器。IPv4主机用一个IPv4地址1.1.1.3来标识IPv6的DNS服务器。NAT-PT向IPv6网络中通告的地址前缀为2::。



1.ALG NAT-PT的原理分析
  (1)IPv4主机B要与IPv6主机A通信,首先向IPv6网络的DNS发出请求,对主机A进行域名解析,请求报文的源地址为2.2.2.2,目的地址为1.1.1.3,报文中包含类型为A的查询报文,其中包含需要解析的名字A。
  (2)请求到达NAT-PT网关后,NAT-PT网关对报文的头部进行转换。转换结果:源地址2.2.2.2→2::2.2.2.2,目的地址1.1.1.3→1::2。同时,NAT-PT网关中的DNS-ALG对其内容进行修改,把A类型请求转换成A6类型,然后将此报文转发到IPv6网络内的DNS。
  (3)IPv6内的DNS服务器收到报文后,查询自己的记录表,解析出A的IPv6地址为1::1,于是向主机B做出回应。报文的源地址为1::2,目的地址为2::2.2.2.3,此报文会被路由到NAT-PT网关。
  (4)报文到达NAT-PT网关后, NAT-PT对其头部进行转换。同时,DNS-ALG将其中的DNS应答部分也进行修改,把A6类型转换成A类型,并从IPv4地址池中分配一个地址2.2.2.3,替换应答中的IPv6地址1::1,并记录二者之间的映射信息。
  (5)主机B在收到此DNS应答后,就知道主机A的IPv4地址为2.2.2.3。B就可以发起到主机A的连接,报文源地址为2.2.2.2,目的地址为2.2.2.3。
  (6)报文到达NAT-PT网关后,由于它已经记录了IPv4地址2.2.2.3与IPv6地址之间的映射,就可以对地址进行转换。转换结果为:源地址2.2.2.2→2::2.2.2.2,目的地址2.2.2.3→1::1。
  (7)报文到达IPv6主机A后,A对此报文回复,源地址为1::1,目的地址为2::2.2.2.2。
  (8)NAT-PT网关再按照原有记录的信息对此报文进行地址转换。转换结果:源地址1::1→2.2.2.3,目的地址2::2.2.2.2→2.2.2.2。,并将此报文路由到B。
2.ALG NAT-PT的特点
  ALG NAT-PT结合ALG,可以对报文载荷内的数据进行转换,如DNS、FTP等应用都可以进行转换与互通。但缺点是进一步加大了复杂度,对网关的要求较高,可能会造成网络的一个性能瓶颈。

部署IPv6试验平台
1.试验环境
  华为Quidway S系列以太网交换机1台;PC两台;路由器2台(安装Commware V5版本软件)。
  配置电缆1根,网线若干。
2.试验平台逻辑拓扑图
  采用Ethernet组网,所有设备都使用同一台以太网交换机连接,并采用VLAN隔离不同的逻辑链路(如图5)。检查,保证网络连接的互通性。



3.静态NAT-PT的配置与测试
  (1)配置路由器rt1
#将通过rt1的所有数据包路由到rt2的E1/0接口(1::2/64)
[rt1] ipv6 route-static :: 0 1::2
#为rt1的E1/0接口配置IPv6地址1::1/64
[rt1] interface Ethernet1/0
[rt1- Ethernet1/0] ipv6 address 1::1 64
[rt1- Ethernet1/0] quit
  (2)配置路由器rt2
  假设使rt1(IPv6网络的主机)可以和PC1(IPv4网络主机)互通。IPv4主机PC1使用地址2::2在IPv6网络内标识自己,IPv6主机rt1在IPv4网络内使用地址2.2.2.3。完成配置后,可以在rt1路由器上ping 2::2或者在PC1上ping 2.2.2.3可以测试连通性。具体配置:
#配置IPv4侧报文的静态映射
[rt2] natpt v4bound static 2.2.2.2 0002::0002
#配置IPv6侧报文的静态映射
[rt2] natpt v6bound static 0001::0001 2.2.2.3
#配置IPv6转换报文前缀
[rt2] natpt prefix 0002::
#配置接口Ethernet3/0的IPv4地址,并在该接口启动NAT-PT功能
[rt2] interface Ethernet3/0
[rt2- Ethernet3/0] ip address 2.2.2.1 255.255.255.0
[rt2- Ethernet3/0] natpt enable
[rt2- Ethernet3/0] quit
#配置IPv4网络的DNS接口Ethernet0/0
[rt2] interface Ethernet0/0
[rt2- Ethernet0/0] ip address 1.1.1.1 255.255.255.0
[rt2- Ethernet0/0] quit
#配置与IPv6网络连接的Ethernet1/0
[rt2] interface Ethernet1/0
[rt2- Ethernet1/0] ipv6 address 1::2 64
[rt2- Ethernet1/0] quit
  正如前面的分析,这里的对应是严格的双向对应。这种静态配置耗费IPv4地址资源,复杂度高,这些可以在动态的地址映射技术中得到解决。
4.动态NAT-PT的配置与测试
  (1)配置路由器rt1
  参看前面的配置。
  (2)配置路由器rt2
  先删除前面的静态NAT-PT的配置。再做如下配置:
#配置IPv4地址池
[rt2] natpt address-group 1 2.2.2.3 2.2.2.5
#配置ACL并定义规则
[rt2] acl number 1
[rt-acl-1] rule 0 permit
[rt-acl-1] quit
#配置IPv6侧报文的静态映射
[rt2] natpt v6bound dynamic prefix 0002:: address-group 1
#配置IPv6转换报文前缀
[rt2] natpt prefix 0002::
#配置接口Ethernet3/0的IPv4地址,并在该接口启动NAT-PT功能
[rt2] interface Ethernet3/0
[rt2- Ethernet3/0] ip address 2.2.2.1 255.255.255.0
[rt2- Ethernet3/0] natpt enable
[rt2- Ethernet3/0] quit
#配置IPv4网络的DNS接口Ethernet0/0
[rt2] interface Ethernet0/0
[rt2- Ethernet0/0] ip address 1.1.1.1 255.255.255.0
[rt2- Ethernet0/0] quit
#配置与IPv6网络连接的Ethernet1/0 ,并在该接口启动NAT-PT功能
[rt2] interface Ethernet1/0
[rt2- Ethernet1/0] ipv6 address 1::2 64
[rt2- Ethernet1/0] natpt enable
[rt2- Ethernet1/0] quit
  可以在rt1路由器上ping 2::2.2.2.2检查连接。可以根据前面的分析,检查IPv4网络主机最先发起连接的通信问题,并做相应的报文转发流程分析。
5.基于DNS-ALG的NAT-PT配置与测试
  (1)配置路由器rt1
  前面的配置与静态配置一样,这里再在rt1上配置DNS服务器。具体如下:
#配置rt1的DNS
[rt1] dns resolve
[rt1] dns server ipv6 2::101:102
(2)配置路由器rt1
[rt2] natpt address-group 1 2.2.2.3 2.2.2.254
#配置ACL并定义规则
[rt2] acl number 1
[rt-acl-1] rule 0 permit
[rt-acl-1] quit
#配置IPv6侧报文的静态映射
[rt2] natpt v6bound dynamic prefix 0002:: address-group 1
#配置IPv6转换报文前缀
[rt2] natpt prefix 0002::
#配置接口Ethernet3/0的IPv4地址,并在该接口启动NAT-PT功能
[rt2] interface Ethernet3/0
[rt2- Ethernet3/0] ip address 2.2.2.1 255.255.255.0
[rt2- Ethernet3/0] natpt enable
[rt2- Ethernet3/0] quit
#配置IPv4网络的DNS接口Ethernet0/0 ,并在该接口启动NAT-PT功能
[rt2] interface Ethernet0/0
[rt2- Ethernet0/0] ip address 1.1.1.1 255.255.255.0
[rt2- Ethernet0/0] natpt enable
[rt2- Ethernet0/0] quit
#配置与IPv6网络连接的Ethernet1/0 ,并在该接口启动NAT-PT功能
[rt2] interface Ethernet1/0
[rt2- Ethernet1/0] ipv6 address 1::2 64
[rt2- Ethernet1/0] natpt enable
[rt2- Ethernet1/0] quit
#在rt2上配置DNS
[rt2] dns resolve
[rt2] dns server ipv6 2::101:102
  可以根据前面的分析,验证与分析基于DNS应用的NAT-PT报文转发流程。
  NAT-PT不必修改已经存在的IPv4网络,就可以实现内部网络的IPv4主机对外部网络IPv6主机的访问,且通过上层协议映射使大量的IPv6主机使用同一个IPv4地址,节省了IPv4地址资源。从这个角度,它是一个很实用的IPv4和IPv6之间的过渡技术。
  同时,它也有很多缺点:属于同一会话的请求和响应都要通过同一个NAT-PT路由器,对NAT-PT路由器的性能要求苛刻;NAT-PT路由器还不能转换IPv4报文头的可选部分,可能无法使用某些网络应用;地址在传输过程中不断变化,端到端连接的安全性差。从这个角度,它并不是一个完美的、最彻底的解决方案。

[ 本帖最后由 garnett_wu 于 2006-9-25 20:41 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×
回复

使用道具 举报

发表于 2006-9-28 13:08:58 | 显示全部楼层
这个相信以后会大量应用,至少在相当长一段时间内IPv4还不会废弃掉.

努力学习中...
回复

使用道具 举报

发表于 2006-11-13 16:43:15 | 显示全部楼层
正需要,感谢楼主!
先下下来,努力学习以下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表