linux

位置:IT落伍者 >> linux >> 浏览文章

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


发布日期:2021年09月18日
 
Linux下IPV4和IPV6的互操作性研究

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

使用IPv的必要性

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

IPv和IPv的互操作

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

· 可增加的升级和扩展性:单个IPv的主机和路由器可在不需要其它的主机和路由器同时升级的情况下单独升级成IPv新的IPv主机和路由器可以后再一台台的安装成IPv

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

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

·很低的启动开销将IPv系统升级成IPv很少或几乎不需要准备工作

IPv转换机制确保IPv主机能和任何因特网上的IPv通信直到IPv被淘汰并在那时允许在小范围内互相通信这个特征保护了用户已经在IPv上的巨大投入并使得IPv不会将IPv孤立

基于以上原因IPv主机和路由器上与Ipv主机和路由器现在广泛采用了如下两种互操作的机制隧道技术和双IP协议栈技术

A.隧道技术

隧道提供了一种利用IPv路由基础上传输IPv包的方法隧道应用于下面几种应用中路由器到路由器主机到路由器主机到主机和路由器到主机

路由器到路由器和主机到路由器隧道技术都是将IPv包传到路由器隧道的终点是中间路由器必须将IPv包解出并且转发到它的目的地隧道终点的地址必须由配置隧道节点的配置信息获得这种类型的隧道称作人工配置隧道

当利用隧道到达IPv的主干网时如果一个在IPv网络和IPv网络边界的IPv/IPv路由器的IPv地址已知时那么隧道的端点可以配置为这个路由器这个隧道的配置可以被写进路由表中作为缺省路由这就是说所有IPv目的地址符合此路由的都可以使用这条隧道这种隧道就是默认配置的隧道

主机到主机和路由器到主机隧道技术都是将IPv包传到主机的可以用IPv包的信息获得终点地址隧道入口创建一个IPv封装头并传送包隧道出口解包去掉IPv更新IPv处理IPv隧道入口节点需要保存隧道信息如MTU等如果用于目的节点的IPv地址是与IPv兼容的地址隧道的IPv地址可以自动从IPv地址继承下来因此也就不需要人工配置这种隧道也就称为自动隧道

IPv兼容的IPv地址格式如下

B.双IP协议栈方式

双协议栈方式包括提供IPv和IPv协议栈的主机和路由器双协议栈工作方式的简单描述如下

·如果应用程序使用的目的地址是IPv地址那么将使用IPv协议栈

·如果应用程序使用的目的地址是兼容IPv的IPv地址那么IPv就封装到IPv

·如果目的地址是另一种类型的IPv地址那么就使用IPv地址可能封装在默认配置的隧道中

双协议栈的缺省IP包发送算法为

a 如果IP包的目的地址是IPv地址

如果目的站点在可达链路上直接发送

如果目的站点不可达要么送往在线路由器要么不可达

b 如果IP包的目的地址是IPv兼容的IPv地址

如果目的站点在可达链路上直接发送IPv

如果目的站点处于offlink)如果有可达IPv路由器则封装在IPv包中发往IPv路由器)如果有可达IPv路由器则不封装直接发送)如果没有可达路由器则不可达

c 如果IP包的目的地址是纯IPv地址

如果目的站点在 可达链路上直接发送IPv

如果目的站点处于offlink)如果有可达IPv路由器则直接发送到路由器如果目的地通过手动隧道可达并且链路上有可达IPv路由器则封装成IPv目的IP地址为隧道终点地址链路地址为可达路由器的链路地址)否则为不可达

d 在线/离线的确定

IPv使用子网掩码确定IPv使用邻居发现协议两者共同使用的是如果目的地址是IPv地址则使用RFC比较两者的掩码如果目的地址是IPv兼容的IPv地址则使用低位目的地址的子网掩码比较如果是IPv纯地址则使用邻居发现协议

Linux下IPv网络研究实验

我们在研究了大量IPv协议(主要的IPv RFC文档)之后进行了一系列的IPv研究实验现详细叙述如下

.Pv研究实验平台的选择

在国内有几所大学已经或正在进行IPv实验研究并且建立了CERNET IPv实验床我们在与CERNET IPv实验床的老师和同学取得联系并进行了交流实验床网络中心最初的组网是通过主机配置FreeBSD来完成的年开始用的是FreeBSD现在是FreeBSD都有此外有些科研人员也开始采用linux进行实验路由器现在采用的是Nokia的IP还有FreeBSD+Mrtd的主机电子科大作为教育网西南地区的主节点也得到了Nokia捐赠的IPv路由器在此基础之上我们通过分析比较研究各种操作系统最后选定用linux作为IPv主机和路由器研究实验平台具体原因如下

A. Linux作为开放的操作系统其原代码完全公开具有很强的灵活性现在有很多自由软件联盟为Linux免费开发如件故Linux具有很强的生命力和活力而其他大部分由个别公司开发的操作系统一方面原代码不公开无法根据自己的要求修改内核其公司的发展的兴衰很大程度上影响该操作系统的发展

B. Linux操作系统很先进一直跟蹤关注网络的发展用Linux组建Internet网络建立网站进行网络开发研究都是很好的选择并且其内核从开始就已经开始支持IPv技术了这等于就为我们提供了IPv协议栈原代码我们可以利用其共享代码做IPv的研究开发

.Linux主机IPv协议支持技术研究

在选定了实验平台之后我们就着手进行一系列的IPv实验主要针对在已大量安装了IPv的主机和路由器情况下如何成功地兼容地升级到IPv如何运用在IPv主机和路由器上与Ipv主机和路由器成功互操作以及如何建立配置IPv主机和路由器在进行IPv实验之前我们根据网上查询资料及对Linux内核分析研究了如何建立IPv主机包括安装协议栈网络工具及网络程序现以Redhat Linux为例详细说明其具体步骤如下

A.支持IPv协议的新内核的编译

要让操作系统支持IPv就要安装IPv协议栈Redhat的内核为版本可支持IPv但是安装缺省不支持由于协议栈在操作系统中是处于核心地位的必须重新编译新的内核才能安装上新的协议栈其具体步骤如下

)以root身份登陆进入源码所在的目录cd /usr/src/linux

)运行 make clean清除一些可能过期的中间代码

) 然后配置内核选项make menuconfig 或者 make xmenuconfig运行make menuconfig后将下面的支持IPv的选项选上其他内核选项请根据系统的具体情况作出符合系统的选择

Code maturity level options

Prompt for development and/or incomplete code/drivers Yes

Networking options

Packet socket yes

Unix domain sockets yes

TCP/IP networking yes

The IPv protocol yes

IPv: enable EUI token format yes

IPv: disable provider based address yes

File systems

/ procfilesy

上一篇:32位嵌入式系统和嵌入式Linux

下一篇:一起学习在linux下使用汇编语言(3)