IPv4_IPv6主机之间隧道的设计与实现
IPv4过渡到IPv6的隧道技术及实现
IPv4过渡到IPv6的隧道技术及实现作者:文瑞映来源:《电脑知识与技术》2014年第35期摘要:2011年2月2日,国际互联网名称和编号分配公司(ICANN)宣布全球IPv4地址耗尽,网络过渡到IPv6是必然的事情。
现在还有大量的IPv4网络设备和应用,从IPv4过渡到IPv6并非一朝一夕的事情,在一段时间里IPv4与IPv6会共存,然后被IPv6取代。
在过渡期需要解决IPv4网络与IPv6网络之间的互联互通问题。
为此,IETF提出了多种过渡技术,该文重点介绍IPv4与IPv6过渡中几种常用的隧道技术,介绍它们的工作机制并给出相应的实现方法。
关键词:IPv4;IPv6;隧道中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2014)35-8394-02Tunnel Technology of Transition from IPv4 to IPv6 and RealizationWEN Rui-ying(Jiangmen Polytechnic, Jiangmen 529000,China)Abstract: On February 2, 2011, the Internet corporation for assigned names and Numbers (ICANN) announced the global IPv4 addresses run out, network transition to IPv6 is inevitable. There are a lot of IPv4 network equipment and application of transition from IPv4 to IPv6 is not things, over a period of time the IPv4 and IPv6 will coexist and then replaced by the IPv6. IPv4 network and IPv6 network need to be solved in the transition between the connectivity problem. Therefore, IETF proposed a variety of transition technology, this article focuses on the IPv4 and IPv6 transition of several common tunnel technology, introduce their work mechanism and the corresponding implementation method is given.Key words: IPv4; IPv6; tunnelIPv4在网络的发展过程中起到了非常重要的作用,但IPv4也有很多缺点,其中重大缺点之一是地址空间数量有限,随着物联网的发展,支持IP的新设备激增,如,移动电话,消费电子产品等。
如何实现IPv4和IPv6共存?试试双栈和隧道技术
如何实现IPv4和IPv6共存?试试双栈和隧道技术如今,随着IPv4地址即将用尽,IP地址缺乏已成为了全球亟待解决的问题。
虽然几年前出现了标头更长的IPv6,可提供更多的IP地址,但其应用和普及并不容易。
“IPv4和IPv6是否可以同时使用?”、“IPv4和IPv6如何实现共存?”这些问题都是目前用户比较关注的。
本文将为您介绍两种实现IPv4和IPv6共存方法,即双栈和隧道技术。
为什么需要IPv4和IPv6共存?如今,IP网络仍然是IPv4占主导地位,IPv6网络只是在小范围内部署和商用,从IPv4过渡到IPv6需要一个循序渐进的过程,不可能一气呵成。
因此,在此期间内IPv4和IPv6必然会出现共存的场景。
然而,IPv4和IPv6之间并不能相互兼容,且目前仍然存在大量的IPv4设备和用户,因此在网络演进的过程中势必要解决IPv4和IPv6兼容问题,这给互联网服务提供商(ISP)和用户带来了新的挑战。
如何实现IPv4和IPv6共存?目前来说,实现IPv4和IPv6共存的策略和过渡技术有三种。
第一种,使用双栈让您的主机或网络设备可以同时支持IPv4和IPv6双协议栈;第二种,通过隧道技术将IPv6数据包封装在IPv4数据包中;第三种,通过网络地址转换(NAT)技术将IPv6数据包转换为IPv4数据包,反之亦然。
由于网络地址转换(NAT)技术主要针对互联网服务供应商,这里就不做多介绍,下面主要介绍双栈和隧道技术。
通过双栈实现IPv4和IPv6共存双栈是实现IPv4和IPv6共存最基础、最直接的策略。
使用该解决方案,可为ISP网络中的每个联网设备(包含使用IPv4和IPv6交换机)配置可同时运行IPv4和IPv6的功能。
通常,双协议栈主机在和IPv4主机通信时会使用IPv4协议栈,而与IPv6主机通信时则会使用IPv6协议栈,其中双协议栈主机是通过使用域名系统(DNS)来查询目的主机采用的是哪一种协议栈。
IPv4、v6互通技术之隧道技术 ( Tunnel)
一:概述:隧道技术提供了一种以现有IPv4路由体系来传递IPv6数据的方法:将IPv6的分组作为无结构意义的数据,封装在IPv4数据报中,被IPv4网络传输。
根据建立方式的不同,隧道可以分成两类:(手工)配置的隧道和自动配置的隧道。
隧道技术巧妙地利用了现有的IPv4网络,它的意义在于提供了一种使 IPv6的节点之间能够在过渡期间通信的方法,但它并不能解决IPv6节点与IPv4节点之间相互通信的问题。
二:实验拓扑:R1(s2/1)-(s2/1)R2(s2/2)-(s2/1)R3(s2/2)-(s2/1)R44台路由,R1,R4运行IPV6R2,R3半边运行IPV4,半边运行IPV6三:配置信息R1#ipv6 unicast-routing //开启IPV6单播路由功能interface Loopback0ip address //配置环回接口做为它的router-idinterface Serial2/1ipv6 address12::1/64 //IPV6地址ipv6 ospf 1 area0 //接口下启用ospfR2#ipv6 unicast-routinginterface Serial2/1ipv6 address 12::2/64interface Serial2/2ip addressinterfaceTunnel0 //在s2/1接口下打隧道ipv6 address10::1/64 //给隧道配置IPV6地址ipv6 ospf 1 area0 //启用ospftunnel source Serial2/2 //申明隧道源端tunnel destination //申明隧道目的端tunnel mode ipv6ip //隧道模式是ipv6到ipv4R3#ipv6 unicast-routinginterface Serial2/1ip addressinterface Serial2/2ipv6 address 34::3/64ipv6 ospf 1 area 0interface Tunnel0ipv6 address 10::2/64tunnel source Serial2/1tunnel destinationtunnel mode ipv6ipR4#ipv6 unicast-routinginterface Loopback0ip addressinterface Serial2/1ipv6 address 34::4/64ipv6 ospf 1 area 0四:调试信息R1#show ipv6 routeIPv6 Routing Table - 6 entriesCodes: C - Connected, L - Local, S - Static, R - RIP, B - BGPU - Per-user Static routeI1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summaryO - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2O 10::/64 [110/11175]via FE80::C838:AFF:FE24:0, Serial2/1C 12::/64 [0/0]via ::, Serial2/1L 12::1/128 [0/0]via ::, Serial2/1O 23::/64 [110/11239] //用隧道模式学习到了隔着ipv4网络的远端ipv6路由via FE80::C838:AFF:FE24:0, Serial2/1L FE80::/10 [0/0]via ::, Null0L FF00::/8 [0/0]via ::, Null0R2#show ipv6 routeIPv6 Routing Table - 7 entriesCodes: C - Connected, L - Local, S - Static, R - RIP, B - BGPU - Per-user Static routeI1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summaryO - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2C 10::/64 [0/0]via ::, Tunnel0L 10::1/128 [0/0]via ::, Tunnel0C 12::/64 [0/0]via ::, Serial2/1L 12::2/128 [0/0]via ::, Serial2/1O 23::/64 [110/11175]via FE80::1700:3, Tunnel0L FE80::/10 [0/0]via ::, Null0L FF00::/8 [0/0]via ::, Null0R1#ping 23::4Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 23::4, timeout is 2 seconds:!!!!!Success rate is 100 percent (5/5), round-trip min/avg/max = 344/380/420 msR1#trR1#traceroute 23::4Type escape sequence to abort.Tracing the route to 23::41 12::2 132 msec 84 msec 104 msec2 10::2 240 msec 352 msec 104 msec//^-^看到是杂过去的了吧?发到ipv6的源端地址上走隧道过去的3 23::4 332 msec 388 msec 356 msecR1#pingType escape sequence to abort.Sending 5, 100-byte ICMP Echos to , timeout is 2 seconds:.... //注意这里不通Success rate is 0 percent (0/4)R1#show ip routeis subnetted, 1 subnetsC is directly connected, Loopback0R1#trR1#tracerouteType escape sequence to abort.Tracing the route to1 * * *2 * * *3 * * *4 * * *5 * * *6 * * *//traceroute也无路可走//这是ipv6想与ipv4通信,说明它们无法通信.所以隧道技术并不能解决IPv6节点与IPv4节点之间相互通信的问题。
网络规划设计中的IPv4与IPv6过渡方案(四)
网络规划设计中的IPv4与IPv6过渡方案随着互联网的快速发展,IPv4(Internet Protocol version 4)已经接近资源耗尽的状态。
为了解决IPv4地址短缺的问题,IPv6(Internet Protocol version 6)被引入,并成为了下一代互联网协议的标准。
然而,由于现有网络基础设施主要依赖IPv4,IPv4与IPv6的共存与过渡成为了网络规划设计中的一项重要任务。
一、IPv4与IPv6的区别IPv4是目前广泛应用的互联网协议版本,它采用32位地址格式,提供约43亿个可用地址。
然而,随着全球互联网用户数量的激增,IPv4的地址资源正在日益枯竭。
IPv6利用128位地址格式,提供了可观的地址空间,其中每个用户可以获得大量的地址,从而解决了地址短缺的问题。
此外,IPv6还提供了更好的包头结构以及支持高效路由和安全性等特性。
二、IPv4与IPv6的共存方案为了让现有的IPv4网络能够逐步过渡到IPv6网络,一些共存方案被提出。
1.双栈(Dual-Stack)方案:这是最常用的方案之一,它要求网络中同时支持IPv4和IPv6协议栈。
每个主机都同时拥有一个IPv4地址和一个IPv6地址,实现了IPv4与IPv6的共存。
通过双栈路由器的存在,IPv4和IPv6之间的通信可以相互转换和交互。
2.隧道(Tunneling)方案:在此方案中,IPv6数据报通过IPv4网络进行传输。
IPv4网络扮演着隧道的角色,将IPv6数据报包装在IPv4数据包中进行传输。
这种方式可以在现有的IPv4网络上快速部署IPv6服务,但需要在隧道终点进行IPv6数据报的解封装。
3.转换(Translation)方案:转换是一种将IPv4地址和IPv6地址进行转换的方式。
它可以实现IPv4与IPv6之间的互通性,是一种比较灵活的过渡方案。
在转换过程中,可能需要进行地址格式和协议头的修改,以实现数据的转换和交换。
IPv6通过IPV4隧道
实验23 IPv6隧道配置一、实验拓扑图,如图1.1所示:图1.1 IPv6隧道配置实验拓扑图二、实验说明:1.实验拓扑图如图1.1所示;2.本实验是在IPv6基础配置实验基础上做的,通过隧道的方式使两路由器loopback接口所连的IPv6网络互通三、预配置:同IPv6基础配置实验的配置,将两个F0/0口的IPv6地址去除,配置IPv4地址:R1(config)#int f0/0R1(config-if)#no ipv6 addressR1(config-if)#ip address 12.0.0.1 255.255.255.0R2(config)#int f0/0R2(config-if)#no ipv6 addressR2(config-if)#ip address 12.0.0.2 255.255.255.0四、配置及调试过程:1.在R1上设置tunnel:R1(config)#interface tunnel 0 //设置tunnel 0R1(config-if)#tunnel source f0/0 //设置tunnel 0的源R1(config-if)#tunnel destination 12.0.0.2 //设置tunnel 0的目的R1(config-if)#ipv6 address 2001::1/64 //给tunnel 0配置IPv6地址R1(config-if)#tunnel mode ipv6ip //将tunnel 0的模式配置为IPv6IP2.在R2上设置tunnel:R2(config-if)#int tu 0R2(config-if)#tunnel source f0/0R2(config-if)#tunnel destination 12.0.0.1R2(config-if)#ipv6 address 2001::2/64R2(config-if)#tunnel mode ipv6ip3.测试隧道连通性:R2(config-if)#do ping 12.0.0.1Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 12.0.0.1, timeout is 2 seconds:!!!!!Success rate is 100 percent (5/5), round-trip min/avg/max = 4/16/40 msR2(config-if)#do ping 2001::1Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 2001::1, timeout is 2 seconds:!!!!!Success rate is 100 percent (5/5), round-trip min/avg/max = 8/22/36 ms4.配置IPv6路由:R1(config)#ipv6 route 2::/64 tunnel 0R2(config)#ipv6 route 1::/64 tunnel 05.测试IPv6网络连通性并调试IP报文:R1(config)#do deb ip pacIP packet debugging is onR1(config)#do ping 2::2Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 2::2, timeout is 2 seconds:!!!!!Success rate is 100 percent (5/5), round-trip min/avg/max = 8/20/36 msR1(config)#*Mar 1 01:10:36.379: IP: s=12.0.0.1 (Tunnel0), d=12.0.0.2 (FastEthernet0/0), len 120, sending*Mar 1 01:10:36.403: IP: tableid=0, s=12.0.0.2 (FastEthernet0/0), d=12.0.0.1 (FastEthernet0/0), routed via RIB*Mar 1 01:10:36.403: IP: s=12.0.0.2 (FastEthernet0/0), d=12.0.0.1 (FastEthernet0/0), len 120, rcvd 3*Mar 1 01:10:36.411: IP: s=12.0.0.1 (Tunnel0), d=12.0.0.2 (FastEthernet0/0), len 120, sending*Mar 1 01:10:36.427: IP: tableid=0, s=12.0.0.2 (FastEthernet0/0), d=12.0.0.1 (FastEthernet0/0), routed via RIB*Mar 1 01:10:36.427: IP: s=12.0.0.2 (FastEthernet0/0), d=12.0.0.1 (FastEthernet0/0), len 120, rcvd 3*Mar 1 01:10:36.427: IP: s=12.0.0.1 (Tunnel0), d=12.0.0.2 (FastEthernet0/0), len 120, sending*Mar 1 01:10:36.435: IP: tableid=0, s=12.0.0.2 (FastEthernet0/0), d=12.0.0.1 (FastEthernet0/0), routed via RIB*Mar 1 01:10:36.435: IP: s=12.0.0.2 (FastEthernet0/0), d=12.0.0.1 (FastEthernet0/0), len 120, rcvd 3*Mar 1 01:10:36.435: IP: s=12.0.0.1 (Tunnel0), d=12.0.0.2 (FR1(config)#astEthernet0/0), len 120, sending*Mar 1 01:10:36.471: IP: tableid=0, s=12.0.0.2 (FastEthernet0/0), d=12.0.0.1 (FastEthernet0/0), routed via RIB*Mar 1 01:10:36.471: IP: s=12.0.0.2 (FastEthernet0/0), d=12.0.0.1 (FastEthernet0/0),len 120, rcvd 3*Mar 1 01:10:36.471: IP: s=12.0.0.1 (Tunnel0), d=12.0.0.2 (FastEthernet0/0), len 120, sending*Mar 1 01:10:36.479: IP: tableid=0, s=12.0.0.2 (FastEthernet0/0), d=12.0.0.1 (FastEthernet0/0), routed via RIB*Mar 1 01:10:36.479: IP: s=12.0.0.2 (FastEthernet0/0), d=12.0.0.1 (FastEthernet0/0), len 120, rcvd 3R1(config)#do und ip pacR1(config)#do deb ipv pacR1(config)#do ping 2::2Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 2::2, timeout is 2 seconds:!!!!!Success rate is 100 percent (5/5), round-trip min/avg/max = 8/18/40 msR1(config)#*Mar 1 01:14:08.271: IPv6: SAS picked source 2001::1 for 2::2 (Tunnel0)*Mar 1 01:14:08.275: IPV6: source 2001::1 (local)*Mar 1 01:14:08.279: dest 2::2 (Tunnel0)*Mar 1 01:14:08.279: traffic class 0, flow 0x0, len 100+0, prot 58, hops 64, originating*Mar 1 01:14:08.279: IPv6: Sending on Tunnel0*Mar 1 01:14:08.295: IPV6: source 2::2 (Tunnel0)*Mar 1 01:14:08.299: dest 2001::1*Mar 1 01:14:08.299: traffic class 0, flow 0x0, len 100+20, prot 58, hops 64, forward to ulp*Mar 1 01:14:08.303: IPV6: source 2001::1 (local)*Mar 1 01:14:08.303: dest 2::2 (Tunnel0)*Mar 1 01:14:08.307: traffic class 0, flow 0x0, len 100+0, prot 58, hops 64, originating*Mar 1 01:14:08.307: IPv6: Sending on Tunnel0*Mar 1 01:14:08.339: IPV6: source 2::2 (Tunnel0)*Mar 1 01:14:08.339: dest 2001::1*Mar 1 01:14:08.343: traffic class 0, flow 0x0, len 100+20, prot 58, hops 64, forward to ulp*Mar 1 01:14:08.347: IPV6: source 2001::1R1(config)#(local)*Mar 1 01:14:08.347: dest 2::2 (Tunnel0)*Mar 1 01:14:08.347: traffic class 0, flow 0x0, len 100+0, prot 58, hops 64, originating*Mar 1 01:14:08.347: IPv6: Sending on Tunnel0*Mar 1 01:14:08.355: IPV6: source 2::2 (Tunnel0)*Mar 1 01:14:08.355: dest 2001::1*Mar 1 01:14:08.355: traffic class 0, flow 0x0, len 100+20, prot 58, hops 64, forward to ulp*Mar 1 01:14:08.355: IPV6: source 2001::1 (local)*Mar 1 01:14:08.355: dest 2::2 (Tunnel0)*Mar 1 01:14:08.355: traffic class 0, flow 0x0, len 100+0, prot 58, hops 64, originating*Mar 1 01:14:08.355: IPv6: Sending on Tunnel0*Mar 1 01:14:08.363: IPV6: source 2::2 (Tunnel0)*Mar 1 01:14:08.363: dest 2001::1*Mar 1 01:14:08.363: traffic class 0, flow 0x0, len 100+20, prot 58, hops 64, forward to ulp*Mar 1 01:14:08.363: IPV6: source 2001::1 (local)*Mar 1 01:14:08.363: dest 2::2 (Tunnel0)*Mar 1 01:14:08.363: traffic class 0, flow 0x0, len 10R1(config)#0+0, prot 58, hops 64, originating*Mar 1 01:14:08.363: IPv6: Sending on Tunnel0*Mar 1 01:14:08.371: IPV6: source 2::2 (Tunnel0)*Mar 1 01:14:08.371: dest 2001::1*Mar 1 01:14:08.371: traffic class 0, flow 0x0, len 100+20, prot 58, hops 64, forward to ulp。
基于6t04隧道的网络设计与实现
基于6t04隧道的网络设计与实现王毅;唐洋【摘要】IPv6是下一代网络的核心,在几年内所有的企业网都将向IPv6网络过渡。
本文介绍IPv4向IPv6过渡的相关技术之一:6t04隧道。
并建立模型完成具体的实现和测试。
该模型充分利用现有的IPv4资源,从而实现了IPv4向IPv6的平滑过渡。
%IPv6 is the core of the next-generation network, and there will be a shift to it for all the enterprise networks in a few years. This essay introduces the 6 to 4 tunnel which is one of the relevant techniques for the shift from IPv4 to IPv6. Besides, this essay also realizes the shift and tests it by setting up a model that makes full use of current IPv4 resources to achieve a smooth shift from IPv4 to IPv6.【期刊名称】《重庆电力高等专科学校学报》【年(卷),期】2012(017)001【总页数】4页(P91-94)【关键词】IPv4;IPv6;6tM;双栈网络【作者】王毅;唐洋【作者单位】重庆城市管理职业学院信息工程学院,重庆401331;重庆电力高等专科学校计算机科学系,重庆400053【正文语种】中文【中图分类】TP3930 引言据最新资料显示,最后一批IPv4地址已于2011年初由ICANN分配完毕。
今后新联入Internet的企业网络及设备很难再获得有效IP地址。
在解决地址扩展性方面只有两种基本思路。
IPV4与IPV6网络互连隧道模式建模与仿真
图3
4 I I H L l D S C P : O x O I I D : 0 1 3 5 I O x O l 丌L : 2 5 4 l P R O : 0 x 2 g l
S R C l p :1 9 2. 1 68。 0。 1
T L : 2 0 O x O C H K S U M
的I P V 6 路 由如 图2 所示 。
。’ ’
C 3 0 0 2 0 Z : :
…
。 30
: : / 6哇 £ 0 1 01
‘ 3 0 0 ; Z . : :l 1 / l 2 8 f 0 1 / 0 1 】
L
4 隧道技术分析 wm _ ’ ’ I
S 3 0 0 0 : i l : 工 i : Y l a : s : g t 6 g t 4 h : £ l , O l 。 , l
:
n u e u l 0 接口 孜u 的 口 I 1 P I v V 6 u 的 口 地 址, 赳 L ' 对R ^ I 、 2 二 进 】 行 1 J 类 失 似处 I 理, 芏 ’ R I *
4 8 14 z9 B ̄t e¥
_
0
P R E A M B L E : 1 0 1 0 1 0 …l O i 1
l D E S T M A C : l S R C M A C : l 0 0 0 1 . 4 2 D 9 。 2 D 0 1 l 0 0 0 2 . 4 A g l 。 9 2 0 2
本文基于 P a c k e t Tr a c e r仿 真 软件 , 通 过设 计 网 络 拓 扑 结 构 ,
一 ’ 。 ’’ 。 ’’ ’ 。
。 登 以 : & : : : 上 : 。 1 , … 皇 : s : ≈ / 6 葺 乞 4 h e 1 0 … r n / 0 e ] O , , 1 ,
设计与实现由IPv4过渡到IPv6隧道的配置方案
设计与实现由IPv4过渡到IPv6隧道的配置方案Tushar M. Raste, D.B. KulkarniDepartment of Computer Science and Engineering, Walchand College of Engineering,Sangli, India Received 14 January 2005; received in revised form 28 June 2006;accepted 28 June 2006摘要:在现有的IPv4互联网中配置IPv6网络时,IPv4到IPv6的过渡就成为一个必然的过程,在过渡期间两种协议将会在较长的时间内共存。
以满足多方面的不同协议的需求,有许多种解决过渡问题的技术,隧道技术就是其中之一。
隧道技术提供了一种以现有IPv4路由体系来传递IPv6数据的方法:将IPv6包作为无结构意义的数据,封装在IPv4包中,被IPv4网络传输。
在本文里,我们将提出一种将IPv6包封装在IPv4包中的方案。
当大部分网络转换成只涉及最小IPv4路由的IPv6网络时,此方案将会很有用处。
此种技术结合上双协议栈,便可实现IPv4与IPv6网络环境的互通以及与其他IPv4应用程序的相互作用,而无需修改和再编译,以及NAT,也不要任何代理与网关设置。
关键字:网络,Ipv4,Ipv61. 引言在纯IPv6网络(Dunn,2002)中,最初的IPv6配置(Davies,2002)需要紧密成对使用IPv4地址来支持IPv4与IPV6之间的网络互连。
其节点仍然需要与IPv4节点通信,但IPv4节点没有双IP层来支持IPv4与IPv6。
这种机制基于IPv4到IPv6隧道的使用(Wang et al.,2001),以便在纯IPv6网络中支撑IPv4的通信。
由于IPv4全局可用的路由地址空间正成为稀缺资源,人们认为用户应在其一部分网络中配置IPv6协议,以减少对IPv4协议的需求和依赖性。
IPv4-IPv6过渡期隧道技术分类比较及实现
Iv P6隧道是将Iv报头封装在Iv报头 中,这 P6 P4
IT E F的Iv过渡工作组已经提出了许多建议方 样Iv协议包 就可以穿越Iv 网络进行通信 。R C P6 P6 P4 F 案 ,并定义 了多种Iv/ v 过渡技术 ,以实现Iv 2 9 中分配 给 Iv封装 在Iv中 的协 议 号是 4 回 P4 P6 I P4 83 P6 P4 1 ,表
6 PE
1引言
随着互 联 网 应用 的飞 速增 长 ,Iv作 为 IT 确 P6 EF
互 通技 术 。本文 重点 讨论 隧道技 术 。
定的下一代互联 网协议 ,有望彻底解决Iv 存在的 2 目前 常用隧道 技术分 类 P4 问题 ,市场前景 日趋看好 。2 0年 ,我国启动了基 03
尽 管 目前 我 国 已经开 始 了较 大 规 模 的Iv 网络 发 展 ,出现 了一 些 被 运行 Iv协 议 的骨 干 网络 隔 离 P6 P4
建设 ,但现有 的Iv网络运行十分稳定 ,设备制造 开 的局 部Iv网 络 ,为 了实 现 这 些Iv网 络 之 间 的 P4 P6 P6 商、网络运营商 、网络连接提供商等正从Iv上获 通信 ,必须采用隧道技术 。隧道对于源站点和 目的 P4 得稳定的收益 ,但Iv业务 的发展还将是个漫长 的 站点是透 明的 ,在隧道的入 口处 ,路 由器将Iv 的 P6 P6
过 程 ,短 时间 将业 务 迁移 到Iv 网络 意 味着 淘 汰 现 数据分组封装在Iv 中,该Iv分组的源地址 和 目 P6 P4 P4
有设施 ,构建新的通信网络 ,新的Iv 网络 的成本 的地 址 分 别是 隧 道 入 口和 出 口的Iv地 址 ,在 隧道 P6 P4 需要相当长的时 间才能收回 ;因此Iv 向Iv 的过 出 口处 ,再将Iv分组取 出转发给 目的站点 ,即一 P4 P 6 P6 渡需要 相 当长 的时 间才 能完 成 。在Iv完全 取代 种协议通过另一种协议 的封装进行通信。 P6
ipv6隧道穿越ipv4互联实验详细配置过程......
实验名称:ipv6隧道穿越ipv4互联实验实验目的:配置隧道让ipv6能穿越ipv4实现互联实验拓扑图:(有可能出现在本文的最后,我勒个擦....)实验详细配置步骤:R1Router>enRouter#conf tRouter(config)#line con 0Router(config-line)#logg syncRouter(config-line)#exitRouter(config)#no ip domain-lookupRouter(config)#host R1R1(config)#ipv6 unicast-routingR1(config)#int s0/0R1(config-if)#ip add 10.1.1.1 255.255.255.0R1(config-if)#no shutR1(config-if)#exitR1(config)#int loop0R1(config-if)#no ip addR1(config-if)#ipv6 add 2011:1:1:11::1/64R1(config-if)#ipv6 ospf 100 area 0R1(config-if)#int tunnel0R1(config-if)#no ip addR1(config-if)#ipv6 add 2012:1:1:11::1/64R1(config-if)#ipv6 ospf 100 area 0R1(config-if)#tunnel source 10.1.1.1R1(config-if)#tunnel destination 20.1.1.2R1(config-if)#tunnel mode ipv6ipR1(config-if)#exitR1(config)#ip route 20.1.1.0 255.255.255.0 10.1.1.2 R1(config)#ipv6 router ospf 100R2Router>enRouter#conf tRouter(config)#line con 0Router(config-line)#logg syncRouter(config-line)#exitRouter(config)#no ip domain-lookupRouter(config)#host R2R2(config)#ipv6 unicast-routingR2(config)#int s0/0R2(config-if)#ip add 10.1.1.2 255.255.255.0R2(config-if)#no shutR2(config-if)#exitR2(config)#int s0/1R2(config-if)#ip add 20.1.1.1 255.255.255.0R2(config-if)#no shutR2(config-if)#exitR3Router>enRouter#conf tRouter(config)#line con 0Router(config-line)#logg syncRouter(config)#no ip domain-lookupRouter(config)#host R3R3(config)#ipv6 unicast-routingR3(config)#int s0/1R3(config-if)#ip add 20.1.1.2 255.255.255.0R3(config-if)#no shutR3(config-if)#exitR3(config)#int loop0R3(config-if)#no ip addR3(config-if)#ipv6 add 2022:2:2:22::2/64R3(config-if)#ipv6 ospf 100 area 0R3(config-if)#exitR3(config)#int tunnel0R3(config-if)#no ip addR3(config-if)#ipv6 add 2010:1:1:11::2/64R3(config-if)#ipv6 ospf 100 area 0R3(config-if)#tunnel source 20.1.1.2R3(config-if)#tunnel destination 10.1.1.1R3(config-if)#tunnel mode ipv6ipR3(config-if)#exitR3(config)#ip route 10.1.1.0 255.255.255.0 20.1.1.1R3(config)#ipv6 router ospf 100实验总结:注意在路由器2中也要开启ipv6的流量转发做的的过程中很纠结,查阅了大量的资料.....不过值得欣慰的是做通了....嘿嘿。
v4兼容地址和IPv6隧道使用
使用 IPv4 兼容地址使用 IPv4 兼容地址派生自 IPv4 公用地址的 IPv4 兼容地址可以为通过现有 IPv4 Internet 结构连接 IPv6 主机或站点提供一种方法。
使用 IPv4 兼容地址时,IPv6 通信不要求其他的 IPv6 路由器。
将用 IPv4 标头封装它的通信。
下图显示了使用 IPv4 兼容地址跨 IPv4 路由器通信的独立子网上两个节点的配置。
启用兼容 IPv4 的 IPv6 地址时,Windows Server 2003 家族和 Windows XP 的IPv6 协议会将兼容 IPv4 的地址自动配置为“自动隧道伪接口(接口 ID 2)”上的 IPv4 公用地址。
IPv4 兼容地址的格式是 ::w.x.y.z,其中w.x.y.z是一个指派给计算机上接口的 IPv4 公用地址。
启用 IPv4 兼容地址时,IPv6 协议也自动创建一个 ::/96 路由,该路由使用“自动隧道伪接口”(接口 ID 为 2)转发所有 IPv4 兼容地址通信。
由此主机转发到 IPv4 兼容目标的所有通信都将用 IPv4 标头封装。
默认情况下,禁用 IPv4 兼容地址。
要启用兼容 IPv4 的地址,请打开“命令提示符”,然后键入:netsh interface ipv6 set state v4compat=enabled将通信发送到 IPv4 兼容地址时,将从 IPv4 兼容地址发送通信,并用 IPv4 标头封装。
IPv4 标头中的“协议”字段将被设置为 41,表示负载是 IPv6 数据包。
IPv4 标头允许跨 IPv4 结构进行通信。
嵌入在 IPv6 标头的源和目标 IPv4 兼容地址中的 IPv4 地址,将成为 IPv4 标头中的 IPv4 源和目标地址。
例如,当主机 A(用 IPv4 地址 131.107.41.17 配置)使用 IPv4 兼容地址将IPv6 通信发送给主机 B(用 IPv4 地址 157.60.15.93 配置)时,用于 IPv4 和IPv6 标头的源地址和目标地址在下表中列示。
交换机IPv4兼容IPv6自动隧道的配置
S3610_S5510系列交换机IPv4兼容IPv6自动隧道的配置一组网需求:SwitchA和SwitchB之间是IPv4网络,要求两台双栈交换机通过自动隧道建立IPv6连接。
二组网图:三配置步骤:1.SwitchA的配置# 使能IPv6转发功能。
<SwitchA> system-view[SwitchA] ipv6# 配置接口Vlan-interface100的地址。
[SwitchA] interface Vlan-interface 100[SwitchA-Vlan-interface100] ip address 2.1.1.1 255.0.0.0[SwitchA-Vlan-interface100] quit# 配置业务环回组。
需要注意的是,将端口加入到业务环回组时,需要在端口上关闭STP功能。
[SwitchA] link-aggregation group 1 mode manual[SwitchA] link-aggregation group 1 service-type tunnel[SwitchA] interface Ethernet 1/0/1[SwitchA-Ethernet1/0/1] stp disable[SwitchA-Ethernet1/0/1] port link-aggregation group 1[SwitchA-Ethernet1/0/1] quit# 配置IPv4兼容IPv6自动隧道。
[SwitchA] interface Tunnel 0[SwitchA-Tunnel0] ipv6 address ::2.1.1.1/96[SwitchA-Tunnel0] source Vlan-interface 100[SwitchA-Tunnel0] tunnel-protocol ipv6-ipv4 auto-tunnel# 在Tunnel接口视图下配置隧道引用业务环回组1。
IPv4与IPv6隧道技术的研究及实现
络孤 岛之 间的通 信问 题时 有效 、 可行 。 关键词 :I ; v ; GF I 6 隧道 P
中图分 类号 :P 9 T3 3 文献标 识码 : A 文章 编号 : 7 — 2 x 2 1 l 8 0 3 — 4 1 3 69 (02 0 — 15 0 6
Re e r h a d Re l a in o Pv / Pv n ei g s a c n ai to fI 6 I 4 Tu n l z n
张 平 李春 青 ,
(. 1 中国电子科技 集 团公 司第五 十 四研 究所 , 河北 石 家庄 00 8 ; 50 1
2 河北大学 生命科 学学院, . 河北 保定 0 10 ) 7 02
摘 要: 随着 I 6网络的快速发展 , I N 为使 Iv P4网络向 Iv 网络平滑演进 , P6 顺利解决 Iv P4网络孤岛或 I 6网络孤岛之间通 1 %
过骨干网实现跨 网通信问题, 提出了隧道技术 。文章对隧道技术的概念、 基本原理和隧道报文格式封装进行 了概述 , 分析
了 四种基本 隧道 技术 特点 , 比了各 种隧 道技 术之 间 的差异 。综 合 考 虑 Iv 络部 署初 期 和末 期 的 网络 结 构 特点 , 出 对 P6网 给
一
种 GF隧道 技术 实现 方案 , 细介 绍 了该方 案 的设计 、 及具 体 的验证 过程 。验 证结 果表 明 GF隧道 技术在 解决 网 I 并详 实现 I
wo k a d t u c s f ly s l e t e p o lm so ai i g V rⅡ ̄6 e wo k il n s o r n o s c e su l o v r b e fr l n 4 o h e z n t r a d ’c mmu i a o y b c bo e n t r s.t e t n e s n c t n b a k n ewo k i h u n l
隧道模式下IPv6穿越IPv4网络的技术分析与实现
隧道模式下IPv6穿越IPv4网络的技术分析与实现计算机系统应用2007年第l2期隧道模式下IPv6穿越IPv4网络的技术分析与实现①TeChnOlOgiCalAnalysisandRealizationoftransitionbetweenNetworkIPv6andIPv4undertunneling陶国芳(杭州师范大学信息工程学院杭州310036)摘要:文章从IPv6协议的定义出发,通过对IPV4网络向IPV6迁移原因的介绍,概述了三种迁移技术:双协议栈,隧道封装和协议转换.着重探讨了Cisco网络环境下的配置隧道,IPV6协议网络穿越IPV4网络技术的实现方法.关键词:IPv4IPv6隧道封装1引言IETF于90年代中期推出了第6版网际协议IPv6(如图0—1).新的网际协议地址长度增加到128bit,支持约3.4X10个IP地址,同时采用分级地址模式,高效数据报报头,服务质量(QoS),快速的路由结构等多项技术,将极大地满足用户对网络的新要求.但是,传统的IPv4网络不可能在极短的时间内就为新的IPv6网络所替代,IPv4的网络和业务将会在一段相当长的时间里与IPv6共存,许多业务仍然要在IPv4网络上运行很长时间,特别是IPv6不可能马上提供全球的连接,很多IPv6的通信不得不在IPv4网路上传输,在一个很长时期中必然将是两种网络并存.为此,必须对网际协议作大量的研究,提出可行的方案,实现在利用现有IPv4资源的情况下逐步向IPv6网络迁移.2IPv4一lP,,6整合与共存策略概述IPv6协议在设计开始就考虑到了与IPv4的过渡问题,以维持对IPv4的完全向后兼容.IETF的Ngtrans工作组设计了用于IPv4网络向IPv6转换的工具,协议和机制.从96年起,IETF提出了许多用于网络过渡的机制和策略,主要有以下几种:2.1双协议栈(DualProtocolStack)双协议栈技术(Dualstack).即所有的主路由器既运行IPv4协议栈又运行IPv6协议栈,同时支持两套协议,这是IPv4网络和IPv6网络互操作最简单,直接的方法.双协议栈节点可直接与IPv4网络和IPv6网络交互,系统根据实际传输的数据报的类型动态地指定是使用IPv4协议栈还是IPv6协议栈进行工作.2.2隧道封装(Tunneling)隧道使孤立的IPv6主机,服务器,路由器等利用现有的IPv4网络与其他IPv6网络通信.即使是孤立的IPv6主机也能够利用IPv4作为传输层建立端到端的IPv6会话.隧道机制就是利用IPv4封装IPv6数据包并且把这些封装了的数据包通过IPv4网络送往一个IPv4目的节点,目的节点拆封数据包并剥离出IPv6数据包.2.3协议转换(ProtocolTranslation)在IPv6网络上IPv6单协议网络的节点与IPv4网络上IPv4单协议网络的节点进行通信,可以采用此技术将协议报头,协议地址进行转换,映射为与网络匹配的协议类型,从而利用现有的网络为载体,实现报文的可靠传输.①2006年度浙江省教育科学规划立项资助课题【2006S029),杭州师范大学自然科学立项资助课(2007XNZ05J86应用技术Applied1hnique2007年第12期计算机系统应用3隧道技术分析隧道一般用于在现有网络中传输不兼容的协议或特殊的数据.对于在现有IPv4网络中配置IPv6,隧道机制提供了一种基本方法,使IPv6主机,路由器等组成的网络使用IPv4路由作为传输层,以到达其他的IPv6 网络.当IPv6数据包在IPv4中通过隧道传输时,原始包头和有效载荷书不被修改的.在IPv6数据包前面插入一个IPv4包头.里面的包头包含着端到端IPv6会话的源和目的IPv6地址,外面的包头包含隧道端点的源和目的IPv4地址,在隧道的每一个端点,执行IPv6数据包的封装和解封装(如下图2—1所示).IETF针对IPv6 主机11~,6网络3.1采用配置隧道配置隧道是IPV6支持的第一个过渡机制,在目前所有可用的IPV6网络中广泛地支持,配置隧道可以看作是一条点到点链路.CiscoIOS对配置隧道有很好的支持.在Cisco路由器上启用配置隧道需要六个步骤: 在config模式下选定启用配置隧道的接口编号,给隧道接口静态配置一个IPv6地址和前缀,确定用作隧道接口源地址的本地IPV4地址,确定隧道终点的目的IPV4地址,定义隧道接口类型为配置隧道,使用ipv6 route命令将匹配的IPv6数据包转发到配置隧道接口.如上图2所示网络进行实例配置说明,R1(config)#inttunnel0R1(config—if)#ipv6address3001:a12:f仟f:c::11~.6啊络图1通过IPv4隧道传输IPv6数据包协议在双栈节点问建立隧道的协议和技术,主要有以下几种:配置隧道,隧道代理,隧道服务器,6to4,GRE隧道,ISATAP(站点间自动隧道编址协议)和自动IPv4兼容隧道等.其中Cisco所支持的有:配置隧道,6to4, GRE隧道,ISATAP等.~一~一~<~嘲络一so/o~~…一一IPv6主机1/64R1(config—if)#tunnelsource120.12.12.100Rl(config—if)#tunneldestination201.13.12.200R1(config—if)#tunnelmodeipv6ip图26to4隧道网络Rl(config—if)#exitR1(config)#ipv6route4001:212:f仟f::/48tunnel03.2采用6to4在两个IPV6域间建立,操作,管理和支持配置隧道至少需要两个实体的同步,对于简单的网络组织来说,静态管理几个隧道是可行的.但是对于一个复杂的网络环AppliedTechnique应用技术87一计算机系统应用2007年第12期境来说就不是一件那么容易做的事了.IETF定义了另一种称为6to4的机制来简化通过隧道在IPV4网络上配置IPV6,在RFC3056中定义的6to4机制具有如下特点: 自动隧道(在由IPV6节点组成的站点间动态采用隧道的方法),在站点边缘使用(在站点边缘的边界路由器上启用,6t04路由器必须通过IPV4路由基础设施到达其他6t04站点和6to4路由器),自动前缀分配(向每一个6to4站点提供一个可聚合的全球单播的IPV6前缀),没有IPV6路由传播(6to4前缀基于全球唯一的IPV4地址).图2显示了一个6to4的网络结构.R6to4(config)#intIo0R6to4(config—if)#ipaddress123.123.100.11255.255.255.0R6to4(config—if)#ints0/0R6to4(config—if)#ipv6address1000:OaOl:OlOa:2::1/64R6to4(config一.f)#inttunnellR6to4(config—if)#noipaddressR6to4(config—if)#ipv6unnumberedserial0/0R6to4(config—if)#tunnelsourceIoopbac~R6to4(config—if)#tunnelmodeipv6ip6to4R6to4(config—if)#ipv6route1000::/16tunne1]3.3通过GRE隧道部署IV6GRE隧道是一种能够保证稳定和安全的端到端链路的标准隧道技术,GRE隧道给在域内使用IS—IS作为IPV6路由选择协议的组织提供了方便,因为IS—IS 协议需要在网络上相邻的路由器之间发送链路层信息, 而GRE隧道是仅有的能够在IP基础设施上携带这种类型流量的隧道协议.因此,一条GRE隧道可以用来在广域网中同时传输IPV6数据包及IS—IS路由器间的IS—IS链路层信息.在Cisco路由器上启用针对IPV6的GRE隧道的步骤如下:步骤l,确定启用GRE隧道的隧道接口号一Router (config)#interfacetunnel—interface—number;步骤2,给隧道接口静态分配一个IPV6地址和前缀长度一Router(config—if)#ipv6addressipv6一ad—dress/prefix—length:步骤3,指定用作隧道接口源地址的IPV4地址一Rou~r(config—if)#tunnelsourceipv4一address;步骤4,标识隧道终点的目的IPV4地址,目的IPV488应用技术AppliedTechnique地址是隧道的远端一Router(config—if)#tunnel destinationipv4一address:步骤5,定义隧道接口作为IPv6的GRE隧道一Router(config—if)#tunnelmodegreipv63.4部署ISAAP隧道ISATAP(IntrasiteAutomaticTunnelAddress—ingProtoco1)是在一个管理域(比如一个站点)内使用IPV4传输IPV6的隧道传输机制,它可以在IPV4网络上创建一个虚拟的IPV6网络.如同其他过渡和共存机制,ISATAP操作需要在主机和路由器中支持双栈.在Cisco路由器上启用ISA TAP隧道的步骤如下:步骤l,给一个网络接口分配一个IPv4地址一Router(config)#interfacetunnel—interface—num—ber:一Router(config—if)#ipaddressipv4一ad—dressnetmask步骤2,定义路由器上启用ISATAP机制的隧道接口号一Router(config—If)#interfacetunnel—inter- face—number;步骤3,指定一个分配了IPv4地址的接口为隧道源一Router(config—if)#tunnelsourceinterface—typeinterface—number;步骤4,确定隧道的类型一Router(config—if)# tunnelmodeipv6isatap步骤5,启用隧道接口的路由广播一Router(con—fig—if)#noipv6ndsuppress—ra;步骤6,启用隧道接口上的前缀广播一Router (config—if)#ipv6addressipv6一address/prefix—lengtheui一644基于Cicso产品的实例分析本院于2004年建设了一个基于Cisco路由器和交换机的网络通讯实验室,现有Cisco路由器十台.网络结构图如下图3,R3与R2的s0/0端口及R4的SO/I端口构成一个纯IPv4网络,R2的faO/0和路由器R1,R4 的faO/0端口和路由器R5的fa0/0端口构成两个IPv6 网络.4.1ManualIPv6Mode(每个路由器只列出相关的信息)R1一ipv6#showrunIPcef//启用Cisco快速转发(cef)2007年第12期计算机系统应用Pv6unicast—routing//启用Ipv6单播路由协议Pv6cefinterfaceFastEthernet0/0IPv6address2000:l:l:l:l:l:l:ll12/112//端口配置一个Ipv6地址IPv6Rip6boneenable//将接口添到特定的RIPng路由域IPv6routerRip6bone//启动IPv6的RIP进程R2一ipv67ipv4#showruninterfaceTunRe10;nterfaceFastEthernet0/0IPv6address2000.1:11:1:1:l:llll/l12//配置一个Ipv6地址IPv6Rip6boneenablerouterospi1//启用OSPF路由协议network192.23.1.00.0.0.255area0//发布路由IPv6routerRip6boneR4和R5与Rl和R3类试,不再给出具体的代码.而R3路由器没有特殊的配置,它处于一个纯Ipv4网络一'一'一一一'一一一一一一一一一一一一一一一一一一一一一一'一——Net,v.rk\~faO~OfaO/Oz000:I:1:1:1:1:1:1111/1124000:1:1:l:1:1:1:1111/1122000:1:1:1:1:1:l:1112/1124000:1:l:l:l:l:l:1112/112faO/OfaO/O厂~图3隧道模式IPv6穿越IPv4网络图IPv6address3000::1/112//配置一个Ipv6地址IPv6Rip6boneenable//启用6bone类型ipv6rip协议tunnelsourceSerial0/0//指定隧道源端口tunneldestination192.34.1.4//指定隧道目的地址tunnelmodeIPv61P//指定隧道类型中,只要对相应的使用端口SO/O和SO/1配置指定的Ipv4地址.因为是在实验室环境,是采用背对背的DTE —DCE连接方式,要对DCE端口设置相应的同步时钟. 最后采用下面的代码,采用OSPF协议在区域0中发布两条Ipv4路由,使的Ipv4网络能联通.routerospflnetwork192.23.1.00.0.0.255area0 AppliedTechnique应用技术89计算机系统应用2007年第l2期network192.34.1.00.0.0.255area04.2AutomaticIPv4一CompatibeMode(给出R2和R4代码,其余路由器和手动模式时类试)R2——ipv67ipv4#showrun型interfaceTunne10IP,,6Rip6boneenabletunneIsourceSerial0/0tunnelmodeIPv6IPauto—tunnel//定义隧道类nterfaceFastEthernet0/0P,,6address2000:l:l:l:l:l:l:l1ll/l12P,,6RipP6boneenablerouterospflnetwork192.23.1.00.0.0.255area0Irouterbgp100//启用边界网关协议,设置自治域号nobgpdefaultIPv4一unicas//关闭Ipv4bgp单播bgplog——neighbor—-changes neighbor::192.34.1.4remote—as100//设置远程相连自治域边界路由器端口address—familyIPv6//进入ipv6地址簇配置neighbor::192.34.1.4activate//激活邻居neighbor::192.34.1.4next—hop—self bgpredistribute—.internalnetwork2000:l:l:l:1:l:1:0/112//通告网络exit—address—family//退出ipv6地址簇配置IP,,6routerRip6boneredistributebgp100metric2//将BGP学到的路由从新发布到ospfR4一ipv47ipv6#showrun interfaceTunne10IP,,6Rip6boneenabletunneIsourceSerial0/l90应用技术A~pIMTechnique tunneImodeIPv6IPauto—tunne interfaceFastEthernet0/0IPv6address4OOO:l:1:1:1:l:1:l111/l12IPv6Rip6boneenablerouterospf1network192.34.1.00.0.0.255area0routerbgp100//配置BGP协议nobgpdefaultIPv4一unicast//关闭BGP缺省pv4单播,缺省情况BGP只会发布V4的前缀给邻居neighbor::192.23.1.2remote—as100 address—familyIPv6neighbor::192.23.1.2activateneighbor::192.23.1.2next—hop—self bgpredistribute—internal//允许BGP在内部路由协议重发布network4OOO:1:l:1:1:l:l:O/112exit—.address——familyIPV6routerRip6boneredistributebgp100metric25结束语IPv6协议是网际协议发展的必然趋势,为实现现有IPv4网络到IPv6网络的迁移,IETF提出了多种解决方案.为解决IPv6节点问的通信,通常采用配置型隧道,自动型隧道,隧道代理,IPv6overIPv4GRE隧道以及自动6To4隧道技术;而实现IPv5节点与IPv4节点间通信可采用双协议栈,双协议栈转换,动态IP/ICMP转换,网络地址和协议转换,SOCKS64网关等技术.无论采用哪一种方案,其实施都有很大的局限性.为了利用现有IPv4网络资源并逐步实现向IPv6网络的迁移,必须作进一步探索,提出一种更为方便且既能满足IPv4与IPv6节点间通信又能解决IPv6节点间通信的技术方案,并达到两者的完美结合,才能为完成IPv6网络最终取代IPv4网络奠定基础.(下转第93页)2007年第12期计算机系统应用数,从而减少处理计算量,但是会使得K增大增加内存占用,增大dk会增大K,但对处理没有其他影响,因此dk取1即可.得到:TK=M一亩(2)此式中T/dt即为T时间段内,漏水操作的执行次数.调节M,T,dt可以控制检测粒度,一定程度上控制处理计算量和内存使用.3漏桶算法在反垃圾邮件系统中的研究应用反垃圾邮件系统中设置了8组桶,桶的分组如下表,当邮件系统接收一封邮件时,就向相应的桶加一滴水,当漏桶溢出时,这样就可以产生一条过滤规则,比如当某个发送者(****************)的OKSENDER桶溢出时,则可以判断这个用户在规定的时间里发送成功邮件太频繁,从而可以认为有发垃圾邮件的嫌疑,这样就可以把发送者****************加入黑名单中禁封一段时间了.其它桶溢出也一样的道理,这样就有效的阻止了频繁发送垃圾邮件的可能了.桶分组说明OKsENDER发送信件超量,封禁SENDERCBIP内容被过滤,封禁IPUNSENDER未知用户,封禁SENDERUNIP未知用户,封禁IPRBsENDER用户信箱被保护,封禁SENDER CBSENDER内容被过滤,封禁SENDER SBSENDERSENDER被封禁,追加封禁SENDER OKIP发送信件超量,封禁IP4总结本文简要介绍了漏桶算法,并详细阐述了在反邮件系统中的如何应用漏桶算法,很好地解决了反垃圾邮件系统中检测超量问题,及时有效地生成垃圾邮件的过滤规则.参考文献1布卢姆,开放源码邮件系统安全,杜鹏译,北京:人民邮电出版社,2002.4.2http,,/(上接第90页)参考,J犬1JosephDavies箸,张晓彤,晏国晟,曾庆峰译,理解IPv6[M],北京:清华大学出版社2004.2伍海桑,陈茂科,陈名华箸,IPv6原理与实践【M],北京:人民邮电出版社,2000.workAddressTranslation—ProtocolTranslation(NAT—PT)[R].RFC2766.200O.4BCarpenter,CJung.TransmissionofIPv6overIPv4 DomainsWithoutExplicitTunnels[R].RFC2529.1999.5RegisDesmeules编,王玲芳,张宇,李颖华,孙向辉译,CiscoIPv6网络实现技术[M],北京:人民邮电出版社,2004.6张宏科,苏伟编着,IP,r6路由协议栈原理技f, [M],北京:北京邮电大学出版社,2006.7(美)SamBrown等着,王军,刘芳等译,CiscoIOS的IPv6配置[M],北京:电子工业出版社,2003.8罗万明,阎保平,IPv4/IPv6过渡机制的研究与实现[J],计算机工程与应用,2003(25).9余冬梅,廖永刚,张秋余,基于IPv4网络的IPv6隧道传输技术的研究[J],计算机工程与设计,2{)04(09). AppliedTechnique应用技术93。
【整理】隧道实现方案总结
华为隧道配置方案总结1 IPv4 over IPv6隧道配置1.1在IPv4 Internet向IPv6 Internet过渡的后期,IPv6网络已被大量部署,此时可能出现IPv4孤岛。
利用隧道技术可在IPv6网络上创建隧道,从而实现IPv4孤岛的互连。
这类似于在IP网络上利用隧道技术部署VPN。
在IPv6网络上用于连接IPv4孤岛的隧道,称为IPv4 over IPv6隧道。
图1 IPv4 over IPv6隧道组网图IPv4 over IPv6隧道技术的原理如图1所示:1)在边界路由器启动IPv4/IPv6双协议栈。
2)边界路由设备在收到从IPv4网络侧来的报文后,如果报文的目的地不是自身,就把收到的IPv4报文作为净荷,加上IPv6报文首部,封装到IPv6报文里。
3)在IPv6网络中,封装后的报文被传递到对端的边界路由设备。
对端边界路由设备对报文解封装,去掉IPv6报文首部,然后将解封装后的IPv4报文转发到IPv4网络中。
1.2 IPv4 over IPv6隧道配置命令具体配置步骤如下:1)配置Tunnel接口行命令interface-number,创建Tunnel接口,并进入Tunnel 接口视图。
#烽火对应命令:interface tunnel <1-65535>执行命令ipv4-ipv6,将Tunnel类型指定为IPv4 over IPv6隧道。
#烽火对应命令:tunnel mode (ipip|gre|mpls-te),需要扩展为tunnel mode (ipip|gre|mpls-te|ipv4-ipv6)执行命令{ source-ipv6-address | interface-type interface-number },设置Tunnel接口的源IPv6地址或源接口。
#烽火对应命令:tunnel source ,需要扩展为tunnel source (|X:X::X:X)执行命令ipv6-address,设置Tunnel接口的目的IPv6地址。
IPv4与IPv6业务-隧道技术介绍-D
IPv4与IPv6业务-隧道技术介绍,目录隧道技术 (1)隧道技术简介 (1)IPv6 over IPv4 隧道 (1)IPv4 over IPv4 隧道 (5)IPv4 或IPv6 over IPv6 隧道 (6)6PE概述 (7)IPv4/IPv6 业务隧道技术隧道技术隧道技术简介随着Internet 的日益膨胀,现有的IPv4 地址已经十分紧缺,虽然使用分配临时IPv4地址或NAT(Network Address Translator,网络地址转换)等技术,在一定程度上缓解了IPv4 地址不足的状况,但也增加了地址解析和处理方面的开销,同时导致某些高层应用失效,而且仍然无法回避IPv4 地址即将被分配殆尽这个问题。
采用128位地址长度的IPv6 协议,彻底解决了IPv4 地址不足的难题,并且在地址容量、安全性、网络管理、移动性以及服务质量等方面有明显的改进,是下一代互联网络协议采用的核心标准之一。
IPv6 与IPv4 不兼容,但它同所有的TCP/IP 协议族中的其他协议兼容,即IPv6 完全可以取代IPv4。
在IPv6 成为主流协议之前,首先使用IPv6 协议栈的网络希望能与当前仍被IPv4 支撑着的Internet 进行正常通信,因此必须开发出IPv4 和IPv6 互通技术以保证IPv4能够平稳过渡到IPv6。
此外,互通技术应该对信息传递做到高效无缝。
国际上IETF组建了专门的NGTRANS 工作组,开展对IPv4 和IPv6 过渡问题和高效无缝互通问题的研究。
目前已经出现了多种过渡技术和互通方案,这些技术各有特点,用于解决不同过渡时期、不同环境的通信问题。
目前解决过渡问题的基本技术主要有3 种:双协议栈(RFC2893),隧道技术(RFC2893)和NAT-PT(RFC2766)。
隧道是一种封装技术,它利用一种网络协议来传输另一种网络协议,即利用一种网络传输协议,将其他协议产生的数据报文封装在它自己的报文中,然后在网络中传输。
实验八IvoverIvto隧道
F0/24 61.16.3.1 3.4.1. 实验七 IPv6 over IPv4 6to4隧道【实验名称】IPv6 Automatic 6to4 Tunnel 隧道【实验目的】在IPv4和IPv6之间建立隧道【实验知识】自动隧道技术简介:这种隧道的建立和拆除是动态的,它的端点根据分组的目的地址确定,适用于单独的主机之间或不经常通信的站点之间。
自动配置的隧道需要站点采用IPv4兼容的IPv6地址,这些站点之间必须有可用的IPv4连接,每个采用这种机制的主机都需要有一个全球唯一的IPv4地址。
采用这种机制不能解决IPv4地址空间耗尽的问题(采用手工配置隧道的站点就不需要IPv4地址)。
另外还有一种危险就是如果把Internet 上全部IPv4路由表包括到IPv6网络中,那么会加剧路由表膨胀的问题。
这种隧道的两个端点都必须支持双协议栈(手工配置就不需要)。
在隧道要经过NAT 设施的情况下这种机制不可用。
【拓扑结构】【实验设备】RG-S3760 交换机3台,windows xp pc 机2台,直通双绞线4条F0/1:61.16.2.1F0/1:3::1/64F0/24:1::1/64PC1(Winxp)IPv6:1::2/64 PC2(Winxp)IPv6:3::2/64tunnel 0: 2002:3d10:0201::/128S3760-1 S3760-2 S3760-3 图1F0/1:61.16.2.2F0/24 61.16.3.2【实验过程】1. 配置交换机1)配置交换机s3760-1端口f 0/1S3760-1(config)#ipv6 unicast-routingS3760-1(config)# interface fast 0/1S3760-1(config-if)# no switchportS3760-1(config-if)# ip address 61.16.2.1 255.255.255.0 S3760-1(config-if)# no shutdownS3760-1(config-if)# exit2)配置交换机s3760-1端口f 0/24S3760-1(config-if)# interface fast 0/24S3760-1(config-if)# no switchportS3760-1(config-if)# ipv6 address 1::1/64S3760-1(config-if)# ipv6 enableS3760-1(config-if)# no ipv6 nd suppress-raS3760-1(config-if)# no shutdownS3760-1(config-if)# exitS3760-1(config)# end3)查看交换机s3760-1的配置S3760-1# show ip interface(如图1-3)S3760-1# show ipv6 interface(如图1-4)图1-3图1-44)配置交换机s3760-2端口f 0/1S3760-2(config)# interface fast 0/1S3760-2(config-if)# no switchportS3760-2(config-if)# ip address 61.16.2.2 255.255.255.0 S3760-2(config-if)# no shutdownS3760-2(config-if)# exit5)配置交换机s3760-2端口f 0/24S3760-2(config-if)# interface fast 0/24S3760-2(config-if)# no switchportS3760-2(config-if)# ip address61.16.3.1 255.255.255.0 S3760-2(config-if)# no shutdownS3760-2(config-if)# exitS3760-2(config)# end6)查看交换机s3760-2的配置S3760-2# show ip interface(如图1-7)图1-77)配置交换机s3760-3端口f 0/1S3760-1(config)#ipv6 unicast-routingS3760-3(config-if)# interface fast 0/1S3760-3(config-if)# no switchportS3760-3(config-if)# ipv6 address 3::1/64S3760-3(config-if)# ipv6 enableS3760-3(config-if)# no ipv6 nd suppress-raS3760-3(config-if)# no shutdownS3760-3(config-if)# exit8)配置交换机s3760-3端口f 0/24S3760-3(config-if)# interface fast 0/24S3760-3(config-if)# no switchportS3760-3(config-if)# ip address 61.16.3.2 255.255.255.0 S3760-3(config-if)# no shutdownS3760-3(config-if)# exitS3760-3(config)# end9)查看交换机s3760-3的配置S3760-3# show ip interface(如图1-10)S3760-3# show ip6 interface(如图1-11、1-12)图1-10图1-11图1-122.配置隧道1)配置S3760-1上的隧道S3760-1(config)# interface tunnel 0S3760-1(config-if)# tunnel mode ipv6ip 6to4S3760-1(config-if)# tunnel source f 0/1S3760-1(config-if)# ipv6 address 2002:3d10:0201::1/128 S3760-1(config-if)# exit2)查看S3760-1上的隧道S3760-1# show interfaces tunnel 0(如图2-2)图2-23)配置S3760-3上的隧道S3760-3(config)# interface tunnel 0S3760-3(config-if)# tunnel mode ipv6ip 6to4S3760-3(config-if)# tunnel source f 0/24S3760-3(config-if)# ipv6 address 2002:3d10:0302::1/128 S3760-3(config-if)# exit4)查看S3760-3上的隧道S3760-3# show interfaces tunnel 0(如图2-4)图2-43.配置交换机上的路由1)配置S3760-1上的路由S3760-1(config)# ip route 0.0.0.0 0.0.0.0 61.16.2.2 S3760-1(config)# ipv6 route 2002: :/16 tunnel 0S3760-1(config)# ipv6 route : :/0 2002:3d10:0302::1 S3760-1(config)# end2)查看S3760-1上的路由S3760-1#show ip route(如图3-2)图3-23)配置S3760-2上的路由S3760-2(config)# ip route 0.0.0.0 0.0.0.0 61.16.3.2 S3760-2(config)# end4)查看S3760-2上的路由S3760-2# show ip route(如图3-4)图3-45)配置S3760-3上的路由S3760-3(config)# ip route 0.0.0.0 0.0.0.0 61.16.3.1 S3760-3(config)# ipv6 route 2002: :/16 tunnel 0S3760-3(config)# ipv6 route : :/0 2002:3d10:0201::1 S3760-3(config)# exit6)查看S3760-3上的路由S3760-3# show ip route(如图3-6)图3-64.查看主机连通性PC1 ping PC2C:\>ping 3::2(如图4-1)PC2 ping PC1C:\>ping 1::2(如图4-2)图4-1图4-2。
IPv4迁移到IPv6隧道配置
隧道借用地址说明:在现有IPv4 网络上创建覆盖型IPv6 隧道,隧道的起点和终点都使用了IPv4 地址来定义,然后要使隧道运行正常,使隧道具有路由协议的连接功能,需要赋予隧道两端IPv6 地址,从而提供IPv6 的连通性,而隧道两端的IPv6 地址可以不属于同一网段,当然属于同一网段是最好的选择。
无论隧道两端的IPv6 地址是否属于同一网段,IPv6 路由协议都是可以正常使用的。
如果隧道两端的IPv6 地址属于同一网段,那么一切正常,隧道两端的地址可以相互ping 通,路由协议也无须更多操作,而当隧道两端的IPv6 地址不属于同一网段时,那么两端的地址是无法ping 通的,但IPv6 路由协议可以照常使用,这时,路由协议需要将隧道的地址当作额外路由进行重新通告一次。
下面在创建隧道时,将隧道两端的IPv6 地址改为无编号借用地址(unnumbered ),这时两端地址不属于同网段,再使用IPv6 路由协议连通两端IPv6 网络。
1. 初始配置r1:r1(config)#int f0/0r1(config-if)#ip address 10.1.1.1 255.255.255.0r1(config-if)#exir1(config)#ip route 0.0.0.0 0.0.0.0 f0/0r1(config)#ipv6 unicast-routingr1(config)#int loopback 0r1(config-if)#ipv6 address 2011:1:1:11::1/64R2r2(config)#int f0/1r2(config-if)#ip add 20.1.1.1 255.255.255.0r2(config-if)#exitr2(config)#ip route 0.0.0.0 0.0.0.0 f0/0r2(config)#ipv6 unicast-routingr2(config)#int loopback 0r2(config-if)#ipv6 address 2022:2:2:22::2/64说明:R1与R2之间的IPv4 连通性正常。
IPv6与IPv4隧道技术的编程模拟
IPv6与IPv4隧道技术的编程模拟摘要 IPv6协议是因特网的新一代通信协议,如何实现从IPv4到IPv6的平滑过渡是IPv6发展目前急需解决的关键问题。
本文从实际情况出发,对隧道模式提供一种可行的模拟方案,为即将到来的网络过渡[1]时期采用隧道模式提供一定的技术探索。
关键词 IPv6 IPv4 IPv4/IPv6双栈隧道1 引言一旦IPv6投入应用,看起来网络中所有的主机都必须升级。
但是,实际情况并非如此,研究向IPv6过渡的人士正在致力于IPv6的设计及IPv6所支持的协议和机制,以实现得体的渐进的升级。
如果能有条理地、明智地进行现有网络向IPv6的升级,升级的影响可能较小。
在RFC1933(主机和路由器向IPv6过渡的机制)、RFC 2185(向IPv6过渡的选路问题)、RFC2071(网络重新编号概观:为何需要及需要什么)以及RFC 2072(路由器重新编号指导)等文档中都涉及有关向IPv6过渡的讨论。
向IPv6过渡必定是渐进的,预计IPv4和IPv6将长期共存,目前大多数过渡策略都依靠隧道的实现方法,即至少在最初,将来自IPv6岛的IPv6包封装在IPv4包中,然后在广泛分布的IPv4海洋中传送。
经过过渡的早期阶段,越来越多的IP网络和设备将支持IPv6。
但即使在过渡的后期阶段,IPv6封装仍将提供跨越只支持IPv4的骨干网和其他坚持使用IPv4的网络的连接能力[2-3]。
本文在使用简单的实验室环境下实现隧道模式提供一种可行的模拟方案,为即将到来的网络过渡时期采用隧道模式提供一定的技术探索。
2 技术基础(1)IPv6地址设置IPv6地址长度为128位。
RFC 2373中不仅解释了这些地址的表现方式,同时还介绍了不同的地址类型及其结构。
IPv6地址有三类、单播、组播和泛播地址。
单播和组播地址与IPv4的地址非常类似;但IPv6中不再支持IPv4中的广播地址,而增加了一个泛播地址。
一个完整的IPv6地址分为两个部分:子网前缀和接口标识符,因此人们期待一个IP节点地址可以按照类似CIDR地址的方式被表示为一个携带额外数值的地址,其中指出了地址中有多少位是掩码。
【工程实验室】【IPv6自动隧道(PC-Switch)】
实验十二 IPv6自动隧道(PC-Switch)【实验名称】IPv6 Automatic 6to4 Tunnel(PC---Switch)【实验目的】掌握在IPv4和IPv6之间建立隧道【背景描述】在上一轮的测试中,江苏三江源大学已经看到了锐捷设备对IPv6所有基本功能的支持,但是考虑到从目前的情况看,学校的IPv6网络目前还无法直接接入到纯IPv6骨干网cernet2中,因此需要设备支持隧道建立,通过现在的IPv4网络建立隧道来接入到cernet2中。
同样的,仍然是小王主持了这一轮的针对设备对隧道技术支持的测试。
用手动建立隧道的方法接入到IPv6网络中,必须两端同时建立隧道,配置复杂,维护不便,通常用于长期稳定的隧道建立,在普通主机利用隧道技术接入到IPv6网络中时,通常会采用自动隧道技术。
因此在看到设备对手动隧道的支持后,学校领导还希望看到设备对自动隧道技术的支持。
当然,小王非常痛快地配合学校做了自动隧道的测试。
首先仍然是主机到交换机的隧道建立测试。
【需求分析】需求1:在建立隧道的时候如果所有的隧道都用手动隧道建立,工作量大,维护不便,因此部分IPv6主机需要自动在IPv4网络中建立隧道,接入到IPv6网络中。
分析1:手动隧道建立配置负复杂,维护不便,因此个体主机接入到IPv6网络中的时候可以通过自动建立隧道的方法来接入IPv6网络中。
【实验拓扑】如图1-38所示网络拓扑,通过在交换机上配置IPv6地址,通过IPv6 Automatic 6to4 Tunnel模式,掌握在IPv4和IPv6之间建立隧道。
图1-38 IPv4和IPv6之间建立隧道【实验设备】双协议栈交换机 3台 IPv6 PC 2台 双绞线 4条【预备知识】双协议栈的概念IPv6地址结构IPv6主机地址配置S3760双栈交换机IPv6功能的开启隧道技术原理【实验步骤】第一步:配置双协议栈交换机交换机接口。
(1)配置双协议栈交换机S3760_1接口S3760_1(config)interface fastEthernet 0/48S3760_1(config-if)#no switchportS3760_1(config-if)#ip address 61.16.1.1 255.255.255.0S3760_1(config-if)#no shutdownS3760_1(config-if)#exitS3760_1(config)#interface fastEthernet 0/1S3760_1(config-if)#no switchportS3760_1(config-if)#ip address 61.16.2.1 255.255.255.0S3760_1(config-if)#no shutdownS3760_1(config-if)#exit验证测试:查看双协议栈交换机接口配置S3760_1#show ip interfaceInterface : Fa0/1Description : FastEthernet100BaseTX 0/1 OperStatus : upManagementStatus : EnabledPrimary Internet address: 61.16.2.1/24Broadcast address : 255.255.255.255PhysAddress : 00d0.f8c1.b3e4Interface : Fa0/48Description : FastEthernet100BaseTX 0/48 OperStatus : upManagementStatus : EnabledPrimary Internet address: 61.16.1.1/24Broadcast address : 255.255.255.255PhysAddress : 00d0.f8c1.b3e3(2)配置双协议栈交换机S3760_2接口S3760_2(config)#interface fastEthernet 0/1S3760_2(config-if)#no switchportS3760_2(config-if)#ip address 61.16.2.2 255.255.255.0 S3760_2(config-if)#no shutdownS3760_2(config-if)#exitS3760_2(config)#interface fastEthernet 0/48S3760_2(config-if)#no switchportS3760_2(config-if)#ipv6 address 2::1/64S3760_2(config-if)#no shutdownS3760_2(config-if)#no ipv6 nd suppress-raS3760_2(config-if)#exit验证测试:查看双协议栈交换机接口配置S3760_2#show ip interfaceInterface : Fa0/1Description : FastEthernet100BaseTX 0/1 OperStatus : upManagementStatus : EnabledPrimary Internet address: 61.16.2.2/24Broadcast address : 255.255.255.255PhysAddress : 00d0.f8c1.c2e3Interface : Fa0/48Description : FastEthernet100BaseTX 0/48 OperStatus : upManagementStatus : EnabledBroadcast address :PhysAddress : 00d0.f8c1.c2e4验证测试:查看双协议栈交换机接口配置S3760_2#show ipv6 interfacesinterface FastEthernet 0/48 is Up, ifindex: 48address(es):Mac Address: 00:d0:f8:c1:c2:e4INET6: 2::1 , subnet is 2::/64Joined group address(es):ff02::2ff01::1ff02::1ff02::1:ff00:1INET6: fe80::2d0:f8ff:fec1:c2e4 , subnet is fe80::/64Joined group address(es):ff02::2ff01::1ff02::1ff02::1:ffc1:c2e4MTU is 1500 bytesICMP error messages limited to one every 100 millisecondsICMP redirects are enabledND DAD is enabled, number of DAD attempts: 1ND reachable time is 30000 millisecondsND advertised reachable time is 0 millisecondsND retransmit interval is 1000 millisecondsND advertised retransmit interval is 0 millisecondsND router advertisements are sent every 200 seconds<240--160> ND router advertisements live for 1800 seconds(3)配置双协议栈交换机S3760_3接口S3760_3(config)#interface fastEthernet 0/1S3760_3(config-if)#no switchportS3760_3(config-if)#ipv6 address 3::1/64S3760_3(config-if)#no shutdownS3760_3(config-if)#no ipv6 nd suppress-raS3760_3(config-if)#exitS3760_3(config)#interface fastEthernet 0/48S3760_3(config-if)#no switchportS3760_3(config-if)#ipv6 address 2::2/64S3760_3(config-if)#no shutdownS3760_3(config-if)#no ipv6 nd suppress-raS3760_3(config-if)#exit验证测试:查看双协议栈交换机接口配置S3760_3#show ipv6 interfaceinterface FastEthernet 0/1 is Down, ifindex: 1address(es):Mac Address: 00:d0:f8:c1:c7:23INET6: 3::1 [ TENTATIVE ], subnet is 3::/64Joined group address(es):ff02::2ff01::1ff02::1ff02::1:ff00:1MTU is 1500 bytesICMP error messages limited to one every 100 millisecondsICMP redirects are enabledND DAD is enabled, number of DAD attempts: 1ND reachable time is 30000 millisecondsND advertised reachable time is 0 millisecondsND retransmit interval is 1000 millisecondsND advertised retransmit interval is 0 millisecondsND router advertisements are sent every 200 seconds<240--160> ND router advertisements live for 1800 secondsinterface FastEthernet 0/48 is Up, ifindex: 48address(es):Mac Address: 00:d0:f8:c1:c7:24INET6: 2::2 , subnet is 2::/64Joined group address(es):ff02::2ff01::1ff02::1ff02::1:ff00:2INET6: fe80::2d0:f8ff:fec1:c724 , subnet is fe80::/64Joined group address(es):ff02::2ff01::1ff02::1ff02::1:ffc1:c724MTU is 1500 bytesICMP error messages limited to one every 100 millisecondsICMP redirects are enabledND DAD is enabled, number of DAD attempts: 1ND reachable time is 30000 millisecondsND advertised reachable time is 0 millisecondsND retransmit interval is 1000 millisecondsND advertised retransmit interval is 0 millisecondsND router advertisements are sent every 200 seconds<240--160>ND router advertisements live for 1800 seconds第二步:配置双协议栈交换机之间隧道。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
—143—IPv4/IPv6主机之间强制隧道的设计与实现何世明,沈 军(东南大学计算机科学与工程系,南京 210096)摘 要:分析了IPv4/IPv6主机隧道IP 数据包的结构,提出了IPv4/IPv6主机之间强制隧道的结构模型,并利用PCAP 、MySQL C 、缓冲区等技术实现了IPv4/IPv6主机之间强制隧道。
强制隧道在IPv6资源访问过程中自动建立,建立的过程对用户是透明的。
关键词:强制隧道;IPv6;PCAP ;MySQL CDesign and Implementation of Compulsory TunnelBetween IPv4/IPv6 Host ComputersHE Shiming, SHEN Jun(Department of Computer Science and Engineering, Southeast University, Nanjing 210096)【Abstract 】This paper analyses the structure of IP data packages in IPv4/IPv6 host computer tunnel, proposes the structure model of the compulsory tunnel between IPv4/IPv6 host computers, and makes use of technology, such as PCAP, MySQL C, buffering area, etc. to realize the compulsory tunnel between IPv4/IPv6 host computers. The compulsory tunnel is set up automatically while IPv6 resources are visited, and the course is transparent to users.【Key words 】Compulsory tunnel; IPv6; PCAP; MySQL C计 算 机 工 程Computer Engineering 第32卷 第3期Vol.32 № 3 2006年2月February 2006·网络与通信·文章编号:1000—3428(2006)03—0143—03文献标识码:A中图分类号:TP3931 概述IPv6在保留IPv4一些有用功能基础上增加了一些更为优良的性能特征[2]:(1)IPv6将现有的IP 地址长度由32 bits 增加到128bits ,使地址数量大大增加,这将完全满足未来发展的需要;(2)IPv6对包头的简化,避免了那些很少使用的域静态地址占用空间,使路由器处理分组的速度加快,提高吞吐率;(3)IPv6支持多种形式的自动配置,支持采用无状态或IPv4下DHCP 功能的自动配置服务,可无须手动干预就能改变网络中所有主机的地址;(4)IPv6中包含了一套用于保护IP 通信的IP 安全协议(IPSec ),改进了身份验证和保密,使得IPv6更加适用于那些要求对敏感信息和资源特别对待的商业应用;(5)IPv6还提供了对QoS 的运行支持。
IPv6虽然是一个先进的协议,具有很多优点,从IPv4向IPv6的转化必然会发生。
但是,在转化过程中,必须要解决一个重要的问题:IPv6与IPv4协议并不兼容。
把Internet 升级成一个IPv6网络意味着把Internet 上甚至Intranet 中的所有主机、网络设备、基于IPv4的大量应用软件都作一次IPv6协议的升级。
因此,在IPv6协议得到完全应用之前,将会有一个从IPv4向IPv6过渡的阶段。
在这个阶段中,IPv4和IPv6两种协议将在Internet 中共存。
目前解决使Internet 平稳地由基于IPv4的网络过渡到基于IPv6的网络的基本技术有3种[3]:双协议栈,隧道技术, NAT-PT 。
其中,隧道技术是一种基本技术,用于解决IPv6小岛之间的通信。
隧道技术的主要思想是将IPv6的分组封装到IPv4的分组中,封装后的IPv4分组将通过IPv4的路由体系传输,在适当的地方再解封出IPv6分组并传送给目的站点。
隧道技术主要有以下几种应用:路由器-路由器隧道,主机-路由器隧道,路由器-主机隧道,主机-主机隧道。
在手工配置隧道时,工作量大,容易出现回路等现象。
本文在服务器端主机与客户端主机之间设计并实现强制隧道。
强制隧道的含义是建立隧道的过程是在用户通过客户端主机访问服务器端主机IPv6资源的过程中自动完成,建立的过程对用户是透明的。
2 IPv4/IPv6主机之间强制隧道结构模型IPv4/IPv6主机之间强制隧道结构模型如图1所示。
IPv4/IPv6 Host11、IPv4/IPv6 Host12、IPv4/IPv6 Host13主机同时支持IPv4协议和IPv6协议,使用的操作系统可以是能支持IPv6协议的Windows 2000、Windows XP 、Linux 等。
这些主机通过IPv4 Router 路由设备与IPv4 network 网络连接。
IPv4/IPv6 Host2主机使用Linux 操作系统,通过IPv4 Router 路由设备与IPv4 network 网络连接,该主机在本文中作为服Ipv4/Ipv6 Host11Ipv4/Ipv6 Host12Ipv4/Ipv6 Host13Ipv4/Ipv6 Host2服务器图1 IPv4/IPv6主机之间强制隧道结构模型基金项目:下一代互联网中日IPv6合作基金资助项目(发改高技[2003]1607)作者简介:何世明(1966—),男,讲师、硕士生,主研方向:计算机网络及应用;沈 军,教授收稿日期:2005-02-01 E-mail :hsm@3 系统分析与设计强制隧道的建立由运行于Linux服务器(IPv4/IPv6 Host2主机)上的服务程序完成。
该服务程序对路过服务器的IP数据包进行分析,如果客户端主机使用了IPv4/IPv6主机隧道方法访问服务器IPv6资源,并且该客户端主机IPv4地址不是被禁止的,则在Linux服务器上建立该主机隧道,客户端主机就能立即访问到服务器IPv6资源。
3.1 PCAP强制隧道服务程序使用了PCAP技术抓取路过服务器的数据包。
包抓取函数库(Packet Capture Library,PCAP)是位于Linux操作系统底下所提供的函数库之一,它提供可以往数据链路层读写的函数。
利用此函数库中所提供的函数,可以在以太网络上抓取所有被广播出来的数据包。
这些函数定义在PCAP提供的头文件pcap.h中,主要有pcap_open_live()、pcap_loop()、callback()、pcap_close()等。
利用PCAP技术抓取的主机隧道IP数据包部分数据格式如表1所示[4]。
表1主机隧道IP数据包格式字节数说明6 目的MAC地址6 源MAC地址2 以太网帧类型字段以太网帧部分头部1/2 IPv4版本1/2 报头长度1 服务类型2 包长度2 数据包ID3/8 分段标志13/8 分段偏移值1 生成期1 协议类型2 校验和4 源IPv4地址4 目的IPv4地址IPv4头部1/2 IPv6版本1/2 传输类别3 流标签2 负荷长度1 下一个头1 跳极限16 源IPv6地址16 目的IPv6地址IPv6头部与本文有关的项有:(1)以太网帧类型字段:存放帧中传送数据的上层协议类型,本文的值是0800;(2)IPv4版本:本文的值为4;(3)协议类型:本文的值是29,“29”表示是隧道数据包协议;(4)源IPv4地址,目的IPv4地址,源IPv6地址,目的IPv6地址:利用这些地址,强制隧道服务程序可获取源主机的IPv4地址和IPv6地址,并以此建立强制隧道。
3.2 MySQL C函数库MySQL是一个快速、多线程、多用户、强壮的SQL数据库系统,本文使用MySQL C技术访问MySQL数据库,采用MySQL数据库管理隧道数据。
MySQL提供了一套C API函数,它由一组函数以及一组用于函数的数据类型组成,这些函数与MySQL 服务器进行通信并访问数据库。
MySQL C API数据类型包括:MYSQL(数据库连接句柄),MYSQL_RES(查询返回结果集),MYSQL_ROW(行集)等;C API提供的函数包括:mysql_init() ,mysql_real_connect(),mysql_select_db(),mysql_close(),mysql_query(),mysql_store_result(),mysql_fetch_row()等。
3.3 MySQL数据库设计数据库tunnel:表disable:disableipv4 varchar(16) NOT NULL default ''表message:id int(10) NOT NULL auto_increment,mess varchar(200) NOT NULL default '',PRIMARY KEY (id)表user:remoteipv4 varchar(16) NOT NULL default '',remoteipv6 varchar(40) NOT NULL default '',localipv6 varchar(40) NOT NULL default '',sit varchar(10) NOT NULL default ''其中,表disable用来存放被禁止的IPv4地址;表message 用来存放强制隧道运行信息,其中字段id存放信息序号,字段message存放信息;表user用来存放建立的隧道信息,其中字段remoteipv4存放客户端主机的IPv4地址,字段remoteipv6存放客户端主机的IPv6地址,字段localipv6存放服务器端主机建立隧道时的IPv6地址,字段sit存放服务器端主机建立隧道时的隧道号。
3.4 强制隧道服务程序设计强制隧道服务程序运行在Linux服务器上,利用PCAP 抓包函数对路过服务器的IP数据包进行分析。
由于IP数据包数量巨大,如果设计不好会影响服务程序的运行效率。
强制隧道服务程序在内存中开辟一个缓冲区,用于存放已经处理过的数据,每条记录占21 B,结构如下:4 B:存放客户端IPv4地址(十六进制值);16 B:存放客户端IPv6地址(十六进制值);1 B:存放隧道号(十六进制值)。