IPv4向IPv6过渡:ISATAP技术浅谈

由于从IPv4IPv6过渡已经是大势所趋,但是由于IPv4的成功和广泛使用,所以目前有很多的研究者都在积极探索从IPv4IPv6过渡的技术。目前已经出现的技术从实现上可以分为双栈、翻译和隧道三种,从实现的网络层次上分为核心网、企业网和主机三种。

       ISATAP6to4是目前比较流行的自动建立隧道的过渡技术,这两种技术都是通过将IPv4地址嵌入到IPv6地址当中,将IPv6包封装在IPv4中传送,在主机相互通信中抽出IPv4地址建立隧道,从而实现被IPv4隔离的IPv6孤岛之间的连接。

       站内自动隧道寻址协议(ISATAPIntra-Site Automatic Tunnel Addressing Protocol)过渡技术采用了双栈和隧道技术。ISATAPIPv4地址嵌入到IPv6地址中,当两台ISATAP主机通信时,自动抽取出IPv4地址建立隧道,不需要通过其它特殊网络设备,只要彼此间IPv4网络保持通畅即可实现。这种技术不要求隧道端节点必须具有全球唯一的IPv4地址,只要双栈具有IPv4单播地址即可(公有地址和私有地址都允许)。

       6to4RFC3056)机制被定义在站点之间进行IPv6通信。互相通信的每个站点必须至少有一台“6to4路由器作为出入口,使用特殊的地址格式(前缀为2002:),并将路由器的IPv4地址夹入到IPv6地址中,这样位于不同站点内的主机彼此通信时自动抽出IPv4地址在路由器之间建立Tunnel。通过“6to4路由器,不同的6to4 site内的主机可互相通信,当需与一般的IPv6主机通信时,则必须通过6to4 relay router6to4 relay router必须同时具备6to4IPv6接口。6to4需要一个全球合法的IPv4地址,所以对解决IPv4地址短缺没有太大帮助,但它不需要IPv6地址,因而能使站点快速升级到IPv6

       下面具体探讨ISATAP

1ISATAP技术原理

       双栈主机在与其他主机或路由器通信之前,首先要获得一个ISATAP地址。双栈主机先向ISATAP服务器发送路由请求,得到一个64位的IPv6地址前缀,然后再加上64位的接口标识符::0:5EFE:x.x.x.x(这里的x.x.x.x是双栈主机的IPv4单播地址),这样就构成一个ISATAP地址。双栈主机配置了ISATAP地址后,成为一个ISATAP客户机,就可以再IPv4域内和其他的ISATAP客户机进行通信了。一般来说,ISATAP地址的配置既支持无状态地址自动配置方式,也支持手工配置方式。原理如下图所示:

                             IPv4向IPv6过渡:ISATAP技术浅谈_第1张图片

1

1.1、同一个IPv4域内,两台ISATAP客户机间的通信过程如下

①双栈主机1获得双栈主机2ISATAP地址后,将需要发送的数据包交给ISATAP接口进行发送;

  ②ISATAP从该数据包的IPv6源地址和目的地址中提取出相应的IPv4源和目的地址,并对该数据包用IPv4头部进行封装; 

  ③封装后的数据包按照其IPv4目的地址被发送到双栈主机2

  ④双栈主机2接收到该数据包后对其解封装,得到原始IPv6数据包; 

⑤双栈主机2通过与上述过程类似的过程将应答数据返回给双栈主机1

       从上面的通信过程中我们可以看出,ISATAP实际上是将IPv4网络作为一个承载平台,通过在其上面建立一个IPv6-in-IPv4自动隧道来完成IPv6通信的。

1.2ISATAP客户机与其他网络之间的通信

       ISATAP主机除了可以在ISATAP域内与其他ISATAP主机通信外,还可以通过ISATAP路由器实现与其他网络的通信。比如,ISATAP主机可以通过ISATAP路由器与IPv6网络中的IPv6服务器进行通信,其通信原理如图2所示,通信过程如下:

               IPv4向IPv6过渡:ISATAP技术浅谈_第2张图片

                                            图2

ISATAP主机获得ISATAP地址(站点本地地址),并将下一跳跃点next hop设为ISATAP 路由器的ISATAP地址(站点本地地址);

②当ISATAP主机送出目的地为所在子网络以外的地址时,ISATAP先将IPv6数据包进行IPv4封装,然后以隧道方式送到ISATAP 路由器的IPv4地址;

ISATAP 路由器除去IPv4包头后,将IPv6 数据包转送给IPv6网络中的目的IPv6服务器;

       IPv6服务器直接将应答的IPv6数据包发回给ISATAP网络;

⑤在应答IPv6数据包经过ISATAP路由器时,ISATAP路由器先将应答IPv6数据包进行IPv4封装,然后再转发给ISATAP主机;

ISATAP主机收到应答数据包后,将数据包去掉IPv4包头,恢复成原始IPv6数据包。

       通过上述步骤,ISATAP主机与IPv6网络中的IPv6服务器完成了一次完整的数据通信过程。

2ISATAP地址解析相关机制

ISATAP过渡技术通过IPv6的邻居发现机制(参见IETF RFC 2461)来实现路由重定向、邻居不可达检测(NUD)和路由下一跳选择。

ISATAP地址的获得是由链路层IPv4地址通过静态计算得到的。在获得了ISATAP地址之后,主机通过发送邻居请求和接收邻居宣告消息来确认邻居是否可达。另外,主机还需要执行邻居不可达检测。因为是在某一个ISATAP域内实现的,所以它假设IPv4地址是不重复的,这样ISATAP地址也就不需要进行重复地址检测。

ISATAP节点在执行路由器和前缀发现时,除了使用邻居发现中的数据结构前缀列表和默认路由器列表外,ISATAP链路还增加了一个新的数据结构——潜在路由器列表(PRL),以及一个新的配置变量PrlRefreshInterval。潜在路由器列表列出潜在的、可供ISATAP节点使用的路由器;变量PrlRefreshInterval用来设置初始化之后连续两次PRL重新刷新的间隔秒数。

3ISATAP技术的优点

ISATAP过渡技术具有如下优点:

ISATAP过渡技术所使用的IPv6地址前缀可以是任何合法的IPv6 单点传播的64 位前缀,包括全球性地址前缀(以2001:2002:3ffe:开头)、链路本地前缀(以fe80:开头)和站点本地前缀(以fec0:开头)等等,这使得该项技术很容易与其他过渡技术结合起来使用,尤其是在和6to4隧道技术相结合使用时,可以使内部网的双栈主机非常容易地接入IPv6主干网;

ISATAP过渡技术不要求隧道端节点必须具有全球惟一的IPv4地址,只要双栈主机具有IPv4单播地址即可,不管该地址公有的还是私有的都可以。这样也就有效地避免了IPv4地址不足的问题;

ISATAP过渡技术不需要站点提供特殊的IPv4服务(例如多播等),实现起来简便易行;

④使用ISATAP过渡技术时,在边界网关上不影响聚合范围的情况下,能够在IPv4站点内部署新的IPv6主机,因此可用于内部私有网中各双栈主机之间进行IPv6通信。

你可能感兴趣的:(网络编程)