高级计算机网络在Linux下利用隧道技术构建IPV6的研究报告班级:计算机科学与技术(3班)姓名:xxx学号:xxxxxxxxx1目录1.IPv4网络与IPv6网络将在长时间内共存..............................................................22.IPv4到IPv6的过渡技术..........................................................................................22.1双栈技术..........................................................................................................22.2隧道技术..........................................................................................................22.3协议转换技术(NAT).......................................................................................33.使用Linux构建IPv6网络(实例).......................................................................33.1Linux构建IPv6网络的优势..........................................................................33.2Linux隧道技术................................................................................................43.3Linux的IP路由技术......................................................................................43.4构建IPv6试验网............................................................................................54.实验IPv6网络性能测试...........................................................................................65.结论.............................................................................................................................66.感想.............................................................................................................................621.IPv4网络与IPv6网络将在长时间内共存随着科学技术的发展,Internet的规模不断扩大,Internet上的应用日渐丰富。与此同时,现在广泛使用的IPv4协议的问题开始逐渐暴露出来。地址枯竭(地址字段为32位)、安全性不足、移动性差成为IPv4最为显著的三大缺陷,这必将导致IPv4的革新,也就是被新的IP协议—IPv6所取代。IPv6协议吸收了IPv4的优点,解决了IPv4协议的三大缺陷,为Internet的进一步发展提供可能。虽然IPv6将使目前的互联网变成一个性能更好、成本更低的全球互联网,并彻底结束拨号上网时代,但是用IPv6一步取代IPv4既不可能也无必要,这将是一个逐渐演进的过渡过程,在很长一段时间内IPv6将与IPv4共存。造成如此的主要原因有以下两点:①IPv4的服务和应用非常丰富,但是几乎所有IPv4应用都不能在IPv6上直接使用。按照OSI参考模型,从IPv4到IPv6只换掉网络层就可以了,但是,TCP/IP协议在OSI模型之前就存在,TCP/IP不是严格的按照OSI而设计的,IPv4到IPv6不仅只换掉IP层,高层都需要作一定的修改,所以IPv4上的应用不能简单的搬过来,因此过渡期需要比较长的时间。②各大网络厂商推出的支持IPv6的产品,大多还处在宣传和试用阶段,IPv6网络产品还没有真正成熟定型,而且考虑成本原因,网络运营商和各单位也不可能短期内更换掉大量的IPv4网络设备。2.IPv4到IPv6的过渡技术为了完成从IPv4到IPv6的平稳过渡,因特网工程任务组(IETF)在Internet请求注解(RFC1933和RFC2185)中提出了多种过渡机制,包括双栈、隧道和协议转换技术等。下面我们就简单介绍一下这三种技术。2.1双栈技术所谓双栈(DualIPStack),就是在一个系统(如一台主机或一台路由器)中同时使用IPv6/IPv4两个可以并行工作的协议栈。双栈可以同时设置在终端设备和网络设备上:在终端设备内,允许IPv4支持的应用与IPv6支持的应用工作于同一节点上,在网络设备内,双栈既能处理IPv4分组,也能处理IPv6分组,具体取决于与之通信的系统类型。2.2隧道技术隧道(Tunneling)技术利用IPv4路由基础上传输IPv6包的方法,本文就用了隧道技术。其基本原理是:在隧道入口节点处将IPv6的整个报文封装在IPv4报文中,通过IPv4网络进行传输,当封装数据包到达隧道出口时,将其解封,得到的IPv6报文送往目的地(见图1)。3图1IPv4/Ipv6隧道原理示意图图1中R1、R2是隧道入口或出口路由器,本文中为支持IPv4/IPv6隧道技术的Linux操作系统的主机(要求两块网卡以上)。隧道的实现主要有以下几种方式:手工隧道,GRE(GenericRoutingencap-sulation)隧道,自动隧道,Teredo隧道,隧道代理。手工配置隧道的方式比较简单,适用于网络组成不太复杂情况。2.3协议转换技术(NAT)协议转换NAT(NetworkAddressTranslator)就是一种版本映射到另一个版本的过程,基本的操作是以新的IP头替换原有的IP头,而高层协议是否做类似的替换则取决于两种协议之间的差弄程度。3.使用Linux构建IPv6网络(实例)3.1Linux构建IPv6网络的优势①Linux作为开放的操作系统,其源代码完全公开,具有很强的灵活性。现在有很多自由软件联盟为Linux免费开发软件,故Linux具有很强的生命力和活力,而其它操作系统由于源代码不公开,无法根据自己的要求修改内核。②Linux操作系统比较先进,设计合理,一直跟踪网络技术的发展,对网络有良好支持,用它进行网络开发研究,都是很好的选择。其内核从2.2.0就开始支持IPv6技术,redhat9.0其内核版本已到2.4.20,这等于为我们提供了IPv6协议栈源代码。③Linux运行稳定,路由转发能力较强,其性能不低于中低档次路由器,只要不再骨干网上运行,无需购买并不很成熟的专用IPv6网络设备,只需一台一般的PC机,利用由Linux构成的低成本路由器就可以满足校园IPv6网络互连要求。当然Linux作为路由器也有缺陷,受PC机结构限制,能支持端口数和链路4层种类较少。④IPv6在Linux中的状态是“试验性”,但Linux不管是核心、函数库、应用程序对IPv6的支持与日俱增,現在大部分应用程序都已经支持IPv6。3.2Linux隧道技术Linux对隧道技术有很好的支持,可支持的隧道技术有GRE(GenericRoutingEncapsulation)隧道、sit隧道(点对点隧道)和ip-in-ip隧道。这三种隧道都支持对IPv4报文的封装也支持对IPv6报文的封装。Linux还可支持隧道代理、ISATAP自动隧道。Linux手工隧道配置有四点,具体如下:iptunneladd隧道名modesitttl128remotev4addrelocalv4addreiplinksetdev隧道名upIp-6addraddV6addrdev隧道名Ip-6routeadd网络前缀dev隧道名metric256分别是:手工配置一条隧道,建立隧道虚端口,mode可为sit或GRE,激活手动配置的隧道端口,对所建隧道虚端口添加一个IPv6地址,配置路由及网络前缀。将上述命令中的add改为del和show,就可进行删除和查看该项设置。用隧道技术连接IPv6网络的技术成熟简单,不受空间限制,在IPv4能通达的地方,只要有需求就可建立一条隧道,前提是要求接入的站点能支持双栈协议。如果隧道两端是Linux的话,选择sit隧道或GRE隧道,如果一端是Windows平台,选择sit隧道(v6v4tunnel)。在Windows平台netshinterfaceIPv6提示符下的配置,命令简单明了,可以添加、查看、删除端口及端口的任何配置以及路由,命令格式规范。具体命令有add,show和delete。3.3Linux的IP路由技术目前Linux路由软件主要是gated,routed、GNUzebra,还有bird、mrtd等。Linux的发行版本缺省就有routed这个软件,支持IPv4和IPv6。如果要使用动态路由,可用GNUZebra,Zebra经过长期修改完善,对IPv4和IPv6都有非常好的支持,能支持路由协议BGP4,BGP4+,OSPFv3,RIPv1,RIPv2以及RIPng,支持RFCs2373,2460,2463&2464(IPv6支持)。对于中小规模的学校、企业事业单位,可使用Linux缺省自带的routed路由软件就可以满足连网需求,网络的出口路由没有必要使用BGP,一般情况下对方使用静态路由。如果内部Linux路由器数目不多,且网络简单可直接使用静态路由,也可以用RIP动态路由。我们使用静态路由构建了校园试验IPv6网络。①有关IPv6静态的路由配置命令Ip-6routeadd[subnet/prefix][gwGw][metricN][mssM][mod][dyn][reinstate][[dev]If],通常只要配置下面几个要点就可以了(IPv6网络对应端口),其余选缺省:Ip-6routeadd3003::/64deveth0metric256②开启IPv6报文转发功能IPv4转发功能在/proc/sys/net/IPv4/ip_forward中设定。IPv6转发功能在5/proc/sys/net/IPv6/conf/all/forwarding中设定,方法是将forwarding的值置为“1”即可,这是一个布尔开关量。即将文件forwarding的内容置“1”来开启LinuxIPv6包转发功能。可以采用如下方法:Echo1/proc/sys/net/IPv6/conf/all/forwarding。3.4构建IPv6试验网Linux如果有多块网卡,每块网卡连接一个本地IPv6网络,这几个本地网络之间通过Linux路由实现互通。但这种互通有很大的局限性,无法将非本地IPv6网络连通。IPv4/IPv6隧道技术与Linux的IPv6路由技术结合起来构建IPv6网络会更加方便灵活,采用多隧道加一个或多个由Linux充当路由器来构建IPv6试验网。本文构建的有Linux充当IPv6路由器实验网络见图2,图中实验IPv6网络是用LinuxIPv6路由和隧道技术在校园IPv4网络上构建的。图2Linux