Chinaunix首页 | 论坛 | 博客
  • 博客访问: 536134
  • 博文数量: 103
  • 博客积分: 2024
  • 博客等级: 上尉
  • 技术积分: 1294
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-08 21:17
文章分类

全部博文(103)

文章存档

2012年(2)

2011年(21)

2010年(80)

分类: LINUX

2010-04-30 13:38:14

ISATAP

(一),工作原理:

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

1ISATAP技术原理

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







                             


1











8ISATAP隧道


IPv4网络中,PC2要与IPv6网络中的PC1进行通讯,首先在路由器上配置ISATAP隧道,包括隧道的IPv6地址、源IPv4地址及ISATAP前缀等信息,系统根据其IPv4地址生成ISATAP接口ID,如图中的5EFE:0A01:0201,根据接口ID生成一个ISATAP链路本地IPv6地址FE80:: 5EFE:0A01:0201

ISATAP
主机也同样使用本地链路前缀FE80::/10加接口ID表示本地链路地址,它利用此本地链路地址通过ISATAP隧道向ISATAP路由器发送路由器请求消息;ISATAP路由器使用路由器通告消息响应主机的请求,消息中包含ISATAP前缀,主机将ISATAP前缀与接口ID组合得到自己的IPv6地址,即1::5EFE:0A01:0206,并用此地址访问IPv6主机。

PC2发送访问IPv6网络中的PC1的报文时,将从报文的下一跳IPv6地址中取出IPv4地址作为IPv4封装的目的地址。报文被转发到ISATAP路由器后,被解封装并送交IPv6协议栈处理,IPv6报文根据IPv6路由表转发最终PC1收到,其应答报文到达ISATAP路由器后被封装通过隧道转发给PC2,单次通信完成。


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所示,通信过程如下:


               

                                            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服务器完成了一次完整的数据通信过程。


(二)参考资料:

RFC5214

RFC4214

华为,思科均有产品对其支持

(三)linux支持

这篇文章讲到客户端需要的支持

 [clients and router]

  •  [clients and router]

但这篇文章是02年的,信息比较旧

http://ipv6.hust.edu.cn/tj155/index.php/categoryblog/69-ubuntu-isatap-config.html

这篇文章说可以用sit类型的隧道实现ISATAP的功能,对于我们的fedora 4应该也可以,但实验的时候没有找到合适的ISATAP路由器,没有成功。

阅读(5318) | 评论(0) | 转发(0) |
0

上一篇:sld

下一篇:raw socket

给主人留下些什么吧!~~