6to4隧道分片重组技术及仿真实验

2018-08-02 07:23毛晴胡曦明马苗李鹏
现代计算机 2018年15期
关键词:分片差错报文

毛晴,胡曦明,2,马苗,2,李鹏,2

(1.陕西师范大学计算机科学学院,西安 710119;2.现代教学技术教育部重点实验室,西安 710119)

0 引言

现阶段IPv4网络占有主导地位,IPv6网络还仍处于发展的初级阶段,在互联网中IPv6网络大部分以孤岛的形式存在,因此IPv6孤岛之间跨IPv4网络进行通信是目前IPv4网络与IPv6网络共存的主要应用模式[1]。

目前来看,隧道技术是IPv6跨IPv4实现通信的常用解决方案[2],主要包括有GRE隧道[3]、手动隧道[4]、ISATAP 隧道[5]、IPv4 over IPv6 隧道[6]等多种隧道,其中6to4隧道是一种使用特殊的IPv6地址——6to4地址的自动隧道,可支持隧道自动配置以及多个IPv6孤岛之间相互通信,在大规模应用中具有明显优势[7],因而得到广泛的应用。在6to4隧道技术方案中数据包的分片重组机制是影响隧道通信性能的一个重要因素[8],所以为了提高IPv6孤网跨IPv4网络通信效率,需要围绕IPv6和IPv4混合网络下6to4隧道的分片重组机制开展深入研究。

1 6to4隧道技术

6to4隧道采用特殊的IPv6地址(6to4地址)使在IPv4海洋中的IPv6孤岛能相互连接通信[9],其通信过程如图1所示。首先,报文在IPv6网络中转发时以IPv6报文发送,当报文发送到IPv4网络入口的隧道边缘路由器时,隧道边缘路由器的隧道接口会接收IPv6报文,然后根据其配置的6to4隧道内容找到报文转发进入IPv4网络的接口,再根据入口接口的IPv4地址将IPv6报文封装IPv4报文头部。当报文通过IPv4网络到达IPv4网络出口的隧道边缘路由器时,隧道边缘路由器的隧道接口将报文拆除IPv4报文头部,继续以IPv6报文在IPv6网络中转发[10]。

2 6to4隧道仿真实验

2.1 方案设计

H3C Cloud Lab是一款基于虚拟机的网络设备模拟软件,它以虚拟机为支撑,实现模拟现实的组网方案,常用于企业初期的组网方案设计和网络实验展示。为了理解6to4隧道通信原理并深入探究数据在6to4隧道中通信的分片重组技术,利用H3C Cloud Lab软件平台搭建实验环境,实验方案设计如图2所示。

图1 IPv6孤网跨IPv4网络通信过程

图2 实验方案设计流程图

根据6to4隧道通信原理可知报文通过隧道时会进行封装,那么6to4隧道边缘路由器的MTU值是否与普通路由器默认MTU值有所不同?

纯IPv4网络和纯IPv6网络下报文的分片重组情况是有所不同的。在纯IPv4网络下,中间路由器可以将数据包分片,但不进行重组;在纯IPv6网络下,中间路由器只转发分片包,绝对不分片和重组,如果分片包大于 PMTU,则给源端发送“ICMPv6'Too Big”消息[11]。那么数据在6to4隧道中通信的分片重组数据处理机制以及差错检测方法是需要研究的重点问题。

2.2 技术实现

(1)6to4隧道的搭建

①实验拓扑

图3 6to4隧道搭建

图中PCA和PCB两台路由器定义为终端路由器,作为报文的发送方和接收方,IP地址配置为IPv6地址。RTA和RTB路由器为隧道边缘路由器,两台路由器的GE_0/1接口配置IPv6地址,GE_0/2配置IPv4地址,并分别为两台路由器配置隧道接口,RTB路由器接口均配置为IPv4地址。

②设备配置

表1 RTA的6to4隧道配置命令

以RTA路由器为例,“source g0/2”这条配置表明为RTA路由器Tunnel接口配置的出口IPv4地址为本路由器接口GE_0/2的地址,所以当IPv6报文发送到隧道边缘路由器时,经过隧道接口的处理最终从接口GE_0/2进入IPv4网络。

③结果分析

报文在RTA的Tunnel接口要经过6to4隧道的封装,即在IPv6报文头部加上IPv4报文头部,抓包显示如图4所示。

图4 RTA的GE_0/2接口报文

根据实验分析6to4隧道的通信过程,发现6to4隧道通信具有自动隧道维护方便的特点,6to4隧道可根据报文的IPv6地址得出IPv4地址,无需为隧道配置目的地址,同时又克服了IPv4兼容IPv6自动隧道不能连接IPv6网络的缺陷,但由于其6to4地址的工作模式,所以必须使用规定的6to4地址。

(2)6to4隧道MTU探测

①实验数据

已知华三模拟器中路由器接口默认情况下为1500,那么发送1452的报文则可刚好通过接口且无需分片,如果6to4隧道通信下路径MTU值为1500,那么报文发送过程中不会丢包和分片,所以实验在图3搭建好的实验拓扑中将各个接口的MTU值设置如表2。

表2 MTU探测实验数据

②结果分析

在实验中从PCA向PCB发送一条报文长度为1452的IPv6报文,丢包情况如图5所示。

图5 报文丢包情况

在发送报文过程中,通过Wireshark在PCA的GE_0/0接口和PCB的GE_0/0接口抓取报文,发现两条ICMPv6差错报文如图6和图7所示。

图6 PCA差错报文

图7 PCB差错报文

根据抓取的差错报文的源地址和目的地址以及报文内容,可以分析出两个报文丢失的原因。第一个报文从PCA发送给PCB时,到RTA隧道接口时因MTU值比较小,没有发送成功;第二个由PCB回复给PCA时,到RTB隧道接口时因MTU比较小,没有收到回复。抓取的ICMPv6差错报文回复的MTU值均为1480,所以推测隧道接口的MTU值为1480,查询验证如图8所示。

图8 隧道接口MTU值验证

验证可得隧道接口MTU值为1480,分析6to4隧道报文可得其原因为:报文发送到隧道接口时,隧道接口要将报文封装IPv4报头,需要20个字节,所以隧道接口MTU比一般接口MTU少20个字节。

(3)6to4隧道中数据通信

①实验拓扑

将路由器增加至6台,搭建如图9的实验拓扑。

②实验数据

探测隧道MTU值为1480,所以发送1432长度的报文不会在隧道口发生分片,因此将各个接口的MTU值设置如表3。

图9 6to4隧道通信实验拓扑

表3 6to4隧道通信实验数据

③结果分析

在实验中从PCA向PCB发送一条报文长度为1432的IPv6报文,用Wireshark抓取RTA的GE_0/1接口和RTD的GE_0/0接口的报文,分片情况如图10和图11所示。

图10 RTA的GE_0/1接口报文

由抓取的报文分析可得,从PCA向PCB发送报文,在路由器RTA的端口GE_0/1发生IPv6的分片,当经过RTA的端口GE_0/2时,因为其MTU为1200,所以发生分片,而RTA的端口GE_0/2为IPv4地址,RTB路由器GE_0/0和GE_0/1端口也是如此,所以结果证明在6to4隧道通信机制下,报文在终端分片后,在中间路由器的IPv4地址处仍然可以分片,因为在隧道中发送报文时,报文被封装IPv4报头,所以遵循IPv4分片机制[12]。

图11 RTD的GE_0/0接口报文

在实验中用Wireshark再抓取RTC的GE_0/1报文,分片重组情况如图12所示。

图12 RTC的GE_0/1接口报文

将图9和图10结合分析可得,被分片的IPv4报文在路由器RTC发生重组,但IPv6分片报文并未发生重组,所以在6to4隧道通信机制下边缘路由器可以对分片的IPv4报文重组,但无法重组IPv6报文。因为隧道路由器控制了隧道中报文的发送端和目的端,所以能够重组隧道中被分片的IPv4报文。

(4)6to4隧道差错检测

①实验拓扑

根据6to4隧道中的数据通信研究,得知隧道边缘路由器具有特殊的分片重组功能,那么隧道边缘路由器是否能收到ICMP差错报文。将6台路由器布置如图13的实验拓扑图。

②实验数据(如表4)

③结果分析

在实验中从PCA向PCB发送一条报文长度为1300的IPv6报文,用Wireshark抓取RTD的GE_0/0接口的报文,发现一条ICMPv6差错报文如图14所示。

图13 6to4隧道差错检测实验拓扑

表4 6to4隧道差错检测实验数据

由抓取的报文可得,ICMPv6差错报文的目的地址为2002:0201:0101:1::2,即PCA的GE_0/0接口地址。分析报文发送过程我们可得其原因,当报文从隧道中发送出去时,它的源地址和目的地址被改为了初始的6to4地址,而不是隧道中的IPv4地址,隧道边缘路由器只是在隧道两端起终端作用,只能控制发送带有IPv4报头的报文,所以不能接收ICMPv6报文。

图14 RTD的GE_0/0接口差错报文

3 结语

本文基于H3C平台搭建了在6to4隧道中IPv6孤网跨IPv4网络实现数据通信的实验拓扑,根据仿真实验验证了其通信原理,探测到隧道接口由于要进行6to4隧道报文的封装,所以其MTU值默认为1480。

本文在隧道MTU探测基础上,进一步针对6to4隧道进行IPv6孤岛之间跨IPv4网络通信的分片重组机制和差错检测方法进行了实验探究。探究结果表明,当6to4隧道实现IPv6孤岛跨IPv4网络通信时,隧道中间IPv4路由器可发生IPv4报文分片且隧道边缘路由器可重组被分片的IPv4报文,并且隧道边缘路由器如果不作为IPv6报文的发送端,就无法接收ICMPv6差错报文。所以隧道边缘路由器在6to4隧道分片重组机制中起着决定性作用,这对于研究提高IPv6孤网跨IPv4网络通信的网络性具有实际应用价值。

[1]黄斌文,矫媛.IPv4和IPv6共存的校园网络技术应用[J].现代计算机,2013(17):53-59.

[2]裴海旭,陈鸿文.基于SDN的IPv6过渡技术研究[J].现代计算机(专业版),2016(29):56-60.

[3]曹炯清.IPSec与NAT冲突问题隧道嵌套解决方案研究[J].信息安全与技术,2015,6(01):35-39.

[4]贾博.IPv6-over-IPv4手工隧道技术在智能电网中的应用[J].电力信息与通信技术,2014,12(07):21-26.

[5]王景丽,王相林.IPv6过渡技术中ISATAP隧道研究与应用[J].现代计算机(专业版),2011(11):59-62.

[6]王飞.物联网环境下IPv6与IPv4共存与过渡研究[J].电脑知识与技术,2017,13(34):47-49.

[7]于旭东.IPv6过渡技术分析[J].中国新通信,2014,16(06):18-19.

[8]张明.浅析IP分片对网络的影响[J].计算机与网络,2014,40(09):64-67.

[9]柏强,许译文,王昆强.基于IPv4网络环境中IPv6节点漫游机理研究:IPv6过渡技术分析与评述[J].中国新通信,2015,17(18):98-101.

[10]郑华,李桂红.IPv6包的分段及重组过程详解[J].计算机与网络,2008,34(02):48-49.

[11]肖融,孙波,肖永康,何珺,胡晓雁.途中无重组的隧道MTU机制研究[J].计算机工程与应用,2010,46(17):92-95,149.

[12]周超.隧道模型下MTU问题的研究[J].计算机工程,2005(17):118-120.

作者简介:毛晴(1996-),女,河南新乡人,在读本科

通信作者:胡曦明(1978-),男,四川南充人,博士,讲师,研究方向为教育信息化技术、计算机网络技术

马苗(1977-),女,山东聊城人,博士,教授,,研究方向为数据处理、智能系统、机器学习等

李鹏(1981-),男,陕西扶风人,博士,讲师,研究方向为无线传感器网络、社会网络

收稿日期:2018-04-12 修稿日期:2018-05-20

Abstract:Based on the H3C Cloud Lab platform,conducts a simulation experiment to study the communication process of IPv4 network.On this ba⁃sis,uses this method of setting MTU value to explore the fragmentation recombination technology in 6to4 tunnel.The experimental results show that,compared with no longer shard IPv6 network data transmission process,the mechanism of restructuring 6to4 tunnel due to the tunnel edge routers to shard restructuring and therefore when the data transmitted in the tunnel can be shard restructuring again.

Keywords:6 to4 Tunnel;Fragment;Restructuring;MTU

猜你喜欢
分片差错报文
基于J1939 协议多包报文的时序研究及应用
上下分片與詞的時空佈局
以太网QoS技术研究及实践
利用状态归约处理跨分片交易的多轮验证方案①
物联网区块链中基于演化博弈的分片算法
直升机防差错设计
浅析反驳类报文要点
基于组织行为学对建立容错纠错机制必要性分析
基于模糊二分查找的帧分片算法设计与实现
差错是习题课的有效资源