摘要:首先叙述了站内自动隧道寻址协议ISATAP过渡技术原理,指出了该技术在网络从IPv4向IPv6过渡过程中的作用,分析了该技术所存在的网络安全问题,并提出了相应的应对策略。
关键词:ISATAP,因特网,网络安全
由于从IPv4向IPv6过渡已经是大势所趋,所以目前有许多人在积极探索从IPv4向IPv6过渡的技术。这些技术从实现方式上可以分为双栈、翻译和隧道三种,也可以从实现的网络层次上分为核心网、企业网和主机三种。站内自动隧道寻址协议(ISATAP:Intra-site Automatic Tunnel Addressing Protocol)过渡技术就是采用了双栈和隧道技术,并基于企业网和主机的一种从IPv4向IPv6过渡的技术。
一、ISATAP技术原理
ISATAP过渡技术基本原理如图1所示。
图1 ISATAP技术基本原理
双栈主机在与其他主机或路由器通信之前,首先要获得一个ISATAP地址。双栈主机先向ISATAP服务器发送路由请求,得到一个64位的IPv6地址前缀,然后再加上64位的接口标识符∷0:5EFE:X.X.X.X(这里的X.X.X.X是双栈主机的IPv4单播地址),这样就构成一个ISATAP地址。双栈主机配置了ISATAP地址后,就成了一个ISATAP客户机,进而就可以在IPv4域内和其他的ISATAP客户机进行通信了。一般来说,ISATAP地址的配置既支持无状态地址自动配置方式,也支持手工配置方式。
1.同一个IPv4域内ISATAP主机间的通信过程
在同一个IPv4域内,两台ISATAP客户机的通信过程如下:
①双栈主机1获得双栈主机2的ISATAP地址后,将需要发送的数据包交给ISATAP接口进行发送;
②ISATAP从该数据包的IPv6源地址和目的地址中提取出相应的IPv4源和目的地址,并对该数据包用IPv4头部进行封装;
③封装后的数据包按照其IPv4目的地址被发送到双栈主机2;
④双栈主机2接收到该数据包后对其解封装,得到原始IPv6数据包;
⑤双栈主机2通过与上述过程类似的过程将应答数据返回给双栈主机1。
从上面的通信过程中我们可以看出,ISATAP实际上是将IPv4网络作为一个承载平台,通过在其上面建立一个IPv6-in-IPv4自动隧道来完成IPv6通信的。
2. ISATAP主机与其他网络之间的通信过程
ISATAP主机除了可以在ISATAP域内与其他ISATAP主机通信外,还可以通过ISATAP路由器实现与其他网络的通信。比如,ISATAP主机就可以通过ISATAP路由器与IPv6网络中的IPv6服务器进行通信,其通信原理如图2所示,通信过程如下:
图2 ISATAP主机与IPv6网络中的IPv6服务器之间的通信过程
①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服务器完成了一次完整的数据通信过程。
二、ISATAP地址解析相关机制
ISATAP过渡技术通过IPv6的邻居发现机制(参见IETF RFC 2461)来实现路由重定向、邻居不可达检测(NUD)和路由下一跳选择。
ISATAP地址的获得是由链路层IPv4地址通过静态计算得到的。在获得了ISATAP地址之后,主机通过发送邻居请求和接收邻居宣告消息来确认邻居是否可达。另外,主机还需要执行邻居不可达检测。因为是在某一个ISATAP域内实现的,所以它假设IPv4地址是不重复的,这样ISATAP地址也就不需要进行重复地址检测。
ISATAP节点在执行路由器和前缀发现时,除了使用邻居发现中的数据结构前缀列表和默认路由器列表外,ISATAP链路还增加了一个新的数据结构――潜在路由器列表(PRL),以及一个新的配置变量PrlRefreshInterval。潜在路由器列表列出潜在的、可供ISATAP节点使用的路由器;变量PrlRefreshInterval用来设置初始化之后连续两次PRL重新刷新的间隔秒数。
三、ISATAP技术的优点
ISATAP过渡技术具有如下优点:
①ISATAP过渡技术所使用的IPv6地址前缀可以是任何合法的IPv6 单点传播的64 位前缀,包括全球性地址前缀(以2001:,2002:,3ffe:开头)、链路本地前缀(以fe80:开头)和站点本地前缀(以fec0: 开头)等等,这使得该项技术很容易与其他过渡技术结合起来使用,尤其是在和6 to 4隧道技术相结合使用时,可以使内部网的双栈主机非常容易地接入IPv6主干网;
②ISATAP过渡技术不要求隧道端节点必须具有全球惟一的IPv4地址,只要双栈主机具有IPv4单播地址即可,不管该地址公有的还是私有的都可以。这样也就有效地避免了IPv4地址不足的问题;
③ISATAP过渡技术不需要站点提供特殊的IPv4服务(例如多播等),实现起来简便易行;
④使用ISATAP过渡技术时,在边界网关上不影响聚合范围的情况下,能够在IPv4站点内部署新的IPv6主机,因此可用于内部私有网中各双栈主机之间进行IPv6通信。
四、ISATAP网络安全问题及应对策略
由于ISATAP使用隧道技术,所以隧道技术所面临的网络安全问题也同样是ISATAP所面临的网络安全问题,它最容易受到的攻击就是地址欺骗攻击。如果不加防范,可以很容易地通过地址欺骗攻击将大量的协议类型为41的数据包注入到ISATAP链路中。ISATAP 网络所受到的地址欺骗攻击可能来自于ISATAP 网络外部。由于在整个IPv4 站点中都使用ISATAP链路,所以对于来自于站点外的攻击可以通过严格限制对站点的访问来限制对链路的访问,也就是要考虑在网络入口处的数据过滤问题,通过在站点的边界路由器入口处执行IPv4数据过滤、IPv6数据过滤和协议类型为41的数据包过滤来保证。
ISATAP 网络所受到的地址欺骗攻击也可能来自于ISATAP 网络内部。站点内的地址欺骗攻击可以通过一个伪装成路由器的节点来进行,ISATAP网络内部所有的ISATAP主机都处于相同的链路上,这种来自于相同链路上的攻击很难防止,尤其是在ISATAP网络内部存在大量主机的时候。考虑到在PRL中提供了路由器ISATAP 公布的IPv4接口地址,所以可以将这些地址用在安全防范的策略之中。可是,这种防范方法需要保证随时更新PRL数据,这个操作通过手工实现几乎是不可能的,而目前还没有更好的自动实现的解决方案,这也就成了ISATAP技术的最大弱点。
再有,由于站点内的所有ISATAP主机都在同一个IPv6链接上,尽管可以像通常一样在ISATAP路由器处监控流量,但是由于ISATAP路由器处于站点的边缘,而且在站点内的主机之间通过ISATAP链路传输的包并不经过该路由器,因此根本没有办法监控和排除出现内部攻击的可能性。为了有效地防止来自于ISATAP站点内源IPv6地址欺骗的攻击,需要在路由器的ISATAP接口上启用缓解地址欺骗攻击的安全机制,至少ISATAP站点的边界网关必须记录地址欺骗源地址的来源。这样,一旦出现了地址欺骗攻击,还可以利用这些记录进行分析,并能够很快地找出产生地址欺骗攻击的源头。
由于ISATAP技术使用RFC 2461所述的邻居发现协议,而邻居发现协议最容易受到的攻击是拒绝服务(DoS)攻击。因此,这方面的安全问题也需要加以考虑。有关这方面的具体防范措施可参考IETF RFC 2461中的“安全考虑(Security Considerations)”一节。
五、结语
ISATAP过渡技术使用一个内嵌IPv4地址的IPv6地址,无论站点使用的是全球还是私有的IPv4地址,都可以在站点内使用IPv6-in-IPv4的自动隧道技术。ISATAP地址格式既可以使用站点单播IPv6地址前缀,也可以使用全局单播IPv6地址前缀,即可以支持站点和全局的IPv6路由。通过ISATAP过渡技术,可以使IPv4站点内的双栈节点通过自动隧道接入到IPv6路由器,并且允许双栈节点不必使用与IPv6路由器共享同一物理链路就可以通过IP