CN103825972B - 一种基于ICMPv6的IPv6隧道通信方法 - Google Patents

一种基于ICMPv6的IPv6隧道通信方法 Download PDF

Info

Publication number
CN103825972B
CN103825972B CN201410058983.4A CN201410058983A CN103825972B CN 103825972 B CN103825972 B CN 103825972B CN 201410058983 A CN201410058983 A CN 201410058983A CN 103825972 B CN103825972 B CN 103825972B
Authority
CN
China
Prior art keywords
tunnel
icmpv6
ipv6
message
point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410058983.4A
Other languages
English (en)
Other versions
CN103825972A (zh
Inventor
崔勇
刘聪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201410058983.4A priority Critical patent/CN103825972B/zh
Publication of CN103825972A publication Critical patent/CN103825972A/zh
Application granted granted Critical
Publication of CN103825972B publication Critical patent/CN103825972B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

发明是一种基于ICMPv6协议的IPv6隧道封装方法,包括隧道数据封装格式以及隧道通信交互方式,本发明提出的隧道技术可将任意数据报文封装进ICMPv6报文,通过IPv6网络进行传输,最典型的应用场景是将IPv4数据报文放置于ICMPv6报文内,即IPv4‑in‑ICMPv6隧道,这种IPv4‑in‑ICMPv6隧道可以适用于所有基于隧道技术的IPv6过渡技术方案,如Lightweight4over6、Public4over6、DS‑Lite、MAP‑E等。

Description

一种基于ICMPv6的IPv6隧道通信方法
技术领域
本发明属于互联网技术领域,特别涉及一种基于ICMPv6的IPv6隧道通信方法。
背景技术
随着互联网近些年来的快速发展,IPv4地址资源逐渐紧缺,互联网向IPv6过渡迫在眉睫。随着互联网由IPv4向IPv6过渡,互联网的格局将会变成以IPv6网络为主,多种网络共存。互联网过渡技术需要实现在IPv6网络中进行IPv4及其它协议的数据传输。
实现在IPv6网络中进行IPv4数据传输的方法主要有两种,分别是隧道技术以及翻译技术。隧道技术的核心思想是在IPv4数据报文的外侧封装IPv6报头,从而将IPv4报文转变为IPv6报文,已实现在IPv6网络中的传输。翻译技术的核心思想是将IPv4报文直接翻译成IPv6报文,从而在IPv6网络中传输。
目前,IETF已经针对隧道技术与翻译技术分别制定了多种IPv6过渡技术。其中,Lightweight4over6、Public4over6、DS-Lite、MAP-E等技术基于隧道技术,MAP-T、4RD等翻译技术。
所有基于隧道技术的IPv6过渡技术方案均依赖于IPv6隧道封装技术。目前,最基本的隧道封装技术是IP-in-IP封装,即在IP报文的外侧直接添加一个新的IP报头。具体而言,在IPv6中的IPv4-in-IPv6封装方法是在被传输的IPv4报文外侧封装一个IPv6头部,从而使得整个报文由IPv4报文变成IPv6报文。IPv4-in-IPv6封装方法需要引入新的IPv6协议号(41),隧道报文有可能被防火墙识别、拦截,且封装方法过于简单,难以扩展。
发明内容
为了克服上述现有技术的缺点,本发明的目的在于提供一种基于ICMPv6的IPv6隧道通信方法,改进了IPv4-in-IPv6隧道技术中存在的不足,并且可以扩展支持IPv4以外协议的隧道传输。
为了实现上述目的,本发明采用的技术方案是:
一种基于ICMPv6的IPv6隧道通信方法,包括隧道数据封装以及隧道通信交互,其中:
所述隧道数据封装中,使用ICMPv6的ECHO REQUEST和ECHOREPLY两种报文作为通信载体,将需要实际传输的数据报文作为ICMPv6报文的负载,在ICMPv6报文头部以及数据负载之间添加控制信息,封装后报文的各部分描述如下:
(1)隧道封装后形成的实际报文是IPv6报文,报文的网络层头部是IPv6头,IPv6头的源地址是隧道封装设备自身的IPv6地址,目的地址是隧道对端设备的单播、任播地址,或组播地址,IPv6头部中的协议号是58,即ICMPv6;
(2)IPv6头部的下一层是ICMPv6头部,ICMPv6类型域是128(ECHOREQUEST)或129(ECHO REPLY),代码域是0,标识域使用的是随机生成数,序列号域的值为L,表示控制信息长度;
(3)ICMPv6的负载包含2部分内容,分别是长度为L的控制信息字段以及负载数据报文,控制信息字段是可选内容,格式由运营商控制;
(4)负载数据报文是由网络层头部(如IPv4头部、IPv6头部等)开始的完整数据报文,是实际需要传输的报文;
所述隧道通信交互包括点对点隧道场景以及星形隧道场景。
所述控制信息字段内容包括用户认证和/或加密密钥。
所述负载数据报文在默认情况下,采用明文传输的方式,直接将负载报文放置在隧道报文的ICMPv6负载字段。
所述点对点隧道场景独立部署,所述星形隧道场景与具体的IPv6过渡方案(如Lightweight4over6、Public4over6、DS-Lite、MAP-E等)结合部署。
在所述点对点隧道场景中,隧道的两端设备对等,每台设备提前配置对方设备的IPv6地址,使用这个IPv6地址作为隧道报文的唯一目的地,将所有隧道报文均发往同一目的设备。每个隧道端点设备的隧道报文中的ICMPv6类型字段可任意填写128(ECHO REQUEST)或129(ECHO REPLY)。出于一致性的考虑,推荐的配置方式是,每个隧道端点设备中,一端设备使用128(ECHO REQUEST),另一端设备使用129(ECHO REPLY)。
在星形隧道场景中,隧道的核心设备称为隧道汇聚点,用户侧设备称为隧道发起点,隧道发起点与一个隧道汇聚点设备通信,每个隧道汇聚点设备可以同时与多个隧道发起点设备通信。在星形隧道场景中,隧道发起点发出的隧道报文中的ICMPv6类型字段固定使用128(ECHO REQUEST),隧道汇聚点发出的隧道报文中的ICMPv6类型字段固定使用129(ECHO REPLY)。
本发明定义的ICMPv6隧道报文与普通ICMPv6ping报文格式完全一致。当隧道端点设备需要识别、区分正常ICMPv6报文与本发明定义的隧道报文时,应根据ICMPv6负载中的负载报文进行判断。运营商也可以选择附加控制信息的方式,根据控制信息字段进行区分。
本发明提出的隧道技术可将任意数据报文封装进ICMPv6报文,通过IPv6网络进行传输。最典型的应用场景是将IPv4数据报文放置于ICMPv6报文内,即IPv4-in-ICMPv6隧道。这种IPv4-in-ICMPv6隧道可以适用于所有基于隧道技术的IPv6过渡技术方案,如Lightweight4over6、Public4over6、DS-Lite、MAP-E等。
附图说明
图1是本发明隧道协议格式示意图。
图2是本发明点对点隧道场景示意图。
图3是本发明星形隧道场景示意图。
具体实施方式
下面结合附图和实施例详细说明本发明的实施方式。
本发明使用ICMPv6的ECHO REQUEST和ECHO REPLY两种报文作为通信载体,将需要实际传输的数据报文放置在ICMPv6报文的负载处。为了便于扩展,在ICMPv6头部以及数据负载之间添加了控制信息,控制信息的长度及内容灵活可变。
完整的隧道封装格式如图1所示。报文的各部分描述如下:
(1)隧道封装后形成的实际报文是IPv6报文,因此报文的网络层头部是IPv6头。IPv6头的源地址是隧道封装设备自身的IPv6地址,目的地址是隧道对端设备的单播、任播地址,或组播地址。IPv6头部中的协议号是58,即ICMPv6。
(2)IPv6头部的下一层是ICMPv6头部。ICMPv6类型域是128(ECHOREQUEST)或129(ECHO REPLY)。代码域是0。标识域使用的是随机生成数。序列号域的值为L,表示控制信息长度。
(3)ICMPv6的负载包含2部分内容,分别是长度为L的控制信息字段以及负载数据报文。控制信息字段是可选内容,格式由运营商控制,内容可以是用户认证、加密密钥等。
(4)负载数据报文是由网络层头部(如IPv4头部、IPv6头部等)开始的完整数据报文,是实际需要传输的报文。默认情况下,采用明文传输的方式,直接将负载报文放置在隧道报文的ICMPv6负载字段。需要加密时,运营商可采用任意加密方式对负载报文进行加密,并可利用控制信息字段。
1.点对点隧道场景
在图2所示的点对点隧道场景中,网络1和网络2均为IPv4单栈网络,假设存在2台隧道传输设备,其IPv6地址分别为2001::1和2001::2。2台隧道传输设备已经预先配置好ICMPv6隧道,并且配置了对端设备地址。
当处于网络1种的用户需要访问网络2中的某终端时,用户生成的IPv4报文先到达隧道传输设备1,为向隧道传输设备2发送数据报文,报文参数如下:
IPv6目的地址:2001::2(预先配置)
IPv6源地址:2001::1
IPv6协议号:58(ICMPv6)
ICMPv6类型:128(ECHO REQUEST)
ICMPv6代码:0
ICMPv6校验和:根据IMCPv6协议要求计算
ICMPv6标识:123(随机生成)
ICMPv6序列号:0(无控制信息)
ICMPv6负载:实际被传输的IPv4数据报文
当隧道传输设备2收到封装后的报文后,将进行解封装,从而得到原IPv4报文,并转发给相应的终端。
终端回复用户时,发出的IPv4报文会先到达隧道传输设备2,为向隧道传输设备1发送数据报文,报文参数如下:
IPv6目的地址:2001::1(预先配置)
IPv6源地址:2001::2
IPv6协议号:58(ICMPv6)
ICMPv6类型:129(ECHO REPLY)
ICMPv6代码:0
ICMPv6校验和:根据IMCPv6协议要求计算
ICMPv6标识:456(随机生成)
ICMPv6序列号:0(无控制信息)
ICMPv6负载:实际被传输的数据报文
当隧道传输设备2收到封装后的报文后,将进行解封装,从而得到原IPv4报文,并转发给相应的用户。
一次通信过程结束。
2.星形隧道场景
在图3所示的星形隧道场景中,网络1和网络2均为IPv4单栈网络,假设存在2台隧道发起点设备及1台隧道汇聚点设备。隧道汇聚点的IPv6地址是2001::1,2台隧道发起点设备的IPv6地址分别是2001::2和2001::3。各设备已预先配置好隧道。
当处于网络1中的用户需要访问网络2种的某终端时,用户生成的IPv4报文首先到达隧道发起点1,为向隧道汇聚点发送数据报文,报文参数如下:
IPv6目的地址:2001::1(预先配置)
IPv6源地址:2001::2
IPv6协议号:58(ICMPv6)
ICMPv6类型:128(ECHO REQUEST)
ICMPv6代码:0
ICMPv6校验和:根据IMCPv6协议要求计算
ICMPv6标识:789(随机生成)
ICMPv6序列号:0(无控制信息)
ICMPv6负载:实际被传输的数据报文
当隧道汇聚点设备收到封装后的报文后,将进行解封装,从而得到原IPv4报文,并转发给相应的终端。
终端回复用户时,发出的IPv4报文会先到达隧道汇聚点设备,为向隧道发起点设备1发送数据报文,报文参数如下:
IPv6目的地址:2001::2(查表得出)
IPv6源地址:2001::1
IPv6协议号:58(ICMPv6)
ICMPv6类型:129(ECHO REPLY)
ICMPv6代码:0
ICMPv6校验和:根据IMCPv6协议要求计算
ICMPv6标识:135(随机生成)
ICMPv6序列号:0(无控制信息)
ICMPv6负载:实际被传输的数据报文
当隧道发起点设备1收到封装后的报文后,将进行解封装,从而得到原IPv4报文,并转发给相应的用户。
当隧道发起点设备2向网络2中的终端发起访问时,将首先生成IPv4报文并将其封装到ICMPv6报文中,然后发送给隧道汇聚点。报文参数如下:
IPv6目的地址:2001::1(预先配置)
IPv6源地址:2001::2
IPv6协议号:58(ICMPv6)
ICMPv6类型:128(ECHO REQUEST)
ICMPv6代码:0
ICMPv6校验和:根据IMCPv6协议要求计算
ICMPv6标识:789(随机生成)
ICMPv6序列号:0(无控制信息)
ICMPv6负载:实际被传输的数据报文
隧道汇聚点收到ICMPv6报文后进行解封装得到元IPv4报文,并转发给相应终端。随后隧道汇聚点将终端回复的IPv4报文进行封装并发送给隧道发起点2,报文如下:
IPv6目的地址:2001::3(查表得出)
IPv6源地址:2001::1
IPv6协议号:58(ICMPv6)
ICMPv6类型:129(ECHO REPLY)
ICMPv6代码:0
ICMPv6校验和:根据IMCPv6协议要求计算
ICMPv6标识:135(随机生成)
ICMPv6序列号:0(无控制信息)
ICMPv6负载:实际被传输的数据报文
隧道汇聚点需要根据外部返回的数据报文,查表得出隧道对端的IPv6地址。查找算法有多种实现,取决于具体使用的IPv6过渡方案。例如在Lightweight4over6方案中,使用的是查找每用户级状态绑定表的方式,根据数据报文的目的IPv4地址及端口号,查找IPv6地址。

Claims (10)

1.一种基于ICMPv6的IPv6隧道通信方法,包括隧道数据封装以及隧道通信交互,其特征在于,
所述隧道数据封装中,使用ICMPv6的ECHO REQUEST和ECHOREPLY两种报文作为通信载体,将需要实际传输的数据报文作为ICMPv6报文的负载,在ICMPv6报文头部以及数据负载之间添加控制信息,封装后报文的各部分描述如下:
(1)隧道封装后形成的实际报文是IPv6报文,报文的网络层头部是IPv6头,IPv6头的源地址是隧道封装设备自身的IPv6地址,目的地址是隧道对端设备的单播、任播地址,或组播地址,IPv6头部中的协议号是58,即ICMPv6;
(2)IPv6头部的下一层是ICMPv6头部,ICMPv6类型域是128或129,代码域是0,标识域使用的是随机生成数,序列号域的值为L,表示控制信息长度;
(3)ICMPv6的负载包含2部分内容,分别是长度为L的控制信息字段以及负载数据报文,控制信息字段是可选内容,格式由运营商控制;
(4)负载数据报文是由网络层头部开始的完整数据报文,是实际需要传输的报文;
所述隧道通信交互包括点对点隧道场景以及星形隧道场景。
2.根据权利要求1所述的基于ICMPv6的IPv6隧道通信方法,其特征在于,所述控制信息字段内容包括用户认证和/或加密密钥。
3.根据权利要求1所述的基于ICMPv6的IPv6隧道通信方法,其特征在于,所述负载数据报文在默认情况下,采用明文传输的方式,直接将负载报文放置在隧道报文的ICMPv6负载字段。
4.根据权利要求1所述的基于ICMPv6的IPv6隧道通信方法,其特征在于,所述点对点隧道场景独立部署,所述星形隧道场景与具体的IPv6过渡方案结合部署。
5.根据权利要求1所述的基于ICMPv6的IPv6隧道通信方法,其特征在于,所述IPv6过渡方案包括Lightweight 4over6、Public 4over6、DS-Lite以及MAP-E。
6.根据权利要求1所述的基于ICMPv6的IPv6隧道通信方法,其特征在于,在所述点对点隧道场景中,隧道的两端设备对等,每台设备提前配置对方设备的IPv6地址,使用这个IPv6地址作为隧道报文的唯一目的地,将所有隧道报文均发往同一目的设备。
7.根据权利要求6所述的基于ICMPv6的IPv6隧道通信方法,其特征在于,每个隧道的两端设备的隧道报文中的ICMPv6类型字段可任意填写128或129。
8.根据权利要求6所述的基于ICMPv6的IPv6隧道通信方法,其特征在于,每个隧道的两端设备中,一端设备使用128,另一端设备使用129。
9.根据权利要求1所述的基于ICMPv6的IPv6隧道通信方法,其特征在于,在星形隧道场景中,隧道的核心设备称为隧道汇聚点,用户侧设备称为隧道发起点,隧道发起点与一个隧道汇聚点设备通信,每个隧道汇聚点设备可以同时与多个隧道发起点设备通信。
10.根据权利要求9所述的基于ICMPv6的IPv6隧道通信方法,其特征在于,在星形隧道场景中,隧道发起点发出的隧道报文中的ICMPv6类型字段固定使用128,隧道汇聚点发出的隧道报文中的ICMPv6类型字段固定使用129。
CN201410058983.4A 2014-02-21 2014-02-21 一种基于ICMPv6的IPv6隧道通信方法 Active CN103825972B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410058983.4A CN103825972B (zh) 2014-02-21 2014-02-21 一种基于ICMPv6的IPv6隧道通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410058983.4A CN103825972B (zh) 2014-02-21 2014-02-21 一种基于ICMPv6的IPv6隧道通信方法

Publications (2)

Publication Number Publication Date
CN103825972A CN103825972A (zh) 2014-05-28
CN103825972B true CN103825972B (zh) 2016-10-12

Family

ID=50760795

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410058983.4A Active CN103825972B (zh) 2014-02-21 2014-02-21 一种基于ICMPv6的IPv6隧道通信方法

Country Status (1)

Country Link
CN (1) CN103825972B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105939316A (zh) * 2015-10-26 2016-09-14 杭州迪普科技有限公司 报文转发方法以及装置
CN108200595B (zh) 2017-12-28 2020-08-28 长安大学 面向车联网IEEE802.11p协议的车-路及车-车通信测试方法
CN111614796B (zh) * 2020-04-30 2023-03-24 网络通信与安全紫金山实验室 使用手工密钥配置IPsec隧道穿越NAT的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1949776A (zh) * 2006-11-10 2007-04-18 清华大学 扩展边界网关协议的4 over 6隧道封装及解封装方法
CN101068189A (zh) * 2007-05-18 2007-11-07 清华大学 在IPv6中用主机间隧道支持IPv4应用程序的方法
CN102523312A (zh) * 2011-12-02 2012-06-27 清华大学 一种4over6场景下的最优隧道选择方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040088385A1 (en) * 2002-11-01 2004-05-06 Hexago Inc. Method and apparatus for connecting IPV4 devices through an IPV6 network using a tunnel setup protocol

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1949776A (zh) * 2006-11-10 2007-04-18 清华大学 扩展边界网关协议的4 over 6隧道封装及解封装方法
CN101068189A (zh) * 2007-05-18 2007-11-07 清华大学 在IPv6中用主机间隧道支持IPv4应用程序的方法
CN102523312A (zh) * 2011-12-02 2012-06-27 清华大学 一种4over6场景下的最优隧道选择方法

Also Published As

Publication number Publication date
CN103825972A (zh) 2014-05-28

Similar Documents

Publication Publication Date Title
Nieminen et al. Ipv6 over bluetooth (r) low energy
CN103905180B (zh) 经典应用接入量子通信网络的方法
Montavont et al. Mobile ipv6 in internet of things: Analysis, experimentations and optimizations
JP5499391B2 (ja) メッセージを転送するための方法、装置およびシステム
CN103188351B (zh) IPv6环境下IPSec VPN通信业务处理方法与系统
US20180288013A1 (en) End-to-end secured communication for mobile sensor in an iot network
CN107750058A (zh) 基于wifi Beacon帧的设备接入网络的方法、控制终端及系统
CN101800781B (zh) 一种穿越nat的隧道过渡方法及系统
CN109936490B (zh) 基于VXLAN和OpenFlow的虚拟家庭网络共享方法及系统
CN104205896A (zh) 有拓扑不准确的源地址的IPv6数据包的自动隧道传输方法
KR20140099598A (ko) 모바일 vpn 서비스를 제공하는 방법
CN106878259B (zh) 一种报文转发方法及装置
CN103825972B (zh) 一种基于ICMPv6的IPv6隧道通信方法
CN102546407A (zh) 报文发送方法及装置
CN101039325B (zh) 基于混合器的实时传输协议数据包配置方法
Nieminen et al. RFC 7668: IPv6 over BLUETOOTH (R) Low Energy
CN106302847A (zh) 用于多层网路位址转译器结构的网路传输方法及系统
CN101645895A (zh) 一种实现隧道安全的方法和设备
TWI493946B (zh) 虛擬私有網路通信系統、路由裝置及其方法
CN107332752A (zh) 基于6LoWPAN的长链状无线传感网络系统及其连接方法
CN109246016A (zh) 跨vxlan的报文处理方法和装置
CN104168302B (zh) 设备操控实现方法、系统和代理网关
Phelan et al. DCCP-UDP: A Datagram Congestion Control Protocol UDP Encapsulation for NAT Traversal
CN107547691B (zh) 地址解析协议报文代理方法和装置
CN103986637A (zh) 一种差错报文处理方法及隧道设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant