报文转发方法以及装置的制造方法

文档序号:10578118阅读:586来源:国知局
报文转发方法以及装置的制造方法
【专利摘要】本发明提供一种报文转发方法以及装置,其中该方法包括:若确定向服务器发送的报文是IPv4报文,将所述报文添加隧道头,其中,所述隧道头包括将所述虚拟网卡的IPv6地址作为所述报文的源地址、将预存的AFTR设备的IPv6地址作为所述报文的目的地址的信息;由所述客户端的虚拟网卡将添加了隧道头的报文发送至服务器,进而达到双栈用户接入IPv6单栈网络访问IPv4服务器的目的。
【专利说明】
报文转发方法从及装置
技术领域
[0001] 本发明设及通信技术领域,尤其设及一种报文转发方法W及装置。
【背景技术】
[0002] 目前,由于IPv4(互联网协议第四版)地址几近枯竭,而下一代网络地址协议 IPv6(互联网协议第六版)则日趋成熟,相应地,IPv6网络访问IPv4网络的需求也日渐强 烈,为此,NAT64协议应运而生。
[0003] NAT64(Network Address and Protocol ^anslation from IPv6 Client to IPv4 Sever,地址和协议转换,从IPv6客户端到IPv4服务器)可W应对大部分的IPv6网络访问 IPv4网络需求,但是有些应用会将服务器地址包含在报文内部,例如NAT Wetwork Ad化ess Translation,网络地址转换)技术中 ALG(Application Layer Gateway Service,应用层 网关服务)协议。由于协议众多并且其中大部分是非公有协议,导致NAT64技术无法很好 的解决此类问题,由此引申出多种技术解决此类问题,但是目前解决此类问题的技术都需 要对网络设备或客户端协议找进行改造,需要终端厂商及设备厂商开发,实施难度较大。因 此,双找用户如何接入IPv6单找网络访问IPv4服务器是目前亟待解决的问题。

【发明内容】

[0004] 针对现有技术的缺陷,本发明提供了一种报文转发方法W及装置。 阳〇化]本发明提供一种报文转发方法,应用于客户端,其中该方法包括:
[0006] 若确定向服务器发送的报文是IPv4报文,将所述报文添加隧道头,其中,所述隧 道头包括将所述虚拟网卡的IPv6地址作为所述报文的源地址、将预存的AFTR设备的IPv6 地址作为所述报文的目的地址的信息;
[0007] 由所述客户端的虚拟网卡将添加了隧道头的报文发送至服务器。
[0008] 本发明还提供一种报文转发装置,应用于客户端,其中,该装置包括:
[0009] 添加单元,用于在确定向服务器发送的报文是IPv4报文时,将所述报文添加隧道 头,其中,所述隧道头包括将所述虚拟网卡的IPv6地址作为所述报文的源地址、将预存的 AFTR设备的IPv6地址作为所述报文的目的地址的信息;
[0010] 发送单元,用于由所述客户端的虚拟网卡将添加了隧道头的报文发送至服务器。
[0011] 本发明提供的报文转发方法W及装置,在确定向服务器发送的报文是IPv4报文 时,将IPv4报文添加隧道头W使该IPv4报文作为IPv6报文由客户端的虚拟网卡发送至服 务器,进而达到双找用户接入IPv6单找网络访问IPv4服务器的目的。
【附图说明】
[0012] 图1是本发明实施例中一种报文转发方法应用场景示意图;
[0013] 图2是本发明实施例中一种报文转发方法流程示意图;
[0014] 图3是本发明实施例中一种报文转发装置的逻辑结构示意图;
[0015] 图4是本发明实施例中报文转发装置所在客户端的硬件架构示意图。
【具体实施方式】
[0016] 为使本申请的目的,技术方案及优点更加清楚明白,W下参照附图对本申请方案 做进一步的详细说明。
[0017] 为了解决现有技术中存在的问题,本发明提供了一种报文转发方法W及装置。
[0018] 图1示出了本发明方法所应用的网络环境示意图,包括客户端、AFTR值S-Lite AcMress Family Transition Router element, DS-Lite 地址协议转换路由器)设备 值S-Iite网关设备)、用户访问的IPv4是服务器W及DNS (Domain Name System,域名系统) 服务器。
[0019] 请参考图2,为本发明提供的报文转发方法的处理流程示意图,该报文转发方法应 用于客户端。其中,该报文转发方法包括W下步骤:
[0020] 步骤201,若确定向服务器发送的报文是IPv4报文,将所述报文添加隧道头,其 中,所述隧道头包括将所述虚拟网卡的IPv6地址作为所述报文的源地址、将预存的AFTR设 备的IPv6地址作为所述报文的目的地址的信息;
[0021] 实际应用中,可W事先为客户端安装一个虚拟网卡,通常情况下,虚拟网卡的 MTU (Maximum Transmission化it,最大传输单元)值默认为1500,本发明实施例中可W将 该虚拟网卡的MTU设置为1460 W保证后续对报文的头部信息进行正常修改。
[0022] 之后,启用虚拟网卡的双找功能,并为该虚拟网卡配置IPv4地址,作为进行 DS-Iite内层DS-Iite封装时的IPv4地址使用,例如,该IPv4地址可W为192. 168. X.X。
[0023] 并且,通过该虚拟网卡与用户网络通过D肥P值ynamic Host Configuration Protocol,动态主机配置协议)v6、pppoe(PPP over Ethernet, W太网上点对点协议)6等协 议进行协商后获得IPv6地址,并将协商后获得的IPv6地址作为该虚拟网卡的IPv6地址。
[0024] 将所有IPv6默认路由的出接口设置为该虚拟网卡,W使后续客户端发出的所有 流量都由该虚拟网卡进行转发,W此完成流量引流工作。
[0025] 本发明实施例需基于网络中存在可W做地址转换的AFTR设备值S-Iite网关)完 成,因此,本发明实施例还需要发送获取所述AFTR设备的IPv6地址的请求报文,W获取所 述AFTR设备的IPv6地址,并保存获取的AFTR设备的IPv6地址。之后,将获得的AFTR设 备的IPv6作为DS-Iite封装时的隧道头的目的IPv6地址,W处理IPv4客户端发起的访问 请求。
[00%] 具体地,该请求报文可W是客户端向DNS服务器发送的DNS请求报文,在通过DNS 请求报文获取AFTR的IPv6地址时,可W通过将该DNS请求报文的DHCPv6选项字段中携带 AFTR域名的方式来获取;也可W通过手工配置域名或者设置默认的aftr. ds-lite等多种 方式来获取该AFTR设备的IPv6地址。
[0027] 在AFTR设备的IPv6地址获取成功后,可W将该AFTR设备的IPv6地址保存在虚 拟网卡指定的DS-Iite封装表中,W备后续使用。
[0028] 经过上述配置后,客户端即可W经由所安装的虚拟网卡发送报文W访问IPv4服 务器。在此之前,本发明实施例中还可W首先判断经由该虚拟网卡访问IPv4服务器所发送 的报文是IPv4报文还是IPv6报文。
[0029] 若确定该报文是IPv4报文,本发明实施例为了保证该IPv4报文可W正常接入 IPv6单找网络访问IPv4服务器,需要对由客户端发出的IPv4报文进行修改,W将该IPv4 报文作为IPv6报文发送出去。
[0030] 该具体地修改方式可W是:将由客户端发出的IPv4报文进行DS-Iite封装,W对 该IPv4报文添加隧道头。其中,所添加的隧道头包括将所述虚拟网卡的IPv6地址作为所 述报文的源地址、将预存至虚拟网卡指定的封装表中的AFTR设备的IPv6地址作为所述报 文的目的地址的信息。进一步地,所述隧道头还可W包括表征该报文实际为IPv4报文的协 议号,例如"4"。该隧道头格式可W如表1所示:
[0031]
W巧表1
[0033] 表1示出了报文所添加的隧道头格式,仅是为进一步理解本发明的示例,并不用 于限制本发明实施例中隧道头格式中的具体内容。
[0034] 假设,在通过该虚拟网卡与用户网络协商后,所获得的虚拟网卡的IPv6地址为 192. 168. X. X,获取的AFTR设备的IPv6地址为192. 168. Y. Y,那么在客户端访问IPv4服务 器时,为经由虚拟网卡发送的IPv4报文添加的隧道头则包括所述报文的源地址192. 168. X. X,所述报文的目的地址192. 168. Y. Y,W及表征该报文实际为IPv4报文的协议号"4"。
[0035] 进一步地,本发明实施例中还可W监听所有发送至DNS服务器的DNS请求报文W 及由DNS服务器回复的DNS回应报文。当所述客户端发送DNS请求报文时,记录所述DNS 请求报文中所携带域名的被请求次数;当所述域名的被请求次数到达预设次数,确定所述 DNS请求报文为IPv6报文,将所述DNS请求报文中用于表征所述报文为IPv6报文的第一标 识修改为表征所述报文为IPv4报文的第二标识,并将修改后的DNS请求报文发送出去;在 接收到根据所述DNS请求报文回复的DNS回应报文后,获取所述DNS回应报文中携带的地 址信息,将所述地址信息添加预设标记后,保存至预设的地址信息库中。
[0036] 例如,可W将预设的域名被请求的次数(预设次数)设置为3,当监听到相同域名 的被请求次数到达3次时,说明该客户端请求的域名在IPv6网络中不存在,而导致客户端 无法获得有与所请求的域名对应IP地址的DNS回应报文。那么,可W将该DNS请求报文进 行复制后,将该复制的DNS请求报文中用于表征所述报文为IPv6报文的第一标识修改为表 征该报文为IPv4报文的第二标识。如:将该DNS请求报文中表征所述报文为IPv6报文的 AAAA记录(第一标识)修改为表征所述报文为IPv4报文的A记录(第二标识),然后,将 修改后的DNS请求报文发送至DNS服务器。
[0037] 在客户端接收到DNS服务器根据该修改后的DNS请求报文回复的DNS回应报文 后,获取该DNS回应报文中携带的地址信息,该地址信息为客户端所请求的域名所对应的 IPv4地址。
[0038] 为了避免由于部分应用在升级为IPv6版本之后无法再使用IPv4地址与DNS服务 器正常通信,本发明实施例在获取到DNS回应报文中携带的IPv4地址后,可W将IPv4地址 添加预设标记,W将该IPv4地址标记为IPv6地址。例如,该预设标记可W为"FF9B::",若 该IPv4地址为X. X. X. X,那么该添加了预设标记的地址则可W是:"FF9B: :X. X. X. X" (IPv6 地址)。
[0039] 之后,将添加有标记的地址(IPV6地址)保存至预设的地址信息库中。其中,该预 设的地址信息库可W位于虚拟网卡的缓存中等。
[0040] 根据上述可知,由于为了避免部分IPv4报文因无法与DNS服务器正常通信而会将 部分IPv4地址修改为IPv6地址(即上述添加了预设标记的IPv4地址),因此,后续在客 户端经由虚拟网卡向IPv4服务器发送报文时,若确定客户端经由虚拟网卡向IPv4服务器 发送的报文为IPv6报文,则要确定该IPv6报文的目的地址是否添加有预设标记,W判断该 IPv6报文是否为修改成IPv6报文的IPv4报文;若该IPv6报文的目的地址添加有预设标 记,说明该IPv6报文是修改为IPv6报文的IPv4报文,即:该IPv6报文实际为IPv4报文, 可W将该IPv6报文的源IP地址修改为所述虚拟网卡的IPv4地址,将所述IPv6报文的目 的IP地址中的所述预设标记删除。
[00川例如,如果目的地址为FF9B::开头的报文,则对该报文进行改写。假设目的地 址为FF9B: :X. X. X. X,修改后的IPv6报文头中的源IP地址为虚拟网卡分配的IPv4地址 (192. 168. X.讶、目的地址中的预设标记FF9B::删除(即X. X. X.讶后的最低32位的IPv4 报文头,具体格式见表2所示:
[0042]
[0043] 表 2
[0044] 表2示出了对具有预设标记的IPv6报文的报文头进行修改后的报文头格式,仅是 为进一步理解本发明的示例,并不用于限制本发明实施例中对具有预设标记的IPv6报文 的报文头进行修改后的报文头格式中的具体内容。
[0045] 之后,可W按照上述对由客户端发出的IPv4报文添加隧道头的处理流程将该修 改为IPv6报文的IPv4报文添加隧道头,在此不再寶述。
[0046] 步骤202,由所述客户端的虚拟网卡将添加了隧道头的报文发送至服务器。
[0047] 在对需由客户端发出的IPv4报文(包括修改为IPv6报文的IPv4报文)添加了 隧道头后,则可W将该添加了隧道头的报文由所述客户端的虚拟网卡通过IPv6单找网络 发送至IPv4服务器,进而达到IPv4报文通过IPv6单找网络访问服务器的目的。
[0048] 进一步地,在客户端接收到所述服务器回复的应答报文后,若该应答报文的隧道 头中化Xt化ader字段携带的协议号不为4,说明该报文为非IPv4报文,则可W将该非IPv4 报文转发给系统协议找处理;
[0049] 若根据所述应答报文的隧道头中携带的协议号确定所述应答报文为IPv4报文, 将所述应答报文的源IP地址与所述地址信息库中预存的地址信息进行匹配,若匹配成功, 对所述应答报文进行DS-Iite解封装处理,并将DS-Iite解封装后的应答报文的源IP地址 添加所述预设标记,将目的IP地址修改为所述虚拟网卡的IPv6地址。
[0050] 具体地,当IPv4服务器发送至客户端的回程IPv6报文(应答报文)到达虚拟网 卡时,首先检查该应答报文的隧道头中化Xt化ader字段携带的协议号是否为用于表征该 报文为IPv4报文的协议号4,若是,确定该应答报文为IPv4报文,首先使用报文内的源IP 地址(IPv4地址)与虚拟网络中记录的DNS缓存地址进行比较,若匹配成功,则对该应答报 文进行报文修改,具体地修改方式为:
[0051] 将DS-Iite解封装之后的无预设标记的源IPv4地址(例如X. X. X.讶添加预设标 记,(例如FF9B: :X. X. X.讶,将目的IP地址修改为虚拟网卡的IPv6地址,若报文为TCP报 文,则还需要按照现有技术中的方法调整序列号及校验和。
[0052] 然而,如果报文内的源IP地址(IPv4地址)与虚拟网络中记录的DNS缓存地址进 行比较后,未匹配成功,说明该报文携带有IPv4地址,一般情况下有应用软件自行解析,针 对运种情况则可W将上送系统协议找处理即可。
[0053] 综上所述,本发明提供的报文转发方法,在确定向服务器发送的报文是IPv4报文 时,将IPv4报文添加隧道头W使该IPv4报文作为IPv6报文由客户端的虚拟网卡发送至服 务器,进而达到双找用户接入IPv6单找网络访问IPv4服务器的目的。
[0054] 本发明还提供一种报文转发装置,图3为该报文转发装置的结构示意图,该装置 可W应用于客户端,该报文转发装置可W包括添加单元301 W及发送单元302,其中: 阳化5] 添加单元301,用于在确定向服务器发送的报文是IPv4报文时,将所述报文添加 隧道头,其中,所述隧道头包括将所述虚拟网卡的IPv6地址作为所述报文的源地址、将预 存的AFTR设备的IPv6地址作为所述报文的目的地址的信息;
[0056] 发送单元302,用于由所述客户端的虚拟网卡将添加了隧道头的报文发送至服务 器。
[0057] 进一步地,所述发送单元302还可W用于发送获取所述AFTR设备的IPv6地址的 请求报文,W获取所述AFTR设备的IPv6地址;保存获取的所述AFTR设备的IPv6地址。
[0058] 进一步地,所述装置还可W包括记录单元303、修改单元304 W及标记单元305,其 中,记录单元303用于当所述客户端发送DNS请求报文时,记录所述DNS请求报文中所携带 域名的被请求次数;修改单元304,用于当所述域名的被请求次数到达预设次数,确定所述 DNS请求报文为IPv6报文,将所述DNS请求报文中用于表征所述报文为IPv6报文的第一标 识修改为表征所述报文为IPv4报文的第二标识,并将修改后的DNS请求报文发送出去;标 记单元305,用于在接收到根据所述DNS请求报文回复的DNS回应报文后,获取所述DNS回 应报文中携带的地址信息,将所述地址信息添加预设标记后,保存至预设的地址信息库中。
[0059] 进一步地,所述装置还可W包括确定单元306 W及删除单元307,其中,确定单元 306用于在将所述报文添加隧道头之前,当所述客户端向服务器发送的报文为IPv6报文 时,确定所述IPv6报文的目的地址是否添加有预设标记;删除单元307,用于在确定所述 IPv6报文的目的地址添加有预设标记时,将所述IPv6报文的源IP地址修改为所述虚拟网 卡的IPv4地址,将所述IPv6报文的目的IP地址中的所述预设标记删除。
[0060] 进一步地,所述隧道头还包括协议号,所述装置还可W包括匹配单元308,用于在 接收到所述服务器回复的应答报文后,若根据所述应答报文的隧道头中携带的协议号确定 所述应答报文为IPv4报文,将所述应答报文的源IP地址与所述地址信息库中预存的地址 信息进行匹配,若匹配成功,对所述应答报文进行DS-Iite解封装处理,并将DS-Iite解封 装后的所述应答报文的源IP地址添加所述预设标记,将目的IP地址修改为所述虚拟网卡 的IPv6地址。
[0061] 本发明应用于网络设备的报文转发装置在具体的处理流程中可W与上述报文转 发方法的处理流程一致,在此不再寶述。
[0062] 上述装置可W通过软件实现,也可W通过硬件实现,本发明报文转发装置所在网 络设备的硬件架构示意图均可参考图4所示,其基本硬件环境包括中央处理器CPU、转发忍 片、存储器W及其他硬件,其中存储器件中包括机器可读指令,CPU读取并执行机器可读指 令执行图3中各单元的功能。
[0063] 从W上各种方法和装置的实施方式中可W看出,本发明实施例提供的报文转发方 法W及装置,在确定向服务器发送的报文是IPv4报文时,将IPv4报文添加隧道头W使该 IPv4报文作为IPv6报文由客户端的虚拟网卡发送至服务器,进而达到双找用户接入IPv6 单找网络访问IPv4服务器的目的。由于本发明实施例整个报文交互过程完全依靠虚拟网 卡的定制驱动程序完成,不需要更改协议找,也不需要借助辅助接入设备,因此,本发明还 具有较高的易用性。
[0064] W上所述仅为本发明的较佳实施例而已,并不用W限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【主权项】
1. 一种报文转发方法,应用于客户端,其特征在于,所述方法包括: 若确定向服务器发送的报文是IPv4报文,将所述报文添加隧道头,其中,所述隧道头 包括将所述虚拟网卡的IPv6地址作为所述报文的源地址、将预存的AFTR设备的IPv6地址 作为所述报文的目的地址的信息; 由所述客户端的虚拟网卡将添加了隧道头的报文发送至服务器。2. 如权利要求1所述的方法,其特征在于,所述方法还包括: 发送获取所述AFTR设备的IPv6地址的请求报文,以获取所述AFTR设备的IPv6地址; 保存获取的所述AFTR设备的IPv6地址。3. 如权利要求1所述的方法,其特征在于,所述方法还包括: 当所述客户端发送DNS请求报文时,记录所述DNS请求报文中所携带域名的被请求次 数; 当所述域名的被请求次数到达预设次数,确定所述DNS请求报文为IPv6报文,将所述 DNS请求报文中用于表征所述报文为IPv6报文的第一标识修改为表征所述报文为IPv4报 文的第二标识,并将修改后的DNS请求报文发送出去; 在接收到根据所述DNS请求报文回复的DNS回应报文后,获取所述DNS回应报文中携 带的地址信息,将所述地址信息添加预设标记后,保存至预设的地址信息库中。4. 如权利要求1所述的方法,其特征在于,在将所述报文添加隧道头之前,所述方法还 包括: 当所述客户端向服务器发送的报文为IPv6报文时,确定所述IPv6报文的目的地址是 否添加有预设标记; 若有,将所述IPv6报文的源IP地址修改为所述虚拟网卡的IPv4地址,将所述IPv6报 文的目的IP地址中的所述预设标记删除。5. 如权利要求1或4所述的方法,其特征在于,所述隧道头还包括协议号; 接收到所述服务器回复的应答报文后,若根据所述应答报文的隧道头中携带的协议号 确定所述应答报文为IPv4报文,将所述应答报文的源IP地址与所述地址信息库中预存的 地址信息进行匹配,若匹配成功,对所述应答报文进行DS-lite解封装处理,并将DS-lite 解封装后的所述应答报文的源IP地址添加所述预设标记,将目的IP地址修改为所述虚拟 网卡的IPv6地址。6. -种报文转发装置,应用于客户端,其特征在于,所述装置包括: 添加单元,用于在确定向服务器发送的报文是IPv4报文时,将所述报文添加隧道头, 其中,所述隧道头包括将所述虚拟网卡的IPv6地址作为所述报文的源地址、将预存的AFTR 设备的IPv6地址作为所述报文的目的地址的信息; 发送单元,用于由所述客户端的虚拟网卡将添加了隧道头的报文发送至服务器。7. 如权利要求6所述的装置,其特征在于,所述发送单元还用于: 发送获取所述AFTR设备的IPv6地址的请求报文,以获取所述AFTR设备的IPv6地址; 保存获取的所述AFTR设备的IPv6地址。8. 如权利要求6所述的装置,其特征在于,所述装置还包括: 记录单元,用于当所述客户端发送DNS请求报文时,记录所述DNS请求报文中所携带域 名的被请求次数; 修改单元,用于当所述域名的被请求次数到达预设次数,确定所述DNS请求报文为 IPv6报文,将所述DNS请求报文中用于表征所述报文为IPv6报文的第一标识修改为表征所 述报文为IPv4报文的第二标识,并将修改后的DNS请求报文发送出去; 标记单元,用于在接收到根据所述DNS请求报文回复的DNS回应报文后,获取所述DNS 回应报文中携带的地址信息,将所述地址信息添加预设标记后,保存至预设的地址信息库 中。9. 如权利要求6所述的装置,其特征在于,所述装置还包括: 确定单元,用于在将所述报文添加隧道头之前,当所述客户端向服务器发送的报文为 IPv6报文时,确定所述IPv6报文的目的地址是否添加有预设标记; 删除单元,用于在确定所述IPv6报文的目的地址添加有预设标记时,将所述IPv6报文 的源IP地址修改为所述虚拟网卡的IPv4地址,将所述IPv6报文的目的IP地址中的所述 预设标记删除。10. 如权利要求6或9所述的装置,其特征在于,所述隧道头还包括协议号,所述装置还 包括: 匹配单元,用于在接收到所述服务器回复的应答报文后,若根据所述应答报文的隧道 头中携带的协议号确定所述应答报文为IPv4报文,将所述应答报文的源IP地址与所述地 址信息库中预存的地址信息进行匹配,若匹配成功,对所述应答报文进行DS-lite解封装 处理,并将DS-lite解封装后的所述应答报文的源IP地址添加所述预设标记,将目的IP地 址修改为所述虚拟网卡的IPv6地址。
【文档编号】H04L29/06GK105939316SQ201510702954
【公开日】2016年9月14日
【申请日】2015年10月26日
【发明人】王涛
【申请人】杭州迪普科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1