[go: up one dir, main page]

CN101841572B - 一种支持IPv6网络的IPv4网络设备及其实现方法 - Google Patents

一种支持IPv6网络的IPv4网络设备及其实现方法 Download PDF

Info

Publication number
CN101841572B
CN101841572B CN 200910243574 CN200910243574A CN101841572B CN 101841572 B CN101841572 B CN 101841572B CN 200910243574 CN200910243574 CN 200910243574 CN 200910243574 A CN200910243574 A CN 200910243574A CN 101841572 B CN101841572 B CN 101841572B
Authority
CN
China
Prior art keywords
packet
ipv4
ipv6
network
layers
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
CN 200910243574
Other languages
English (en)
Other versions
CN101841572A (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.)
BEIJING NETENTSEC Inc
Original Assignee
BEIJING NETENTSEC Inc
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 BEIJING NETENTSEC Inc filed Critical BEIJING NETENTSEC Inc
Priority to CN 200910243574 priority Critical patent/CN101841572B/zh
Publication of CN101841572A publication Critical patent/CN101841572A/zh
Application granted granted Critical
Publication of CN101841572B publication Critical patent/CN101841572B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种支持IPv6网络的IPv4网络设备及其实现方法。本发明在IPv4网络设备中增加第一数据包转换模块、映射关系存储模块、第二数据包转换模块。通过该第一数据包转换模块将其接收到的IPv6数据包转换成IPv4数据包,并将该IPv6数据包与该IPv4数据包之间的映射关系存储在映射关系存储模块中,再根据该映射关系第二数据包转换模块将转换后的该IPv4数据包还原成IPv6数据包。本发明的支持IPv6网络的IPv4网络设备开发设计成本低廉,广泛适用于IPv6网络及IPv4网络中。

Description

一种支持IPv6网络的IPv4网络设备及其实现方法
技术领域
本发明涉及互联网,尤其涉及IPv6(Internet Protocol Version 6,互联网协议版本6)和IPv4(Internet Protocol version 4,互联网协议版本4)。
背景技术
IPv4是第一个被广泛使用且已构成现今互联网技术基石的IP协议。IPv4有30多年的历史,能够运行在各种底层网络上,比如端对端的串行数据链路(PPP协议和SLIP协议)、卫星链路等。
IPv6是IETF(Internet Engineering Task Force,互联网工程任务组)设计的用于替代IPv4的下一代IP协议。相对IPv4而言,IPV6具有更大的地址空间、更小的路由表、更高的安全性,并且增加了自动配置功能及对流的支持。IPv6正处于不断发展和完善过程中,在不久的将来IPv6将逐渐取代目前被广泛使用的IPv4。
目前除教育网,中国绝大部分网络使用的是IPv4网络地址,因此多数网络设备都是基于IPv4开发的,其不能适用于IPv6网络环境。如果要从IPv4过渡到IPv6需要解决的一个最重要的问题是,如何使IPv4网络设备能够支持IPv6网络。
如果仅通过在IPv4网络设备中添加IPv6协议栈将会大大浪费人力和物力资源,且不切合实际。因此,一种价格低廉的适用于IPv6网络的IPv4网络设备具有重要应用价值。
发明内容
本发明提供了能解决以上问题的一种支持IPv6网络的IPv4网络设备及其实现方法。
在第一方面,本发明提供了一种支持IPv6网络的IPv4网络设备,该网络设备包括第一数据包转换模块、映射关系存储模块和第二数据包转换模块。该第一数据包转换模块接收来自IPv6网络的IPv6数据包,并将该IPv6数据包转换成IPv4数据包,同时得到该IPv6数据包与IPv4数据包之间的映射关系。该映射关系存储模块用于存储该IPv6数据包与IPv4数据包之间的映射关系。该第二数据包转换模块根据该映射关系将转换后的该IPv4数据包还原成IPv6数据包。
在第二方面,本发明提供了IPv4网络设备支持IPv6网络的方法,包括以下步骤:
首先,该IPv4网络设备接收来自该IPv6网络的IPv6数据包,再将该IPv6数据包转换成IPv4数据包,并获取该IPv6数据包与IPv4数据包之间的映射关系;其次,存储该IPv6数据包与IPv4数据包之间的映射关系;最后,根据该映射关系将转换后的IPv4数据包还原成IPv6数据包。
在本发明的一个实施例中,所述将IPv6数据包转换成IPv4数据包的方法为首先找该IPv6数据包四层头指针位置,再从该四层头指针位置处向该IPv6数据包三层头方向查找IP头个字节,然后将该查找到的位置(A)与该IPv6数据包四层头指针之间的字节替换成IP头字节,并将该IPv6数据包三层头指针移至该查找到的位置(A),且将该查找到的位置(A)与移动前该三层头指针位置之间的字节去掉,从而完成IPv6数据包向IPv4数据包的转换。
在本发明的另一个实施例中,该支持IPv6网络的IPv4网络设备包括IPv4协议栈。该IPv4协议栈用于接收来自该第一数据包转发模块的IPv4数据包,并对该IPv4数据包拆包,读取该IPv4数据包中的应用层数据,对该拆开的IPv4数据包封包,最后将该封装后的IPv4数据包发送至该第二数据包转换模块。
在本发明的又一个实施例中,该支持IPv6网络的IPv4网络设备为流量管理转发设备、路由器或交换机中。
在本发明的还一个实施例中,该支持IPv6网络的IPv4网络设备包括第一网卡驱动模块和第二网卡驱动模块。该第一网卡驱动模块用于接收数据包,并将其中的IPv4数据包发送至IPv4协议栈,将IPv6数据包发送至第一数据包转换模块。该第二网卡驱动模块用于接收来自IPv4协议栈的IPv4数据包及接收来自第二数据包转换模块的IPv6数据包,并将该接收到的数据包分别发送至IPv4网络及IPv6网络。
本发明通过在IPv4网络设备中增加映射模块,将来自IPv6网络的IPv6数据包转换成IPv4数据包,再利用该IPv4网络设备中的IPv4协议栈处理该转换后的IPv4数据包,最后再将该IPv4数据包还原成IPv6数据包并发送至IPv6网络中,从而解决了IPv4网络设备支持IPv6网络的问题。本发明的网络设备具有支持IPv4、IPv6双栈功能,且不需要新添加IPv6协议栈,设备成本及开发设计成本低廉,具有重要应用价值。
附图说明
下面将参照附图对本发明的具体实施方案进行更详细的说明,在附图中:
图1是本发明一个实施例的基于IPv6网络的IPv4网络设备系统框图;
图2是本发明一个实施例的IPv6数据包转换成IPv4数据包示意图。
具体实施方式
图1是本发明一个实施例的基于IPv6网络的IPv4网络设备系统框图。该网络设备100包括第一网卡驱动模块110、映射模块120、第二网卡驱动模块130、IPv4协议栈140,其中,映射模块120包括第一数据包转换模块121、映射关系存储模块122、第二数据包转换模块123。
若网络设备100工作于IPv4网络环境,则该第一网卡驱动模块110接收来自IPv4网络的IPv4数据包,并将该IPv4数据包发送至IPv4协议栈140。
在本发明的一个实施例中,该第一网卡驱动模块通过具有存储该数据包不同位置内容的结构体sk_buff中的protocol内容识别其接收到的数据包是IPv4数据包还是IPv6数据包。
IPv4协议栈140接收来自该第一网卡驱动模块110的IPv4数据包,并对该IPv4数据包从最低层开始拆包直到应用层,然后读取该IPv4数据包中的应用层数据,再对该拆开的IPv4数据包进行封包,最后将该封装后的IPv4数据包发送至第二网卡驱动模块130。第二网卡驱动模块130将其接收到的该IPv4数据包发送至IPv4网络,。
需要说明的是,该网络设备100的应用产品均是基于IPv4协议栈140而设计开发的,因此该网络设备100是一个IPv4网络设备,该IPv4网络设备如流量管理转发设备、路由器、交换机等,该应用产品通常用于识别、管理、访问控制等。
若网络设备100工作于IPv6网络环境,则该第一网卡驱动模块110接收来自IPv6网络的IPv6数据包,并将该IPv6数据包发送至映射模块120中的第一数据包转换模块121。
第一数据包转换模块121将其接收到的该IPv6数据包转换成IPv4数据包(具体转换方法将在下面内容中得到阐述),并将转换后的该IPv4数据包发送至IPv4协议栈140,将IPv6数据包到IPv4数据包的映射关系存储至映射关系存储模块122的HASH表(哈希表)中。
IPv4协议栈140接收来自第一数据包转换模块121的IPv4数据包,并对该IPv4数据包拆包,然后读取应用层数据,再封包,最后将该封装后的IPv4数据包发送至第二数据包转换模块123。
第二数据包转换模块123接收来自IPv4协议栈140的IPv4数据包,并获取映射关系存储模块122中IPv6数据包到IPv4数据包的映射关系,根据该映射关系将IPv4数据包转换成IPv6数据包,最后再将转换后的该IPv6数据包发送至第二网卡驱动模块130。
第二网卡驱动模块130将其接收到的IPv6数据包发送至IPv6网络中,进而实现IPv4网络设备100支持IPv6网络的功能。
下面详细阐述IPv6数据包转换成IPv4数据包的方法。
图2是本发明一个实施例的IPv6数据包转换成IPv4数据包示意图。从图2中的IPv6数据包210结构图及IPv4数据包220结构图中可以看出,IPv6数据包与IPv4数据包区别为该IPv6数据包三层头(三层数据包头)与该IPv4数据包三层头不同。IPv6数据包的三层头为IPv6头(IPv6数据包头),IPv4数据包三层头为IP头(IP数据包头)。通常IPv6头是40个字节,IP头是20个字节。
将IPv6数据包转换成IPv4数据包方法参见图2中的数据包转换图230,具体方法如下:
首先,查找IPv6数据包四层头(四层数据包头)指针位置(即其四层头起始位置)。
其次,从该四层头起始位置起向该IPv6数据包三层头方向查找IP头个字节,图2中以A作标记。在本发明的一个实施例中,从该IPv6数据包四层头起始位置起向该IPv6数据包三层头方向查找20个字节。
然后,将查找到的位置A处至该IPv6数据包四层头起始位置之间的所有字节都替换成标准IP头字节,并将该三层头指针移至该查找到的位置A,且将移动前的三层头指针位置至该查找到的位置A(即移动后的三层头指针位置)之间的所有字节去掉,使该部分内容为空。
最后,将IPv6数据包到IPv4数据包的映射关系存储在映射关系存储模块122的HASH表中,也就是将三层头指针移动前地址及三层头指针移动后地址存储在该HASH表中,以便该第二数据包转换模块123不需要再查询IPv4数据包字节,而是仅通过该IPv6数据包到IPv4数据包的映射关系就能将该IPv4数据包转换成IPv6数据包。
显而易见,在不偏离本发明的真实精神和范围的前提下,在此描述的本发明可以有许多变化。因此,所有对于本领域技术人员来说显而易见的改变,都应包括在本权利要求书所涵盖的范围之内。本发明所要求保护的范围仅0由所述的权利要求书进行限定。

Claims (10)

1.一种支持IPv6网络的IPv4网络设备,包括第一数据包转换模块、映射关系存储模块、第二数据包转换模块;
该第一数据包转换模块接收来自所述IPv6网络的IPv6数据包,将该IPv6数据包转换成IPv4数据包,并得到该IPv6数据包与IPv4数据包之间的映射关系;
映射关系存储模块用于存储所述IPv6数据包与IPv4数据包之间的映射关系;
第二数据包转换模块根据所述映射关系将转换后的该IPv4数据包还原成IPv6数据包;
其中,所述将IPv6数据包转换成IPv4数据包为首先找该IPv6数据包四层头指针位置,再从该四层头指针位置处向该IPv6数据包三层头方向查找IP头个字节,然后将该查找到的位置(A)与该IPv6数据包四层头指针之间的字节替换成IP头字节,并将该IPv6数据包三层头指针移至该查找到的位置(A),且将该查找到的位置(A)与移动前该三层头指针位置之间的字节去掉,从而完成IPv6数据包向IPv4数据包的转换。
2.如权利要求1所述的一种支持IPv6网络的IPv4网络设备,其特征在于,所述IPv6数据包与IPv4数据包之间映射关系存储在映射关系存储模块的HASH表中。
3.如权利要求1所述的一种支持IPv6网络的IPv4网络设备,其特征在于,所述IPv4网络设备为流量管理转发设备、路由器、交换机中的一个。
4.如权利要求1所述的一种支持IPv6网络的IPv4网络设备包括IPv4协议栈;
该IPv4协议栈用于接收来自所述第一数据包转发模块的IPv4数据包,并对该IPv4数据包拆包,读取该IPv4数据包中的应用层数据,对该拆开的IPv4数据包封包,最后将该封装后的IPv4数据包发送至所述第二数据包转换模块。
5.如权利要求4所述的一种支持IPv6网络的IPv4网络设备,其特征在于,所述IPv4网络设备是基于IPv4协议栈开发的应用产品,且该应用产品具有识别、管理、控制访问功能中的一个或多个。
6.如权利要求4所述的一种支持IPv6网络的IPv4网络设备,包括第一网卡驱动模块和第二网卡驱动模块;
该第一网卡驱动模块用于接收数据包,并将其中的IPv4数据包发送至IPv4协议栈,将IPv6数据包发送至第一数据包转换模块;
该第二网卡驱动模块用于接收来自IPv4协议栈的IPv4数据包及接收来自第二数据包转换模块的IPv6数据包,并将该接收到的数据包分别发送至IPv4网络及IPv6网络。
7.如权利要求6所述的一种支持IPv6网络的IPv4网络设备,其特征在于,所述第一网卡驱动模块通过具有存储该数据包不同位置内容的结构体sk_buff中的protocol内容识别其接收到的数据包是IPv4数据包还是IPv6数据包。
8.一种IPv4网络设备支持IPv6网络的方法,包括:
步骤a,所述IPv4网络设备接收来自所述IPv6网络的IPv6数据包,再将该IPv6数据包转换成IPv4数据包,并获取该IPv6数据包与IPv4数据包之间的映射关系;
步骤b,存储所述IPv6数据包与IPv4数据包之间的映射关系;
步骤c,根据步骤b中的映射关系将转换后的IPv4数据包还原成IPv6数据包;
其中,所述将IPv6数据包转换成IPv4数据包包括:
步骤d,查找该IPv6数据包四层头指针位置,再从该四层头指针位置处向该IPv6数据包三层头方向查找IP头个字节,然后将该查找到的位置(A)与该IPv6数据包四层头指针之间的字节替换成IP头字节,并将该IPv6数据包三层头指针移至该查找到的位置(A),且将该查找到的位置(A)与移动前该三层头指针位置之间的字节去掉,从而完成IPv6数据包向IPv4数据包的转换。
9.如权利要求8所述的IPv4网络设备支持IPv6网络的方法,其特征在于,在步骤d之后包括:
步骤e,将所述IPv4数据包发送至IPv4协议栈,IPv4协议栈对该IPv4数据包拆包,然后读取该IPv4数据包中的应用层数据,再对该拆开的IPv4数据包封包,最后发送该封装后的IPv4数据包。
10.如权利要求8所述的IPv4网络设备支持IPv6网络的方法,其特征在于,所述IPv6数据包与IPv4数据包之间的映射关系用HASH表进行存储。
CN 200910243574 2009-12-25 2009-12-25 一种支持IPv6网络的IPv4网络设备及其实现方法 Active CN101841572B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910243574 CN101841572B (zh) 2009-12-25 2009-12-25 一种支持IPv6网络的IPv4网络设备及其实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910243574 CN101841572B (zh) 2009-12-25 2009-12-25 一种支持IPv6网络的IPv4网络设备及其实现方法

Publications (2)

Publication Number Publication Date
CN101841572A CN101841572A (zh) 2010-09-22
CN101841572B true CN101841572B (zh) 2013-09-25

Family

ID=42744691

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910243574 Active CN101841572B (zh) 2009-12-25 2009-12-25 一种支持IPv6网络的IPv4网络设备及其实现方法

Country Status (1)

Country Link
CN (1) CN101841572B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102098353B (zh) * 2011-01-31 2013-04-17 北京邮电大学 基于分布式哈希表DHT实现IPv4和IPv6互通的系统和方法
CN106656836A (zh) * 2016-10-10 2017-05-10 合肥红珊瑚软件服务有限公司 一种在ipv4网络中透传ipv6数据包的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1585376A (zh) * 2003-08-20 2005-02-23 华为技术有限公司 一种地址转换方法及实现该方法的混合地址转换路由器

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1585376A (zh) * 2003-08-20 2005-02-23 华为技术有限公司 一种地址转换方法及实现该方法的混合地址转换路由器

Also Published As

Publication number Publication date
CN101841572A (zh) 2010-09-22

Similar Documents

Publication Publication Date Title
CN102480462B (zh) 通用协议适配方法及装置
CN100469038C (zh) 用于隧穿分组的isatap路由器及其方法
CN101917707B (zh) 无线传感器网络的ip寻址方法及系统
CN101557349B (zh) 处理互联网数据报的方法和系统
EP2632098B1 (en) Ipv6 address management method and gateway performing same
CN103825976A (zh) 分布式系统架构中的nat处理方法及装置
CN102026166B (zh) 身份识别、跨网通信、业务移植方法及信息互通网络架构
EP2903218A1 (en) Method and device for modifying and forwarding message in data communication network
CN102769869A (zh) 无线接入点的控制和配置报文快速转发系统
CN101141375B (zh) 一种局域网内部的报文传输方法、传输装置及系统
CN101610295B (zh) 使用非特定IPv6地址的无状态IPv4/IPv6分组转换方法
CN104022956A (zh) 一种名址分离协议网络中的数据报文处理方法和装置
CN102098356A (zh) 基于云服务的由IPv4方发起通信的IPv4/IPv6翻译方法
CN101841572B (zh) 一种支持IPv6网络的IPv4网络设备及其实现方法
CN101627580B (zh) 网络组件,这种网络组件的操作方法,具有这种网络组件的自动化系统,用这种网络组件在自动化系统中传输数据的方法
CN102025604B (zh) 一种承载网络及数据传输方法
CN101656762B (zh) 域名服务器信息的发送方法和装置
CN102291305A (zh) 实现6to4中继路由的方法和设备以及报文转发方法
US20100260203A1 (en) TUNNELING IPv6 PACKET THROUGH IPv4 NETWORK USING A TUNNEL ENTRY BASED ON IPv6 PREFIX AND TUNNELING IPv4 PACKET USING A TUNNEL ENTRY BASED ON IPv4 PREFIX
CN102387221B (zh) 一种数据转发方法及系统
CN104717639A (zh) 一种移动客户端访问互联网的方法和接入网关服务器
CN102137172A (zh) 一种dns服务器访问方法及一种访问设备
CN101986647A (zh) Vrrp的兼容方法及装置
CN102238084B (zh) 一种跨域报文的转发方法、装置、路由设备和客户端
CN116566897A (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