CN103825972B - 一种基于ICMPv6的IPv6隧道通信方法 - Google Patents
一种基于ICMPv6的IPv6隧道通信方法 Download PDFInfo
- 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
Links
Abstract
发明是一种基于ICMPv6协议的IPv6隧道封装方法,包括隧道数据封装格式以及隧道通信交互方式,本发明提出的隧道技术可将任意数据报文封装进ICMPv6报文,通过IPv6网络进行传输,最典型的应用场景是将IPv4数据报文放置于ICMPv6报文内,即IPv4‑in‑ICMPv6隧道,这种IPv4‑in‑ICMPv6隧道可以适用于所有基于隧道技术的IPv6过渡技术方案,如Lightweight4over6、Public4over6、DS‑Lite、MAP‑E等。
Description
技术领域
本发明属于互联网技术领域,特别涉及一种基于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。
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)
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)
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)
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 |
-
2014
- 2014-02-21 CN CN201410058983.4A patent/CN103825972B/zh active Active
Patent Citations (3)
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 |