Linux下IPV4与IPV6的互操作性研究

网络 网络管理
要将现在的IPv4网络升级到IPv6网络,不可能所有的机器在同时启用IPv6协议栈,所以必须实现IPv4与IPv6络之间的互操作及平滑升级机制。

作为向下一代互联网络协议过渡的重要步骤,国际的IPv6试验网--6bone在1996年成立了。现在,6bone已经扩展到全球50多个国家和地区,成为IPv6研究者、开发者和实践者的主要平台。CERNET国家网络中心于1998年6月加入6bone,同年11月成为其骨干网成员。 电子科大作为教育网的西南主节点,在得到Nokia的IPv6路由器之后,积极参与IPv6技术研究,我们先查阅研究了大多数与IPv6有关的RFC文档和相关技术资料,并且在此基础上进行了很多网络实验。该文先简单阐述了IPV6的必要性和IPv4与IPv6升级转换的机制,然后具体阐明了在Linux操作系统下进行的IPv6网络实验及其结论。

一、使用IPv6的必要性       

现在运行的因特网协议IPv4存在其固有的局限性,一是地址问题,IPv4的地址只有32位,这意味着总的地址数大约是40亿,并且还有许多地址是不可用的。按照目前网络的发展趋势,到2005和2015年之间IPv4的地址就会耗尽,必须用另一种地址方案来替代它,二是IPv4提供的服务局限性,IPv4尽它的最大努力来传送信息包,但是它不会保证提供给上层的服务是可靠的,没有QoS(服务质量)的概念。这些问题都是IPv4的薄弱环节,致命弱点,另外因特网不断提出对移动性、安全性以及多媒体业务的支持等问题,IPv4都无法解决,这样就迫使我们必须引入下一带因特网协议--IPv6。     

二、IPv4与IPv6的互操作       

要将现在的IPv4网络升级到IPv6网络,不可能所有的机器在同时启用IPv6协议栈,配置好IPV6地址,安装好IPV6应用程序,所以必须实现IPv4与IPv6络之间的互操作及平滑升级机制。IPv4到IPv6的升级转换机制的首要条件是答应IPv6和IPv4主机互操作;其次是在相互依靠性很小的情况下使IPv6的主机和路由器能在因特网中快速发展;第三是转换对端用户,系统治理员和网络实施者来说易于理解和执行。IPv6转换机制是一套主机和路由器执行的协议机制,有一套定址和配置的操作指导方案,尽可能减少转换过程中造成的破坏。

IPv6转换机制的主要目标如下:
     
可增加的升级和扩展性:单个IPv4的主机和路由器可在不需要其它的主机和路由器同时升级的情况下单独升级成IPv6,新的IPv6主机和路由器可以后再一台台的安装成IPv6。     

最小的升级依靠性。将主机升级成IPv6的唯一先决条件是域名服务器必须先升级以处理IPv6地址记录。    

方便的寻址。当IPv4的主机和路由器升级到IPv6后,他们必须继续用原来的地址。他们不需要指定新的地址。治理者不需制定新的地址分配方案。     

很低的启动开销。将IPv4系统升级成IPv6很少或几乎不需要预备工作。     

IPv6转换机制确保IPv6主机能和任何因特网上的IPv4通信,直到IPv4被淘汰,并在那时答应在小范围内互相通信。这个特征保护了用户已经在IPv4上的巨大投入并使得IPv6不会将IPv4孤立。基于以上原因,IPv4主机和路由器上与Ipv6主机和路由器现在广泛采用了如下两种互操作的机制:隧道技术和双IP协议栈技术。        

A.隧道技术:       

隧道提供了一种利用IPv4路由基础上传输IPv6包的方法。隧道应用于下面几种应用中:路由器到路由器、主机到路由器、主机到主机和路由器到主机。路由器到路由器和主机到路由器隧道技术都是将IPv6包传到路由器,隧道的终点是中间路由器,必须将IPv6包解出,并且转发到它的目的地。隧道终点的地址必须由配置隧道节点的配置信息获得,这种类型的隧道称作人工配置隧道。当利用隧道到达IPv6的主干网时,假如一个在IPv4网络和IPv6网络边界的IPv4/IPv6路由器的IPv4地址已知时,那么隧道的端点可以配置为这个路由器。这个隧道的配置可以被写进路由表中作为"缺省路由"。这就是说所有IPv6目的地址符合此路由的都可以使用这条隧道,这种隧道就是默认配置的隧道。主机到主机和路由器到主机隧道技术都是将IPv6包传到主机的,可以用IPv6包的信息获得终点地址。隧道入口创建一个IPv4封装头并传送包,隧道出口解包,去掉IPv4头,更新IPv6头,处理IPv6包。隧道入口节点需要保存隧道信息如MTU等。假如用于目的节点的IPv6地址是与IPv4兼容的地址,隧道的IPv4地址可以自动从IPv6地址继续下来,因此也就不需要人工配置。这种隧道也就称为自动隧道。

B.双IP协议栈方式
       
双协议栈方式包括提供IPv6和IPv4协议栈的主机和路由器。双协议栈工作方式的简单描述如下:假如应用程序使用的目的地址是IPv4地址,那么将使用IPv4协议栈;假如应用程序使用的目的地址是兼容IPv4的IPv6地址,那么IPv6就封装到IPv4中;假如目的地址是另一种类型的IPv6地址,那么就使用IPv6地址,可能封装在默认配置的隧道中。
    
双协议栈的缺省IP包发送算法为:

a. 假如IP包的目的地址是IPv4地址:   
  
假如目的站点在可达链路上,直接发送;假如目的站点不可达,要么送往在线路由器,要么不可达。   

b. 假如IP包的目的地址是IPv4兼容的IPv6地址:     

假如目的站点在可达链路上,直接发送IPv6包;假如目的站点处于off-link,(1)假如有可达IPv4路由器,则封装在IPv4包中发往IPv4路由器;(2)假如有可达IPv6路由器,则不封装,直接发送;(3)假如没有可达路由器,则不可达。   

c. 假如IP包的目的地址是纯IPv6地址:     

假如目的站点在 可达链路上,直接发送IPv6包;假如目的站点处于off-link,(1)假如有可达IPv6路由器,则直接发送到路由器;(2)  假如目的地通过手动隧道可达,并且链路上有可达IPv4路由器,则封装成IPv4包,目的IP地址为隧道终点地址,链路地址为可达路由器的链路地址。(3)否则为不可达。   

d. 在线/离线的确定     

IPv4使用子网掩码确定,IPv6使用邻居发现协议。两者共同使用的是:假如目的地址是IPv4地址,则使用RFC1122比较两者的掩码;假如目的地址是IPv4兼容的IPv6地址,则使用低32位目的地址的子网掩码比较;假如是IPv6纯地址,则使用邻居发现协议。

责任编辑:段燃 来源: knownSkyOracle
相关推荐

2014-12-16 09:10:52

IPv4IPv6TCP

2018-11-23 09:11:18

IPV4IPV6头部

2010-06-07 15:25:58

IPv4与IPv6

2010-06-08 17:38:17

IPv4与IPv6翻译策略

2010-06-09 17:07:46

IPv6与IPv4

2018-08-15 09:21:31

IPv6IPv4协议

2019-09-23 11:03:55

IPv6IPv4网络

2019-07-01 10:09:09

IPv6IPv4运营商

2010-07-21 21:55:34

IPv4IPv6

2010-05-27 13:23:43

IPv4与IPv6

2010-06-07 14:07:18

IPv4与IPv6

2010-04-13 19:45:31

IPv6IPv4

2010-05-26 17:50:40

IPv4与IPv6协议转换

2013-07-24 09:56:48

IPv4IPv6

2010-06-07 13:20:34

IPv6与IPv4

2010-05-04 09:56:54

IPv4黑市IPv6

2013-11-20 09:22:44

IPv4过渡IPv6

2010-05-26 17:57:15

IPv6报头

2010-05-28 17:24:38

IPv4与IPv6

2020-05-12 09:01:30

IPv6IPv4网络协议
点赞
收藏

51CTO技术栈公众号