毕业论文IPv6隧道技术研究与实现.doc
《毕业论文IPv6隧道技术研究与实现.doc》由会员分享,可在线阅读,更多相关《毕业论文IPv6隧道技术研究与实现.doc(25页珍藏版)》请在冰点文库上搜索。
目录
1互联网IP通信协议 1
1.1IP概述 1
1.2IPV4协议简介 2
1.3IPV6协议简介 3
1.4IPV4与IPV6的区别和联系 4
2IPV4到IPV6的过渡 5
2.1IPv4/IPv6双栈方法 5
2.2IPv6协议隧道方法 7
2.2.1IPv6-over-IPv4隧道技术 9
2.2.26to4隧道技术 9
2.2.3ISATAP隧道技术 9
2.2.4IPv4兼容IPv6自动隧道 10
2.2.56PE隧道技术 11
2.2.6Teredo隧道 11
3隧道技术实现 12
3.1模拟器介绍 12
3.2模拟器实现6to4隧道技术 12
4小结 17
图表目录
图1互联网通信 3
图2ipv6/ipv6双协议通信 6
图3ipv6隧道通信 7
图4跨网络隧道通信 8
图5ISATAP隧道 10
图6DOC下查看隧道 11
图7DOC下隧道IP 12
图8Dynamips启动 13
图96to4路由器拓扑图 13
图10Dynamips模拟器CCNP拓扑图 14
图11R2,R3,R4地址配置 15
图12R2,R4路由配置 15
图13连通ipv4网络 16
图14静态路由 17
图15R1,R5连通 17
图16R2,R4隧道情况 17
IPv6隧道技术研究与实现
摘要:
IPv6协议是因特网的新一代通信协议,本文介绍了如何实现从IPv4到IPv6的平滑过渡,研究从IPv4到IPv6过度的技术。
通过搜集整理大量的书籍信息和互联网信息,概括总结了IPV6到IPV4的通信方式和通信技术。
对于ipv6隧道技术给予了深入研究。
被称为下一代互联网的IPv6如何实现与上一代协议的互联,如何完成从第一代通信协议到第二代通信协议的过渡,这些都是本文所要探讨的。
如何实现IPv6穿越IPv4网络通信,本文对IPv6隧道提供一种可行的模拟方案,使用模拟器Dynamips实现IPv6隧道技术。
通过使用Dynamips模拟器,虚拟出五个路由器,通过在五个路由器上配置实验环境,实现ipv6穿越ipv4网络通信,完成6to4隧道通信。
关键词:
IPv4;IPv6;IPv6隧道;Dynamips
引言
如今最广泛应用的IP版本仍然是IPv4。
然而IPv6也已经开始使用了。
IPv6与IPV4相比有更长的地址作准备,因此可以满足更多网络使用者的需要。
IPv6基本包括了IPv4的所有功能,所以IPv6技术的使用也对互联网效率的提高起到很大的作用。
当前阶段IPV4仍然占据着互联网的大部分江山,IPV6的大量投入使用还将是漫长的过程。
但是IPV6作为一种新技术,它也必将承担起自己的使命。
作为一种新的技术,我们对于它充满了期待和新鲜感,本文将对于这种IPV4到IPV6新技术的过度问题进行研究。
并且用模拟器Dynamips实现ipv6隧道技术的通信。
1互联网IP通信协议
1.1IP概述
IP(InternetProtocol)是“网络之间互连的协议”的缩写,是计算机网络通信协议,是用来唯一标识互联网上计算机的逻辑地址。
一般IP即是指IPV4。
IP地址都是一个十分重要的概念,INTERNET的许多服务和特点都是通过IP地址体现出来的。
它规定了计算机在因特网上进行通信时应当遵守的规则,每台连网计算机都依靠IP地址来标识自己。
IP是网络上信息从一台计算机传递给另一台计算机的方法或者协议,IP地址将其与网络上其他计算机区别开。
IP协议实际上是一套由软件程序组成的协议软件,它有一个非常重要的内容,那就是给因特网上的每台计算机和其它设备都规定了一个唯一的地址,叫做“IP地址”。
1.2IPV4协议简介
IPv4(InternetProtocolversion4),工作在网络层,是网际通信协议版本4。
IPv4中规定IP地址长度为32比特。
IPv4首部一般是20字节长。
一般的书写法为4个用小数点分开的十进制数。
也有人把4位数字化成一个十进制长整数,但这种标示法并不常见。
IPv6使用的128位地址所采用的位址记数法。
过去IANAIP地址分为A,B,C,D4类,把32位的地址分为两个部分:
前面的部分代表网络地址,由IANA分配,后面部分代表局域网地址。
如在C类网络中,前24位为网络地址,后8位为局域网地址,可提供254个设备地址(因为有两个地址不能为网络设备使用:
255为广播地址,0代表此网络本身)。
IP包由首部(header)和实际的数据部分组成。
数据部分一般用来传送其它的协议,如TCP,UDP,ICMP等。
数据部分最长可为65515字节(Byte)(=2xx16-1-最短首部长度20字节)。
一般而言,低层(链路层)的特性会限制能支持的IP包长。
Ipv4并不区分作为网络终端的主机(host)和网络中的中间设备如路由器中间的差别。
每台电脑可以即做主机又做路由器。
路由器用来联结不同的网络。
所有用路由器联系起来的这些网络的总和就是互联网。
IPv4技术即适用于局域网(LAN)也适用于广域网。
一个IP包从发送方出发,到接送方收到,往往要穿过通过路由器连接的许许多多不同的网络.在互联网或内联网上传输的IPv4包必须从一个网络选路到另一个网络以到达其目的地。
选路协议可以使用动态机制来确定路由,但是所有选路最终依赖于某个路由器查看不同路由的列表并确定正确的路由。
选路表包含网络的列表和连接到这些网络的接口的列表。
路由器查看包,确定包所在的网络(或该网络可能在的网络),然后把包发送到适当的网络接口。
对子网的合理使用将增加地址使用的效率,但它对于效率的改进是有限的。
如果想了解原因的话,先考虑原来的网络地址分配方式:
一个机构可以申请到一个A、B或C类地址。
如果能够证明自己需要相当数量的主机地址,机构也许能获得一个B类地址;否则,获得的将会是一个C类地址。
无论申请人的网络中的主机是200台、20台还是2台,他们都将获得一个C类地址,这样就占用了254个主机地址。
如果他们能够使权威机构确信他们的确需要一个B类地址的话,即便他们只有1000台主机,他们仍将获得完整的B类地址,这样一来又占用了65534个主机地址。
获得这些地址后,从外部发往网络内任一处的业务流都在一个路由器接口处理,该路由器将把这些数据重新选路到本机构内的目的地。
这种体系结构意味着用户可以按照自己的愿望来设计网络。
如图1中显示了两种方案。
两个网络都连接到Internet,但C类网在本机构内只提供了一个网络的连接能力,而B类网络把机构划分成三个子网,通过内部路由器彼此连接,并通过第二个路由器连接到Internet。
图1互联网通信
1.3IPV6协议简介
IPv6(InternetProtocolVersion6)是网络层协议的第二代标准协议,也被称为IPng(IPNextGeneration,下一代因特网)。
它是IETF(InternetEngineeringTaskForce,Internet工程任务组)设计的一套规范,是IPv4的升级版本。
IPv6和IPv4之间最显著的区别为:
IP地址的长度从32比特增加到128比特。
IPv6正处在不断发展和完善的过程中,它在不久的将来将取代目前被广泛使用的IPv4。
IPv6的地址结构中除了把32位地址空间扩展到了128位外,还对IP主机可能获得的不同类型地址作了一些调整,IPv6中取消了广播地址而代之以点播地址。
IPv4中用于指定一个网络接口的单播地址和用于指定由一个或多个主机侦听的组播地址基本不变。
IPv6中包括总长为40字节的8个字段(其中两个是源地址和目的地址)。
它与IPv4包头的不同在于,IPv4中包含至少12个不同字段,且长度在没有选项时为20字节,但在包含选项时可达60字节。
IPv6使用了固定格式的包头并减少了需要检查和处理的字段的数量,这将使得选路的效率更高。
在IPv4中可以在IP头的尾部加入选项,与此不同,IPv6中把选项加在单独的扩展头中。
通过这种方法,选项头只有在必要的时候才需要检查和处理。
IPv4选项的问题在于改变了IP头的大小,因此更像一个“特例”,即需要特别的处理。
路由器必须优化其性能,这意味着将为最普遍的包进行最佳性能的优化。
这使得IPv4选项引发一个路由器把包含该选项的包搁置一边,等到有时间的时候再进行处理。
IPv6中实现的扩展头可以消灭或至少大量减少选项带来的对性能的冲击。
通过把选项从IP头中搬到净荷中,路由器可以像转发无选项包一样来转发包含选项的包。
除了规定必须由每个转发路由器进行处理的逐跳选项之外,IPv6包中的选项对于中间路由器而言是不可见的。
除了减少IPv6包转发时选项的影响外,IPv6规范使得对于新的扩展和选项的定义变得更加简单。
在需要的时候可能还会定义其他的选项和扩展。
IPv6地址表示方式
IPv6地址被表示为以冒号(:
)分隔的一连串16比特的十六进制数。
每个IPv6地址被分为8组,每组的16比特用4个十六进制数来表示,组和组之间用冒号隔开,比如:
2001:
0000:
130F:
0000:
0000:
09C0:
876A:
130B。
为了简化IPv6地址的表示,对于IPv6地址中的“0”可以有下面的处理方式:
每组中的前导“0”可以省略,即上述地址可写为2001:
0:
130F:
0:
0:
9C0:
876A:
130B。
如果地址中包含连续两个或多个均为0的组,则可以用双冒号“:
:
”来代替,即上述地址可写为2001:
0:
130F:
:
9C0:
876A:
130B。
IPv6主要有三种类型的地址:
单播地址、组播地址和任播地址。
单播地址:
用来唯一标识一个接口,类似于IPv4的单播地址。
发送到单播地址的数据报文将被传送给此地址所标识的接口。
组播地址:
用来标识一组接口(通常这组接口属于不同的节点),类似于IPv4的组播地址。
发送到组播地址的数据报文被传送给此地址所标识的所有接口。
任播地址:
用来标识一组接口(通常这组接口属于不同的节点)。
发送到任播地址的数据报文被传送给此地址所标识的一组接口中距离源节点最近(根据使用的路由协议进行度量)的一个接口。
1.4IPV4与IPV6的区别和联系
IPv6是新一代Internet通信协议,具有许多的功能特色:
全新的表头格式、较大的地址空间、有效及阶层化的地址与路由架构、内建的安全性、与邻近节点相互作用的新型通信协议NeighborDiscoveryProtocolforIPv6、可扩展性等。
IPV6与IPV4相比具有以下几个优势:
一,IPv6具有更大的地址空间。
IPv4中规定IP地址长度为32个比特,即有2^32-1个地址;而IPv6中IP地址的长度为128比特,即有2^128-1个地址。
二,IPv6使用更小的路由表。
IPv6的地址分配一开始就遵循聚类的原则,这使得路由器能在路由表中用一条记录表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
三,IPv6增加了增强的组播支持以及对流的支持,这使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS,QualityofService)控制提供了良好的网络平台。
四,IPv6加入了对自动配置的支持。
这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。
五,IPv6具有更高的安全性。
在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,极大的增强了网络的安全性。
IPv4面临的最紧迫的问题是地址空间的大小问题,主要研究方向也定位在如何减少地址空间的浪费并提高使用效率上。
其他议题,包括选路、网络管理、配置及IPv4扩展选项有时考虑到IPv4存在的时间,它确实工作得不错。
那为什么还要用其他的东西来替换它呢?
毕竟如果把IPv4替换掉的话,网络中的所有系统均需要升级。
IPv4需要一些改变以使得它能够在网络协议的发展中得以继续生存。
增长中的网络正在消耗有限的IP地址空间资源,这一简单问题意味着地址空间必须扩充。
IPV4将逐渐出现向IPv6过渡,IPv4与IPv6将共存并交互。
2IPV4到IPV6的过渡
IPv6是新一代Internet通信协议,以后IPv4的全面升级向IPv6过渡必定是渐进的。
考虑到目前已经有大量网络和节点连接到Internet,人们无法接受大量的切换形式的升级。
随着网络厂商和开发者逐渐将IPv6引入不同的平台,随着网络管理者逐渐确定自己所需要的IPv6功能,向IPv6过渡也将是一个相对缓慢的过程[1]。
大多数过渡策略都依靠协议隧道的两路方法,将来自IPv6孤岛的IPv6包封装在IPv4包中,然后在广泛分布的IPv4海洋中传送。
经过过渡的早期阶段,越来越多的IP网络和设备将支持IPv6。
但即使在过渡的后期阶段,IPv6封装仍将提供跨越只支持IPv4的骨干网和其他坚持使用IPv4的网络的连接能力。
另一路策略是双栈方法,即主机和路由器在同一网络接口上运行IPv4栈和IPv6栈。
这样,双栈节点既可以接受和发送IPv4包,也可以接受和发送IPv6包,因而两个协议可以在同一网络中共存。
2.1IPv4/IPv6双栈方法
双栈节点完全支持两种协议版本,这类节点常常被称为IPV6/IPV4节点。
这种节点和IPV6节点通信的时候,就像一个纯IPV6节点,而当他和IPV4节点通信的时候,又像一个纯IPV4节点。
这类节点实现中可能有一个配置开关来启用,禁用其中某个节点。
因此这类节点有三中操作模式[2]:
启用ipv4栈而禁用ipv6栈时,节点如同一个IPV4;启用ipv6栈而禁用ipv4栈时,节点如同一个IPV6;同时启用IPV4栈和ipv6栈的时候,该节点就能使用这两种版本协议。
Ipv6/ipv4节点在每种协议版本下至少有一个地址。
IPv4/IPv6双栈节点与其他类型的多栈节点的工作方式相同。
链路层接收到数据段,拆开并检查包头。
如果IPv4/IPv6头中的第一个字段,即IP包的版本号是4,该包就由IPv4栈来处理;如果版本号是6,则由IPv6栈处理。
最简单的双栈工作是只支持IPv4和IPv6,但不支持隧道方式。
对于大多数节点,尤其是如果这些节点的Internet应用软件都已升级为同时支持IPv4和IPv6,这种功能足够。
如同用于访问IPv4网络服务一样,同一应用也能够用于访问本地IPv6网络服务。
节点可以与任何IPv4节点或IPv6节点互操作,但只限于与其有连接能力的网络。
如图2的示例中显示,可以与双栈节点D互操作的节点包括:
网络A和网络B中的IPv4节点或IPv6节点、网络M中的所有IPv4节点,但D不能和网络C中的节点互操作。
网络C是严格的IPv6网络,从网络A到网络C没有IPv6路径。
链接网络A和网络M的路由器只支持IPv4,因此无法通过网络M向网络C转发IPv6包。
图2ipv6/ipv6双协议通信
2.2IPv6协议隧道方法
隧道技术就是使用IPv6数据报能够穿透IPV4网络,从外部看来就好像在Ipv4网络中开通了一条道路用于IPv6数据报的传输。
隧道方法用于连接处于IPv4海洋中的各孤立的IPv6岛。
此方法要求隧道两端的IPv6节点都是双栈节点,见图3所示,节点A和节点B都是只支持IPv6的节点。
如果节点A要向B发送包,A只是简单地把IPv6头的目的地址设为B的IPv6地址,然后传递给路由器X;X对IPv6包进行封装,然后将IPv4头的目的地址设为路由器Y的IPv4地址;若路由器Y收到此IPv4包,则首先拆包,如果发现被封装的IPv6包是发给节点B的,Y就将此包正确地转发给B。
隧道技术的关键点在于如何解决隧道的两个端点:
入口和出口以及数据报的封装过程。
根据数据包在端口的封装和解封装的不同,隧道技术又分为好多种,如有手工隧道,IPv6overipv4隧道,6to4隧道等。
而总体来说就是两种,手工隧道和自动隧道。
手工和自动隧道的不同点就在于如何确定隧道终点的IP地址。
图3ipv6隧道通信
配置隧道和自动隧道
配置隧道和自动隧道的主要区别在于:
只有执行隧道功能的节点的IPv6地址是IPv4兼容地址时,自动隧道才是可行的。
在为执行隧道功能的节点建立IP地址时,自动隧道方法无需进行配置;而配置隧道方法则要求隧道末端节点使用其他机制来获得其IPv4地址,例如采用DHCP、人工配置或其他IPv4的配置机制。
IPv6隧道类型
可以作为隧道端点的节点有几种不同的组合类型,图4描述了这些不同隧道的操作情形。
图中的互联网络由三个网络、两个路由器和两台主机组成,它使用了如下几种不同的隧道类型。
但是,为了区别这些不同类型的隧道,根据所演示的隧道类型,图中的实体可能是只支持IPv4、只支持IPv6或者IPv4/IPv6双栈。
图4跨网络隧道通信
各种不同的隧道类型包括[3]:
○路由器-路由器隧道。
路由器X和路由器Y使用隧道方式来传送经过网络O的包,而网络O只支持IPv4。
主机A可以透明地将IPv6包发送给主机B,这两个主机都不必考虑中间插入的IPv4网络(即网络O)。
这种情况下,主机A和主机B都是只支持IPv6的节点。
○路由器-主机隧道。
此时网络M只支持IPv4,但主机B同时运行IPv4和IPv6,网络的其他部分都只支持IPv6。
这种情况下,隧道传送发生在路由器Y和主机B之间。
在网络的其他部分,IPv6包可以自由传送。
但是路由器Y必须将IPv6包封装在IPv4包中,以便通过只支持IPv4的网络M。
○主机-主机隧道。
假设此时只有主机A和主机B同时支持IPv4和IPv6,而网络的其他部分都只支持IPv4。
这种情况下,隧道传送发生在主机A和主机B之间。
对于发往主机B的IPv6包,主机A必须把它们封装在IPv4包中,以便由只支持IPv4的路由器来运载。
○主机-路由器隧道。
假设此时主机A和路由器X为双栈节点,网络N只支持IPv4,而网络的其他部分都只支持IPv6。
这种情况下,主机A仅对发往路由器X的IPv6包采用隧道方式;一旦通过了只支持IPv4的网络N,路由器X就对这些通过隧道传送的包拆包,然后按正常方式通过IPv6网络转发。
2.2.1IPv6-over-IPv4隧道技术
Ipv6overipv4是一种自动建立隧道的机制,在ipv4的多播域上承ipv6链路本地地址。
与6to4不同的是,Ipv6overipv4利用ipv4的多播机制来实现虚拟链路,这种机制要求站点支持多播。
将ipv6的链路本地地址映射到ipv4的多播域。
相当于ipv4的多播机制模拟ipv6的邻居发现功能,发现ipv6的邻居,ipv6的主机就自动建立隧道通过ipv4网络。
Ipv6overipv4手动隧道也是通IPv4骨干网连接的两个IPv6域的永久链路,用于两个边缘路由器或者终端系统与边缘路由器之间安全通信的稳定连接。
手动隧道的转发机制直接将IPv6报文封装到IPv4报文中,IPv6报文作为IPv4报文的净载荷。
2.2.26to4隧道技术
6to4也是一种自动构造隧道的方式,它的好处在于只需要一个全球唯一的ipv4地址便可以使得整个站点获得ipv6的连接。
6to4隧道技术可以实现ipv6节点之间使用不经过事先声明的ipv4隧道通过ipv4网络进行通信。
6to4自动构建隧道机制在构造地址时采用6to4地址,6to4是一个特殊的IPv6地址,它以2002开头,后面跟着32位的ipv4地址转化为32位的16进制表示,构成一个48位的6to4前缀(2002:
ipv4ADDR:
:
/48),像192.168.1.1构成6to4前缀就是:
2002:
C0A8:
101:
:
/48。
由于这种地址是自动从站点的ipv4地址派生出来,因此每一个采用6to4机制的节点就必须具有一个全球唯一的ipv4地址。
6to4隧道可以将多个IPv6域通过IPv4网络连接到IPv6网络。
它和IPv4兼容IPv6自动隧道类似,使用一种特殊的地址——2002:
a.b.c.d:
xxxx:
xxxx:
xxxx:
xxxx:
xxxx格式的6to4地址。
其中a.b.c.d是内嵌在IPv6地址中的IPv4地址,可以用来查找6to4网络中的其他终端。
6to4地址有64位网络前缀,其中前48位由路由器上的IPv4地址决定,用户不能改变,后16位由用户自己定义。
这样,这个边缘路由器后面就可以连接一组网络前缀不同的网络。
2.2.3ISATAP隧道技术
ISATAP(Intra-SiteAutomaticTunnelAddressingProtocol)是一种自动隧道技术,意思是域内自动隧道寻址协议,它指某个IPV4域内的双栈主机相互之间可通过该隧道通信。
ISATAP地址有一个标准的64位前缀(可以是本链路的,本地站点,6to4前缀,也可以是全局可聚合单播地址)。
利用ISATAP,IPv4内联网中的IPv6主机就可以相互通信,这时候就不需要IPv6路由器。
ISATAP草案中所解释的机制尚处于试验阶段,这个机制希望启动用自动站内IPv6路由器搜索与无状态地址自动配置[4]。
如图5所示,双栈主机PC1与路由器R1通过ISATAP隧道相连,将PC1配置成ISATAP主机(IPv4地址为10.0.0.2,IPv6地址由ISATAP路由器自动分配)。
ISATAP路由器E0接口的IPv4地址为2.2.2.2,Tunnel0接口的IPv6地址为1:
:
5ffe:
202:
202,E1接口的IPv6地址为2:
:
1,IPv6主机PC2的IPv6地址为2:
:
2。
图5ISATAP隧道
2.2.4IPv4兼容IPv6自动隧道
自动隧道能够完成点到多点的连接,而手动隧道仅仅是点到点的连接。
IPv4兼容IPv6自动隧道技术能够使隧道自动生成。
在IPv4兼容IPv6自动隧道中,只需要告诉设备隧道的起点,隧道的终点由设备自动生成。
为了完成隧道终点的自动产生,IPv4兼容IPv6自动隧道需要使用一种特殊的地址,即IPv4兼容IPv6地址[5]。
双栈节点则对于IPv4包和IPv6包都使用相同的地址。
只支持IPv4的节点向双栈节点发送包时,使用双栈节点的IPv4地址;而只支持IPv6的节点则使用双栈节点的IPv6地址,即将原IPv4地址填充0后成为128位。
这类节点可以作为路由器链接IPv6网络,采用自动隧道方式穿越IPv4网络。
该路由器从本地IPv6网络接收IPv6包,将这些包封装在IPv4包中,然后使用IPv4兼容地址发送给IPv4网络另一端的另一个双栈路由器。
如此继续,封装的包将通过IPv4网络群转发,直至到达隧道另一端的双栈路由器,由该路由器对IPv4包拆包,释放出IPv6包并转发给本地的IPv6主机。
兼容IPv4的隧道两端的主机或路由器必须同时支持IPv4和IPv6协议栈。
使用兼容IPv4的隧道可以方便的建立IPv4上的IPv6隧道,但只能使隧道两端点进行通信,隧道后的网络不能通过隧道通信。
2.2.56PE隧道技术
随着MPLS技术和标准的成熟,出现一种新的基于MPLS/VPN的IPv6隧道机制。
随着骨干网越来越多地采用MPLS技术,必须考虑如何在MPLS上集成IPv