一种IPv6-in-IPv4隧道包的网络地址转换方法

文档序号:7823813阅读:378来源:国知局
一种IPv6-in-IPv4隧道包的网络地址转换方法
【专利摘要】本发明提供一种IPv6-in-IPv4隧道包的网络地址转换方法,包括:用NAT 6in4设备替换网络地址转换NAT设备,其特征在于,NAT 6in4设备接收6in4隧道端点发送的数据包并判断该数据包是否为Protocol字段是41的6in4隧道包,并根据判断结果进行相应地址转换操作;解决了目前6in4隧道技术在有网络地址转换器的网络环境下无法工作的问题,实现了对用户透明,且升级成本低;不仅降低了用户管理的复杂程度,更易于操作;而且在节约成本的同时,提高了用户使用率。
【专利说明】 一种I Pv6-1 η-1 Ρν4隧道包的网络地址转换方法

【技术领域】
[0001]本发明涉及一种网络地址转换的方法,具体涉及一种IPv6-1n-1Pv4隧道包的网络地址转换方法。

【背景技术】
[0002]随着互联网技术的发展和使用互联网人数的不断上升,一人多终端已成为当今的主要趋势。在这种情况下,对IP地址的需求变得更为迫切。自从20世纪90年代初IPv6技术被首次提出,就引起了业界的广泛关注,并被认为将最终取代IPv4的位置。然而,如何使IPv4平滑过渡到IPv6成为问题的关键,同时也需要一段相当长时间。
[0003]实现上述过渡的技术分为双栈、翻译和隧道三种。其中,隧道技术是指将IPv6数据包封装进IPv4数据包的负载部分,把IPv4当作IPv6的链路层,使IPv6数据包可以通过原有的IPv4路由基础设施传播。在不升级IPv4核心网络的情况下,6in4隧道将IPv6封装进明确组态过的IPv4隧道以实现IPv6业务在现有IPv4基础设施上的传输(图3)。
[0004]虽然6in4隧道已经得到了广泛应用,然而当6in4隧道的两个端点之间存在NAPT设备时,将无法正常进行隧道通信。
[0005]NAPT (Network Address Port Translat1n),即网络端口地址转换方式,是目前网络中应用最多的网络地址转换技术,被广泛应用于各种类型Internet接入方式和各种类型的网络中。NAPT将多个内部地址映射为一个合法公网地址,但以不同的协议端口号与不同的内部地址相对应,即〈内部地址+内部端口 >与〈外部地址+外部端口 >之间的转换。
[0006]通过NAPT,可使一组主机共享唯一的外部地址。当位于内部网络中的主机通过NAT设备向外部主机发起会话请求时,NAT设备就会查询NAT表中是否有相关的会话记录,如果有,就会将内部IP地址及端口同时进行转换,再转发出去;如果没有,则在进行IP地址和端口转换的同时,还会在NAT表中增加一条该会话的记录。当外部主机接收到数据包后,利用接收到的合法公网地址及端口作为目的IP地址及端口来响应,此时,NAT设备接收到外部回来的数据包,再根据NAT表中的记录把目的地址及端口转换成对应的内部IP地址及端口,随之转发给该内部主机。
[0007]然而,NAPT技术对IPv4数据包进行网络地址转换时,只适用于常见的TCP/UDP协议包,对其IPv4包头及TCP/UDP包头中的相关字段进行网络地址转换,而无法发现和处理6in4隧道包。当6in4隧道的两个端点之间存在NAPT设备时(如图4),由于NAPT设备无法对6in4隧道包进行正确的网络地址转换,返回的6in4隧道包将不能被正确送至6in4隧道的第一端点,从而导致6in4隧道技术无法在有NAT的网络环境下正常工作。


【发明内容】

[0008]针对现有技术的问题,本发明提出一种IPv6-1n-1Pv4隧道包的网络地址转换方法,对识别出来的6in4隧道包进行两层(或多层)网络地址转换,解决了 6in4隧道技术在有网络地址转换器的网络环境下无法工作的缺陷,实现了对用户透明,且升级成本低;不仅降低了用户管理的复杂程度,更易于操作;而且在节约成本的同时,提高了用户使用率。
[0009]本发明的目的是采用下述技术方案实现的:
[0010]一种IPv6-1n-1Pv4隧道包的网络地址转换方法,包括:用NAT6in4(IPv6-1n-1Pv4)设备替换网络地址转换NAT设备;
[0011]优选的,NAT 6in4设备接收6in4隧道端点发送的数据包并判断该数据包是否为Protocol字段是41的6in4隧道包。
[0012]优选的,内网6in4隧道第一端点与外网IPv6服务器通信时,所述NAT 6in4设备对6in4隧道第一端点发往6in4隧道第二端点的6in4隧道包进行源地址转换。
[0013]进一步地,所述源地址转换包括:将所述6in4隧道包的源IPv4地址及内层源IPv6地址转换为NAT 6in4设备分配的外部IPv4地址及IPv6地址;若IPv6上层协议为TCP/UDP时,对其源端口号进行转换。
[0014]进一步地,所述NAT 6in4设备对6in4隧道第二端点返回的6in4隧道包进行目的地址转换。
[0015]进一步地,根据6in4映射表,将所述6in4隧道包的目的IPv4地址及目的IPv6地址分别转换为6in4隧道第一端点的IPv4地址及IPv6地址,当IPv6上层协议为TCP/UDP时,对其目的端口号进行转换。
[0016]优选的,所述方法包括下述步骤:
[0017]a)接收IPv4数据包,首先判断Protocol字段是否为41,得到第一判定结果;
[0018]b)当所述第一判定结果为否时,采用NAPT方式进行网络地址转换;
[0019]c)当所述第一判定结果为是时,判断源地址字段是否属于内网地址,得到第二判定结果;
[0020]d)当所述第二判定结果为是时,判断内层IPv6源地址与外层IPv4源地址是否有嵌入关系,得到第三判定结果;
[0021]e)当所述第二判定结果为否时,判断内层IPv6目的地址与外层IPv4目的地址是否有嵌入关系,得到第四判定结果;
[0022]f)当所述第三判定结果为是时,转至步骤j);
[0023]g)当所述第三判定结果为否时,丢弃该数据包;
[0024]h)当所述第四判定结果为是时,转至步骤k);
[0025]i)当所述第四判定结果为否时,丢弃该数据包;
[0026]j)将6in4隧道包从6in4隧道第一端点发送至6in4隧道第二端点;
[0027]k)从6in4隧道第二端点返回6in4隧道第一端点;
[0028]优选的,所述步骤j)包括:
[0029]j1:接收来自6in4隧道第一端点发送的6in4报文,判断6in4映射表中是否存在与该6in4报文对应的映射表项,得到第五判定结果;所述6in4报文包括!IPv4包头中的IPv4源地址、IPv6包头中源IPv6地址的前缀长度PrefixLen和TCP/UDP包头中的内部源端口号;
[0030]j2:当所述第五判定结果为是时,根据所述映射表项,对6in4报文中的各相关字段进行转换,其中,所述源IPv6地址的转换方式为:根据所述映射表项中的源IPv6地址前缀长度PrefixLen,将源IPv6地址的第Pref ixLen位到第PrefixLen+32位区间替换为所述映射表项中的外部IPv4地址,转至步骤4 ;
[0031]j3:当所述第五判定结果为否时,根据接收到的6in4报文中的各相关字段,分配外部源IPv4地址及外部源端口号,创建对应的映射表项;该新的映射表项包括:内部源IPv4地址、内部源端口号、源IPv6地址前缀长度PrefixLen、分配的外部源IPv4地址和分配的外部源端口号,转至步骤2 ;
[0032]j4:通过WAN 口发送所述6in4报文。
[0033]进一步地,所述步骤k)包括:
[0034]k1:接收到6in4隧道第二端点返回的6in4隧道包时,根据接收到的数据包IPv4包头中的IPv4目的地址、TCP/UDP包头中的目的端口号,判断6in4映射表中是否存在与该6in4报文对应的映射表项,得到第六判定结果;
[0035]k2:当所述第六判定结果为否时,丢弃该6in4隧道包,流程结束;
[0036]k3:当所述第六判定结果为是时,根据所述映射表项,对6in4报文中IPv4包头中的目的IPv4地址、IPv6包头中的目的IPv6地址进行转换,其中目的IPv6地址的转换方式为:根据所述映射表项中的源IPv6地址前缀长度PrefixLen,将目的IPv6地址的第PrefixLen位到第(PrefixLen+32)位区间替换为所述映射表项中的内部源IPv4地址;
[0037]k4:判断该6in4报文中IPv6的负载是否为TCP/UDP,得到第七判定结果;
[0038]k5:当所述第七判定结果为是时,根据所述映射表项,对IPv6负载中TCP/UDP包头中的目的端口号进行转换,转步骤k9;
[0039]k6:当所述第七判定结果为否时,判断该6in4报文中IPv6的负载是否为ICMPv6,得到第八判定结果;
[0040]k7:当所述第八判定结果为是时,根据所述映射表项,对IPv6负载中ICMPv6包中的相关字段进行转换,转步骤k9;
[0041]k8:当所述第八判定结果为否时,转步骤k9;
[0042]k9:将所述6in4报文从LAN 口发送出去。
[0043]与最接近的现有技术比,本发明的优异效果为:
[0044](I)本发明提出一种IPv6-1n-1Pv4隧道包的网络地址转换方法,解决了目前6in4隧道技术在有网络地址转换设备(Network Address Translat1n,NAT)的网络环境下无法工作的问题,并且不对隧道端点产生影响,是一种对用户透明的解决方案。
[0045](2)本发明提出的基于IPv4地址和IPv6地址前缀长度等数据域的6in4表项查询和创建的方法,尽可能使用了精简的数据域集合,去除冗余,有利于提高地址转换效率。
[0046](3)所述对6in4隧道包进行网络地址转换的方法基于实际工作通信协议和6in4隧道技术而设计,其操作方法简单实用,并具有可扩展性,便于实际操作;对解决6in4隧道技术在现实网络中的应用问题发挥了极大的实际指导意义。

【专利附图】

【附图说明】
[0047]图1为本发明提供的6in4隧道包进行网络地址转换的方法流程图;
[0048]图2为本发明提供的6in4隧道包格式示意图;
[0049]图3为【背景技术】提供的6in4隧道通信示意图;
[0050]图4为【背景技术】提供的包含NAPT设备的6in4隧道通信示意图;
[0051]图5为本发明提供的加入NAT 6in4设备的6in4隧道通信示意图;
[0052]图6为本发明步骤j的方法流程图。
[0053]图7为本发明步骤k的方法流程图。

【具体实施方式】
[0054]下面结合附图对本发明做进一步说明。
[0055]如图2所示,一种IPv6-1n-1Pv4隧道包的网络地址转换方法,如图5所示,用NAT6in4设备替换网络地址转换NAT设备;
[0056]如图1所示,所述NAT 6in4设备接收6in4隧道端点发送的数据包并判断该数据包是否为6in4隧道包;其中,所述6in4隧道包为Protocol字段是41的IPv4数据包。
[0057]当内网6in4隧道第一端点与外网IPv6服务器通信时,所述NAT 6in4设备对6in4隧道第一端点发往6in4隧道第二端点的6in4隧道包进行源地址转换。
[0058]所述源地址转换包括:将所述6in4隧道包的源IPv4地址及内层源IPv6地址转换为NAT6in4设备分配的外部IPv4地址及IPv6地址;若IPv6上层协议为TCP/UDP时,对其源端口号进行转换;
[0059]所述NAT 6in4设备对6in4隧道第二端点返回的6in4隧道包进行目的地址转换;
[0060]根据6in4映射表,将所述6in4隧道包的目的IPv4地址及目的IPv6地址转换为6in4隧道第一端点的IPv4地址及IPv6地址,当IPv6上层协议为TCP/UDP时,对其目的端口号进行转换;
[0061]所述方法包括下述步骤:
[0062]a)接收一个IPv4数据包,首先判断Protocol字段是否为41,得到第一判定结果;
[0063]b)当所述第一判定结果为否时,采用NAPT方式进行网络地址转换;
[0064]c)当所述第一判定结果为是时,判断源地址字段是否属于内网地址,得到第二判定结果;
[0065]d)当所述第二判定结果为是时,判断内层IPv6源地址与外层IPv4源地址是否有嵌入关系,得到第三判定结果;
[0066]e)当所述第二判定结果为否时,判断内层IPv6目的地址与外层IPv4目的地址是否有嵌入关系,得到第四判定结果;
[0067]f)当所述第三判定结果为是时,转至步骤j);
[0068]g)当所述第三判定结果为否时,丢弃该数据包;
[0069]h)当所述第四判定结果为是时,转至步骤k);
[0070]i)当所述第四判定结果为否时,丢弃该数据包;
[0071]如图6所示,j)将6in4隧道包从6in4隧道第一端点发送至6in4隧道第二端点;所述步骤j)包括:
[0072]j1:接收来自6in4隧道第一端点发送的6in4报文,判断6in4映射表中是否存在与该6in4报文对应的映射表项,得到第五判定结果;所述6in4报文包括!IPv4包头中的IPv4源地址、IPv6包头中源IPv6地址的前缀长度PrefixLen和TCP/UDP包头中的内部源端口号;
[0073]j2:当所述第五判定结果为是时,根据所述映射表项,对6in4报文中的各相关字段进行转换,其中,所述源IPv6地址的转换方式为:根据所述映射表项中的源IPv6地址前缀长度PrefixLen,将源IPv6地址的第PrefixLen位到第PrefixLen+32位区间替换为所述映射表项中的外部IPv4地址,转至步骤4 ;
[0074]j3:当所述第五判定结果为否时,根据接收到的6in4报文中的各相关字段,分配外部源IPv4地址及外部源端口号,创建对应的映射表项;该新的映射表项包括:内部源IPv4地址、内部源端口号、源IPv6地址前缀长度PrefixLen、分配的外部源IPv4地址和分配的外部源端口号,转至步骤2 ;
[0075]j4:通过WAN 口发送所述6in4报文。
[0076]如图7所示,k)从6in4隧道第二端点返回6in4隧道第一端点;所述步骤k)的具体过程为:
[0077]k1:接收到6in4隧道第二端点返回的6in4隧道包时,根据接收到的数据包IPv4包头中的IPv4目的地址、TCP/UDP包头中的目的端口号,判断6in4映射表中是否存在与该6in4报文对应的映射表项,得到第六判定结果;
[0078]k2:当所述第六判定结果为否时,丢弃该6in4隧道包,流程结束;
[0079]k3:当所述第六判定结果为是时,根据所述映射表项,对6in4报文中IPv4包头中的目的IPv4地址、IPv6包头中的目的IPv6地址进行转换,其中目的IPv6地址的转换方式为:根据所述映射表项中的源IPv6地址前缀长度PrefixLen,将目的IPv6地址的第PrefixLen位到第(PrefixLen+32)位区间替换为所述映射表项中的内部源IPv4地址;
[0080]k4:判断该6in4报文中IPv6的负载是否为TCP/UDP,得到第七判定结果;
[0081]k5:当所述第七判定结果为是时,根据所述映射表项,对IPv6负载中TCP/UDP包头中的目的端口号进行转换,转步骤k9;
[0082]k6:当所述第七判定结果为否时,判断该6in4报文中IPv6的负载是否为ICMPv6,得到第八判定结果;
[0083]k7:当所述第八判定结果为是时,根据所述映射表项,对IPv6负载中ICMPv6包中的相关字段进行转换,转步骤k9;
[0084]k8:当所述第八判定结果为否时,转步骤k 9;
[0085]k9:将所述6in4报文从LAN 口发送出去。
[0086]最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员依然可以对本发明的【具体实施方式】进行修改或者等同替换,而这些未脱离本发明精神和范围的任何修改或者等同替换,其均在申请待批的本发明的权利要求保护范围之内。
【权利要求】
1.一种隧道包的网络地址转换方法,包括:用嫩I 61=4设备替换网络地址转换嫩I设备,其特征在于,嫩I 61114设备接收61=4隧道端点发送的数据包并判断该数据包是否为?1~0如⑶1字段是41的61=4隧道包,并根据判断结果进行地址转换操作。
2.如权利要求1所述的网络地址转换方法,其特征在于,内网61=4隧道第一端点与外网1?卩6服务器通信时,所述嫩I 61114设备对61=4隧道第一端点发往61=4隧道第二端点的61=4隧道包进行源地址转换。
3.如权利要求2所述的网络地址转换方法,其特征在于,所述源地址转换包括:将所述61114隧道包的源1??4地址及内层源1??6地址转换为嫩I 61=4设备分配的外部1??4地址及1?%地址;若1?%上层协议为扣?/^)?时,对其源端口号进行转换。
4.如权利要求1所述的网络地址转换方法,其特征在于,所述嫩I61114设备对61=4隧道第二端点返回的61=4隧道包进行目的地址转换。
5.如权利要求4所述的网络地址转换方法,其特征在于,根据61=4映射表,将所述61114隧道包的目的1?^4地址及目的1?^6地址分别转换为61=4隧道第一端点的1?^4地址及1?%地址,当1?%上层协议为了⑶/仙?时,对其目的端口号进行转换。
6.如权利要求1所述网络地址转换方法,其特征在于,所述方法包括下述步骤: 3-)接收1?卩4数据包,首先判断?1*01:0(301字段是否为41,得到第一判定结果; 幻当所述第一判定结果为否时,采用方式进行网络地址转换; 0)当所述第一判定结果为是时,判断源地址字段是否属于内网地址,得到第二判定结果; (1)当所述第二判定结果为是时,判断内层1?%源地址与外层源地址是否有嵌入关系,得到第三判定结果; 6)当所述第二判定结果为否时,判断内层1?%目的地址与外层目的地址是否有嵌入关系,得到第四判定结果; 当所述第三判定结果为是时,转至步骤』); 8)当所述第三判定结果为否时,丢弃该数据包; 10当所述第四判定结果为是时,转至步骤10 ; 1)当所述第四判定结果为否时,丢弃该数据包; 1将6化4隧道包从6化4隧道第一端点发送至6化4隧道第二端点; 10从61114隧道第二端点返回61114隧道第一端点。
7.如权利要求6所述的网络地址转方法,其特征在于,所述步骤包括: 扣接收来自61=4隧道第一端点发送的61=4报文,判断61=4映射表中是否存在与该61打4报文对应的映射表项,得到第五判定结果;所述61=4报文包括:1??4包头中的1??4源地址、1?^6包头中源1?^6地址的前缀长度?1~6?匕1611和扣?/口0?包头中的内部源端口号;』2:当所述第五判定结果为是时,根据所述映射表项,对61=4报文中的各相关字段进行转换,其中,所述源1?%地址的转换方式为:根据所述映射表项中的源1?%地址前缀长度将源1?、6地址的第位到第位区间替换为所述映射表项中的外部1?4地址,转至步骤4 ; 』3:当所述第五判定结果为否时,根据接收到的61=4报文中的各相关字段,分配外部源1?乂4地址及外部源端口号,创建对应的映射表项;该新的映射表项包括:内部源1?^4地址、内部源端口号、源1卜6地址前缀长度分配的外部源1?卩4地址和分配的外部源端口号,转至步骤2 ; 』4:通过I他口发送所述61=4报文。
8.如权利要求6所述的网络地址转换方法,其特征在于,所述步骤10的具体过程为:接收到61=4隧道第二端点返回的61=4隧道包时,根据接收到的数据包1??4包头中的1?^4目的地址、扣?/口0?包头中的目的端口号,判断61=4映射表中是否存在与该61打4报文对应的映射表项,得到第六判定结果; 1^:当所述第六判定结果为否时,丢弃该61=4隧道包,流程结束; 当所述第六判定结果为是时,根据所述映射表项,对61=4报文中包头中的目的1??4地址、1?%包头中的目的1??6地址进行转换,其中目的1??6地址的转换方式为:根据所述映射表项中的源1”6地址前缀长度?1~6打11611,将目的1?%地址的第?1~6?匕1611位到第$^604611+32)位区间替换为所述映射表项中的内部源1?^4地址;
判断该61114报文中1?^6的负载是否为扣?/^)?,得到第七判定结果; 当所述第七判定结果为是时,根据所述映射表项,对1卜6负载中扣?/口0?包头中的目的端口号进行转换,转步骤4; 当所述第七判定结果为否时,判断该61=4报文中1?^6的负载是否为100\6,得到第八判定结果; 当所述第八判定结果为是时,根据所述映射表项,对1?6负载中100^6包中的相关字段进行转换,转步骤4; 匕8:当所述第八判定结果为否时,转步骤匕9; 、将所述61=4报文从“X 口发送出去。
【文档编号】H04L29/12GK104468864SQ201410814612
【公开日】2015年3月25日 申请日期:2014年12月24日 优先权日:2014年12月24日
【发明者】胡紫巍, 张庚, 周静, 赵钦 申请人:国家电网公司, 中国电力科学研究院, 江苏省电力公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1