路由方法、路由设备、通信系统及存储介质与流程

文档序号:14359327阅读:264来源:国知局
本申请涉及无线通信
技术领域
:,尤其涉及一种路由方法、路由设备、通信系统及存储介质。
背景技术
::目前,许多交通工具上安装有车载多媒体终端。车载多媒体终端提供可定制的认证页面可供无线终端(station,sta)接入,sta接入车载多媒体终端之后,便可浏览该车载多媒体终端本地存储的多媒体内容或通过该车载多媒体终端访问运营商的网络。现有车载多媒体终端支持多sim卡,可接入不同运营商网络。在sta通过车载多媒体终端访问运营商网络的过程中,车载多媒体终端可根据运营商网络的质量为sta的不同传输控制协议(transmissioncontrolprotocol,tcp)/用户数据报协议(userdataprotocol,udp)流选择不同的运营商网络,以向sta提供相对稳定的网络信号,提高网络服务质量。但是,这种路由方法可能出现跨运营商的情况,跨运营商的情况可能导致请求延时,或因运营商的多媒体资源不一致导致请求中断等缺陷。由此可见,一种新的路由方法亟待提出。技术实现要素:本申请的多个方面提供一种路由方法、路由设备、通信系统及存储介质,用以解决多sim卡情况下存在的跨运营商访问网络的缺陷,提升网络服务的质量。本申请实施例提供一种路由方法,适用于带有多个sim卡出口的路由设备,包括:接收无线终端发送的dns请求报文,所述dns请求报文携带有所述无线终端的ip地址;根据所述无线终端的ip地址和ip地址分组与跟踪标签之间的对应关系,确定所述dns请求报文的跟踪标签并添加至跟踪状态表中;通过用户空间api访问所述跟踪状态表,以获取所述dns请求报文的跟踪标签;基于策略路由表,将所述dns报文通过与所述dns请求报文的跟踪标签对应的sim卡出口转发出去。在一可选实施方式中,根据所述无线终端的ip地址和ip地址分组与跟踪标签之间的对应关系,确定所述dns请求报文的跟踪标签并添加至跟踪状态表中,包括:根据所述无线终端的ip地址和ip地址分组与跟踪标签之间的对应关系,确定所述dns请求报文的跟踪标签;根据所述dns请求报文的五元组信息,在所述跟踪状态表中添加所述dns请求报文的跟踪记录项;将所述dns请求报文的跟踪标签对应添加至所述dns请求报文的跟踪记录项中。在一可选实施方式中,通过用户空间api访问所述跟踪状态表,以获取所述dns请求报文的跟踪标签,包括:根据所述dns请求报文的五元组信息,通过用户空间api访问所述跟踪状态表以确定与所述五元组信息匹配的跟踪记录项,并获取与所述五元组信息匹配的跟踪记录项包含的跟踪标签,作为所述dns请求报文的跟踪标签。在一可选实施方式中,基于策略路由表,将所述dns报文通过与所述dns请求报文的跟踪标签对应的sim卡出口转发出去,包括:根据所述dns请求报文的跟踪标签查询所述策略路由表,以获取与所述dns请求报文的跟踪标签对应的sim卡出口;通过所述sim卡出口将所述dns请求报文转发至所述sim卡出口所属运营商网络中的dns服务器,以供所述dns服务器对所述dns请求报文进行域名解析。在一可选实施方式中,在根据所述无线终端的ip地址和ip地址分组与跟踪标签之间的对应关系,确定所述dns请求报文的跟踪标签并添加至跟踪状态表中之前,所述方法还包括:根据与多个sim卡出口一一对应的多个网络的网络状态,确定采用基于ip地址分组在所述多sim卡出口间进行负载均衡的路由策略。在一可选实施方式中,根据与多个sim卡出口一一对应的多个网络的网络状态,确定采用基于ip地址分组在所述多sim卡出口间进行负载均衡的路由策略,包括:通过所述多个sim卡出口,采集所述多个网络的网络状态参数;根据所述多个网络的网络状态参数,判断所述多个网络的网络质量是否位于同一质量等级;若判断结果为是,确定采用基于ip地址分组在所述多sim卡出口间进行负载均衡的路由策略。在一可选实施方式中,所述网络状态参数包括:信号强度、信号干扰强度、网络带宽和传输延迟时间中的至少一个。在一可选实施方式中,根据所述多个网络的网络状态参数,判断所述多个网络的网络质量是否位于同一质量等级,包括:当所述网络状态参数包括:信号强度、信号干扰强度、网络带宽和传输延迟时间时,若所述多个网络的网络带宽均相同,且每两个网络之间的信号强度差、干扰强度之差以及传输延迟时间之差均小于相应阈值,确定所述多个网络的网络质量位于同一质量等级。本申请实施例还提供一种路由设备,包括:多个sim卡、存储器以及处理器;所述存储器用于:存储一条或多条计算机指令;所述处理器用于执行所述一条或多条计算机指令,以用于:接收无线终端发送的dns请求报文,所述dns请求报文携带有所述无线终端的ip地址;根据所述无线终端的ip地址和ip地址分组与跟踪标签之间的对应关系,确定所述dns请求报文的跟踪标签并添加至跟踪状态表中;通过用户空间api访问所述跟踪状态表,以获取所述dns请求报文的跟踪标签;基于策略路由表,将所述dns报文通过与所述dns请求报文的跟踪标签对应的sim卡出口转发出去。在一可选实施方式中,所述处理器还用于:根据与多个sim卡出口一一对应的多个网络的网络状态,确定采用基于ip地址分组在所述多sim卡出口间进行负载均衡的路由策略。本申请实施例还提供一种通信系统,包括本申请实施例提供的路由设备、无线终端以及运营商网络中的dns服务器。本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序被执行时能够实现本申请实施例所提供的方法中的步骤。在本申请实施例中,接收到无线终端发送的dns请求报文之后,根据无线终端的ip地址以及ip分组与跟踪标签之间的对应关系,确定该dns请求报文的跟踪标签并将该跟踪标签添加至跟踪状态表中。在路由过程中,通过用户空间api访问该跟踪状态表,以获取并继承该跟踪标签,从可基于该跟踪标签和基于跟踪标签的策略路由表,将dns请求报文通过与该跟踪标签对应的sim卡出口转发出去。在上述的技术方案中,通过跟踪标签的继承,使得来特定自无线终端的dns请求报文可以通过指定的网络出口转发出去,解决了多sim卡情况下存在的跨运营商访问网络的缺陷,提升网络服务的质量。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本申请一实施例提供的通信系统的结构示意图;图2a是本申请一实施例提供的路由方法的方法流程图;图2b为本申请一实施例提供的netfilter的框架示意图;图3是本申请另一实施例提供的路由方法的方法流程图;图4是本申请一实施例提供的路由设备的结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在现有技术中,接入多sim卡的路由设备,在接收到无线终端sta的dns请求报文时,通常根据运营商网络的质量为sta的不同tcp/udp流选择不同的运营商网络,以向sta提供相对稳定的网络信号,提高网络服务质量。但是这种方式会导致无线终端在访问网络的过程中出现跨运营商的情况。例如,在一种可能的情形下,假设用户连接现有技术提供的多sim卡的路由设备后使用视频网站观看视频。由于视频所占流量比较大,因此会通过多次的tcp/udp的请求才能将视频数据完整下载到本地。通常情况下,为减少用户等待时间,视频网站先请求下载一视频片段,然后隔一段时间之后再请求下一个视频片段。假设路由设备接收到第一次视频下载请求时,a运营商网络的质量最佳,则该路由设备将为第一次视频下载请求对应的tcp/udp流选择a运营商网络;当路由设备接收到第二次发出视频下载请求时,b运营商的网络质量最佳,则该路由设备将为第二次视频请求对应的tcp/udp流选择b运营商网络。在上述过程中,该视频网站得到的该视频的ip地址是a运营商针对第一次视频下载请求解析得到的,那么当视频网站再一次通过b运营商网络访问该视频的ip地址时,将会经过较长的中间路径才可得到所请求的资源,进而导致响应请求的时间延长。除此之外,在另一种可能的情形下,若该视频资源仅存在于a运营商网络中的服务器,那么视频网站再一次通过b运营商访问该视频资源时,将得不到访问结果,继而导致请求中断。为解决上述缺陷,本申请实施了提供了一种通信系统。图1为本申请一实施例提供的通信系统的结构示意图,如图1所示,该通信系统包括无线终端10、路由设备11以及运营商网络中的dns服务器12。在本实施例提供的通信系统中,路由设备11支持多sim卡,如图1所示的sim卡1ˉsim卡n,不同的sim卡可以接入不同的运营商。无线终端10可在接入路由设备11后,通过路由设备11进行网络访问。其中,如图1所示,运营商网络中的dns服务器12可以是多个,分别与路由设备11所安装的sim卡相对应。在本实施例中,无线终端10访问运营商网络时,可向路由设备11发送dns请求报文,以通过路由设备11获取一个能够直接用于网络访问的ip地址。路由设备11接收到该dns请求报文后,可以为报文分配跟踪标签并通过跟踪标签的继承将来自同一无线终端10的dns请求报文从相同的sim卡出口转发给对应的运营商网络中的dns服务器12。其转发过程,如图2a所示,包括:步骤201、接收无线终端发送的dns请求报文,所述dns请求报文携带有所述无线终端的ip地址。步骤202、根据所述无线终端的ip地址和ip地址分组与跟踪标签之间的对应关系,确定所述dns请求报文的跟踪标签并添加至跟踪状态表中。步骤203、通过用户空间api访问所述跟踪状态表,以获取所述dns请求报文的跟踪标签。步骤204、基于策略路由表,将所述dns报文通过与所述dns请求报文的跟踪标签对应的sim卡出口转发出去。在步骤201中,无线终端指的是连接路由设备后可通过路由设备进行网络访问的用户端设备。例如用户的手机、平板电脑或其他智能设备等。路由设备可以为每个与之连接的无线终端分配一个ip地址。无线终端通过路由设备请求访问网络时,会向路由设备发送dns请求报文。通常,在该dns请求报文的首部包括2个字节的会话标识,该回话标识是dns请求报文对应的身份识别id(identification)标识。根据该id标识,可确定发送该dns请求报文的无线终端对应的ip地址。在步骤202中,ip地址分组是根据设定的规则对路由设备能够分配的地址进行分组得到的。其中,ip地址分组的组数可以由用户自定义设置,每一分组包含的ip地址数量也可以由用户自定义设置。例如,路由设备能够分配的地址为192.168.x.2ˉ192.168.x.254,可将上述ip地址分为4组,每组分别为:192.168.x.2-192.168.x.64192.168.x.65-192.168.x.128192.168.x.128-192.168.x.192192.168.x.193-192.168.x.254跟踪标签,可用于标记dns请求报文所属连接。在本实施例中,跟踪标签与ip地址分组存在对应关系。例如,跟踪标签1对应第一组ip地址,跟踪标签2对应第二组ip地址。在确定无线终端对应的ip地址之后,可查询ip地址分组,确定无线终端对应的ip地址属于哪一ip地址分组。进而,在确定无线终端对应的ip地址所属的ip地址分组后,根据该ip地址分组对应的跟踪标签即可确定该无线终端发出的dns请求报文对应的跟踪标签。在接收到dns请求报文时,可根据该dns请求报文对应的五元组信息生成连接跟踪记录项,将该跟踪标签添加至该dns请求报文的连接跟踪记录项中,并将该连接跟踪记录项添加至跟踪状态表中。在步骤203中,生成dns请求报文的连接跟踪记录项之后,dns请求报文进入下一个处理进程。该处理进程可通过设定的用户空间api访问跟踪状态表,获取该dns请求报文对应的跟踪标签。在步骤204中,在确定dns请求报文的跟踪标签之后,可基于策略路由表,通过与该跟踪标签对应的sim卡出口将该dns报文转发出去。其中,策略路由表中存放有跟踪标签和sim卡出口的对应关系。策略路由进程查询策略路由表即可确定通过哪个sim卡出口转发该dns请求报文。在本实施例中,接收到无线终端发送的dns请求报文之后,根据无线终端的ip地址所属的ip分组,确定该dns请求报文的跟踪标签并将该跟踪标签和该dns请求报文的连接跟踪记录项对应添加至跟踪状态表中。进而,后续的处理进程可通过用户空间api访问该跟踪状态表,以获取并继承该跟踪标签。基于该跟踪标签以及策略路由表,可将dns请求报文通过与该跟踪标签对应的sim卡出口转发出去。在上述的技术方案中,通过跟踪标签的继承,使得来特定自无线终端的dns请求报文可以通过指定的网络出口转发出去,解决了多sim卡情况下存在的跨运营商访问网络的缺陷,提升网络服务的质量。路由设备在搭载不同的操作系统的情况下,为报文分配跟踪标签以及通过跟踪标签的继承转发报文的处理逻辑会有所不同。在本申请实施例中,以路由设备11搭载linux操作系统为例进行说明。在路由设备搭载linux操作系统的情况下,dns请求报文进入路由设备后,通常要经过防火墙进程、dns代理服务进程以及策略路由进程的处理才能被转发出去。其中,防火墙可对通过的dns请求报文进行跟踪,在dns请求报文上添加跟踪标签,并将添加跟踪标签的dns请求报文转发至本机的dns代理服务进程。dns代理服务进程接收到添加跟踪标签的dns请求报文之后,可解析得到dns请求报文,并将该解析得到的dns请求报文转发给本机的策略路由进程。但dns代理服务进程无法解析到防火墙进程在该dns请求报文上添加的跟踪标签,在接收到dns代理服务进程转发的dns请求报文时,策略路由进程无法获取防火墙进程在dns请求报文上添加的跟踪标签。因而,策略路由进程在向外转发其接收到的dns请求报文时,无法确定应当向通过哪一个sim卡出口进行转发。为使策略路由进程获取防火墙进程在dns请求报文上添加的跟踪标签,并根据设定的负载均衡策略将该dns请求报文从指定的sim卡出口转发至与该sim卡出口对应的运营商网络中的dns服务器,本申请实施例可采用基于netfilter/iptablesip信息包过滤系统的跟踪标签继承的方法。在linux系统中,netfilter/iptablesip信息包过滤系统作为与linux内核集成的防火墙,能够记录为发送或接收数据包所建立的连接的状态。在netfilter/iptablesip信息包过滤系统中,netfilter组件被称为内核空间(kernelspace),是linux内核的一部分,由一些数据包过滤表组成,这些表包含内核用来控制数据包过滤处理的规则集。iptables组件是一种应用层工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得简易化。用户通过使用用户空间iptables组件,可以构建自定义的规则,这些自定义的规则可以存储在内核空间的信息包过滤表中。netfilter框架包括5个链以及4个表。其中,5个链分别为:nf_ip_pre_routing:数据包在进入路由表之前的处理链路nf_ip_local_in:经过路由表后目的地为本机的处理链路nf_ip_forward:经过路由表后,目的地不为本机的处理链路nf_ip_local_out:本机产生,向外转发的处理链路nf_ip_post_routing:本机产生或者是经转发路由判断需要转发进入对应接口发送的处理链路其中,4个表分别为:filter:数据包过滤nat:网络地址转换,端口映射,地址映射mangle:修改特定数据包raw:调试iptables用,优先级最高上述记载的5个链和4个表的关系可如图2b所示,被netfilter/iptables接收的数据包从pr_erouting链进来,在该链中采用mangle表对特定数据包进行修改,并采用nat表对数据包进行目的地址转换。之后,经过输入包路由判决数据包的发送目的是本地进程或是其他主机。若发送目的是本地进程,则数据包会经过local_in链,结合mangle表对特定数据包进行修改,或结合filter表对数据包进行过滤,之后往上层协议栈继续传递。若发送目的不是本机,则数据包会经过forward链,结合mangle表对特定数据包进行修改,或结合filter表对数据包进行过滤。之后,顺着post_routing链将该数据包发送至目的主机。如图2b所示,对于来自路由设备上层协议栈的需发送出去的数据包,首先经过mangle表进行特定数据包的修改、经过filter表进行数据包的过滤以及nat表进行目的地址转换,并通过输出包路由判决数据包的发出目的是本地进程或是其他主机。若发送目的是本地进程,则直接将数据包发送至本地进程;若发出目的是其他机子,则顺着post_routing链将该数据包发送至目的主机。在图2b所示的过程中,不论是路由设备11接收的数据包还是发送的数据包,在路由判决时,需要采用nat表进行源地址转换(sourcenetworkaddresstranslation,snat)和目的地址转换(destinationnetworkaddresstranslation,dnat),以获取该数据包的源地址或目的地址。对数据包进行snat和dnat,可基于该数据包对应的连接跟踪记录项(connectionentry)实现。连接跟踪记录项是netfilter根据经过网络堆栈的数据包的五元组信息生成的、与该数据包对应的连接跟踪记录信息。其中,五元组信息包括该数据包对应的来源主机ip、目的主机ip、来源端口、目的端口以及tcp/ip。每一个连接跟踪记录项可以对每一个连接的产生、传输及终止进行跟踪记录。由连接跟踪记录项所产生的表,即称为连接跟踪表。该连接跟踪表存放于linux内核空间中。在采用nat表对数据包进行snat和dnat时,可读取该存放于linux内核空间中连接跟踪表,从连接跟踪表中查询该数据包对应的连接跟踪记录项,并从连接跟踪记录项中确定该数据包的五元组信息,进而实现对该数据包进行snat和dnat的操作。从上述的记载中,可以得知,netfilter可以为每一个通过其的数据包生成连接跟踪记录项。基于此,本申请实施例中,可通过iptables为每一个dns报文打上跟踪标签,并将该跟踪标签添加至该dns报文对应的连接跟踪记录项中。当dns代理服务进程解析得到防火墙进程转发来的dns请求报文之后,可从跟踪状态表中查询该dns请求报文对应的跟踪标签,并将该跟踪标签添加到dns请求报文之后转发至策略路由进程,以此实现跟踪标签的继承。可选地,在一些应用场景中,路由设备接收到该dns请求报文后,可以根据与多个sim出口一一对应的多个网络的网络状态,确定是否进行负载均衡的路由策略。如不进行负载均衡的路由策略,则路由设备可先在本地查询是否有保存有与接收到的dns请求报文匹配的dns解析结果;若有,则将该结果返回给发送dns请求报文的无线终端;若没有,则路由设备可将该dns请求报文通过默认的sim卡出口转发至该sim卡出口对应的运营商网络中的dns服务器。如进行负载均衡的路由策略,则路由设备可根据设定的负载均衡策略将该dns请求报文从指定的sim卡出口转发至与该sim卡出口对应的运营商网络中的dns服务器。以下将结合图3,对如何根据跟踪标签继承方法以及设定的负载均衡策略进行路由转发进行具体阐述。图3是本申请另一实施例提供的路由方法的方法流程图,结合图2a,该方法包括:步骤301、接收无线终端发送的dns请求报文,所述dns请求报文携带有所述无线终端的ip地址。步骤302、根据与多个sim卡出口一一对应的多个网络的网络状态,判断该多个网络的网络质量是否位于同一质量等级;若为是,则执行步骤303;若为否,则执行步骤306。步骤303、根据所述无线终端的ip地址和ip地址分组与跟踪标签之间的对应关系,确定所述dns请求报文的跟踪标签并添加至跟踪状态表中。步骤304、通过用户空间api访问所述跟踪状态表,以获取所述dns请求报文的跟踪标签。步骤305、基于策略路由表,将所述dns报文通过与所述dns请求报文的跟踪标签对应的sim卡出口转发出去。步骤306、选择质量等级最高的网络对应的sim卡出口将所述dns请求报文转发出去。在步骤302中,在接收到来自无线终端的dns请求报文后,可选的,可首先通过路由设备上的多个sim卡出口,采集与多个sim卡一一对应的多个网络的网络状态参数。之后,根据多个网络的网络状态参数,判断该多个网络的网络质量是否位于同一质量等级。若该多个网络的网络质量位于同一质量等级,则可确定采用基于ip地址分组在多sim卡出口间进行负载均衡的路由策略。可选的,网络状态参数可包括:信号强度、信号干扰强度、网络带宽和传输延迟时间中的至少一个。当网络状态参数包括信号强度、信号干扰强度、网络带宽和传输延迟时间时,若多个网络的网络带宽均相同,且每两个网络之间的信号强度差、干扰强度之差以及传输延迟时间之差均小于相应阈值,则可确定所述多个网络的网络质量位于同一质量等级。其中,所述的均小于相应阈值指的是,每两个网络之间的信号强度差小于信号强度差阈值、干扰强度之差小于干扰强度阈值、传输延迟时间之差小于传输延迟阈值。其中,信号强度差阈值、扰强度阈值以及传输延迟阈值均为经验值,可由用户自定义设置,本申请实施例不做限制。可选地,采集与多个sim卡一一对应的多个网络的网络状态参数,可在设定时间范围内,以一定采样频率分别对每个网络出口的信号强度、干扰强度、网络带宽以及传输延迟时间进行多次采样。其中,传输延迟时间可以采用ping包的延迟时间作参考。采样后,针对每一网络出口,可计算设定时间范围内采样得到的信号强度的平均值作为该网络出口对应的信号强度,可计算设定时间范围内采样得到的干扰强度的平均值作为该网络出口对应的干扰强度,可计算设定时间范围内采样得到的网络带宽的平均值作为该网络出口对应的网络带宽,并可计算设定时间范围内采样得到的ping包的延迟时间的平均值作为该网络出口对应的传输延迟时间。可选的,设定时间可以是1分钟,采样频率可以为6次/分。在步骤303中,在确定进行负载均衡的路由策略之后,可关闭dns缓存,以使得通过路由设备发起的dns解析请求均需重新根据指定的sim出口进行解析,避免了从dns缓存中查询解析结果导致的可能跨运营商的缺陷。防火墙进程可从dns请求报文中解析得到无线终端的ip地址,根据无线终端的ip地址和ip地址分组与跟踪标签之间的对应关系,确定该dns请求报文的跟踪标签,并在该dns请求报文上添加该跟踪标签。可选的,在添加跟踪标签时,属于一个ip地址分组的无线终端发出的dns请求报文的跟踪标签相同。以下部分示意了给ip分组添加标签的一种配置指令:iptables-tmangle-aprerouting-ibr-wlan1-s192.168.0.1/26-jmark--set-mark3iptables-tmangle-aprerouting-ibr-wlan1-s192.168.0.64/26-jmark--set-mark3iptables-tmangle-aprerouting-ibr-wlan1-s192.168.0.128/26-jmark--set-mark4iptables-tmangle-aprerouting-ibr-wlan1-s192.168.0.192/26-jmark--set-mark4在上述指令中,将无线终端的源ip地址分为4组,分别打上标签3和标签4。当然,上述将源ip地址分为四组并打上两种标签仅仅为一种示例,在实际中,可以ip地址的分组以及标签的数量可以自定义。例如,源ip地址分为4组,每一组对应一个标签,如此负载均衡可以做到更精确的控制。在添加标签后,可根据该dns请求报文的五元组信息,生成该dns请求报文的跟踪记录项,并将该dns请求报文的跟踪标签对应添加至该dns请求报文的跟踪记录项中。生成跟踪记录项之后,防火墙进程将该dns请求报文转发至dns代理服务进程。在步骤304中,可选的,为使dns代理服务进程能够访问跟踪状态表,本实施例中可在配置dns代理服务器时,添加libnetfilter_conntrack模块,该模块提供用于访问内核空间中的跟踪状态表的用户空间api。可选的,dns代理服务进程可根据该dns请求报文的五元组信息,通过用户空间api访问位于linux内核空间中的跟踪状态表,以确定与该五元组信息匹配的连接跟踪记录项,作为该dns请求报文对应的连接跟踪记录项。基于该连接跟踪记录项,可获取与该五元组信息匹配的跟踪记录项包含的跟踪标签,作为该dns请求报文的跟踪标签。确定该dns请求报文对应的跟踪标签之后,dns代理服务进程可在该dns请求报文上添加该跟踪标签,并转发至策略路由进程,进而跟踪标签可在路由的过程中被继承。在步骤305中,策略路由进程接收到添加跟踪标签的dns请求报文后,可根据该跟踪标签查询预先建立的策略路由表,以获取与该跟踪标签对应的sim卡出口。在确定sim卡出口之后,通过该sim卡出口将dns请求报文转发至sim卡出口所属运营商网络中的dns服务器,以供所述dns服务器对所述dns请求报文进行域名解析。可选的,策略路由表中可保存跟踪标签与sim卡出口的对应关系。例如,跟踪标签1对应第一sim卡出口、跟踪标签2以及跟踪标签3对应第二sim卡出口等。可选的,通过该跟踪标签配置路由策略的具体配置过程可通过linux策略路由配置指令iprule实现,例如:ipruleaddfwmark1tableppp1ipruleaddfwmark2tableppp2上述语句表示:被设置为标签1的数据的转发路径为路由表ppp1,被设置为标签2的数据的转发路径为路由表ppp2。路由表ppp1以及路由表ppp2中配置了对应的sim出口。在步骤306中,若多个网络的网络质量不在同一质量等级,则此时可按照网络带宽、ping包延迟差、信号强度以及干扰强度的优先级排序选择网络质量最高的网络。可选的,可首先根据多个sim卡出口的网络带宽的大小来判断哪一个网络的网络质量等级最高。若多个sim卡出口的网络带宽不同,则可将网络带宽最大的sim卡出口作为网络质量最高的网络。若多个sim卡出口的网络带宽相同,但多个sim卡出口对应的ping包延迟差的大小不同,可将ping包延迟差最小的sim卡出口作为网络质量最高的网络。若多个sim卡出口的网络带宽相同,对应的ping包延迟差的大小相同,但是多个sim卡出口对应的信号强度不同时,可将信号强度最大的sim卡出口作为网络质量最高的网络。若多个sim卡出口的网络带宽相同,对应的ping包延迟差的大小相同,对应的信号强度相同,但是多个sim卡出口对应的信号的干扰强度不同时,可将干扰强度最小的sim卡出口作为网络质量最高的网络。在本实施例中,在接收到dns请求报文时,首先根据与多个sim卡出口一一对应的多个网络的网络状态判断是否在多sim卡出口间进行负载均衡的路由策略。若进行负载均衡的路由策略,则将dns请求报文通过与该dns请求报文的跟踪标签对应的sim卡出口转发出去。若不进行负载均衡的路由策略,则选择网络质量最高的网络对应的sim卡出口转发该dns请求报文。在这样的实施方式中,在多sim卡对应的网络状况良好的情况下,避免同一无线终端的网络访问请求由不同网络运营商响应,解决了跨运营商带来的访问延迟或中断的缺陷。除此之外,在网络状况不佳的情况下,根据网络质量为用户的网络访问请求选取网络质量等级较高的运营商网络,满足了用户的网络访问需求,提升了网络服务的质量。以下部分结合一段在实际中配置iptables的代码,对本申请实施例的技术方案进行阐述:iptables-aprerouting-tmangle-ibr-wlan1-d192.168.0.1-s192.168.0.0/26-jconnmark--restore-markiptables-aprerouting-tmangle-ibr-wlan1-d192.168.0.1-s192.168.0.0/26-mmark!--mark0-jacceptiptables-aprerouting-mmark-ibr-wlan1-d192.168.0.1-s192.168.0.0/26--mark0-ptcp--dport53-tmangle-jmark--set-mark1iptables-aprerouting-mmark-ibr-wlan1-d192.168.0.1-s192.168.0.0/26--mark0-pudp--dport53-tmangle-jmark--set-mark1iptables-aprerouting-tmangle-ibr-wlan1-d192.168.0.1-s192.168.0.0/26-jconnmark--save-mark在第一句中,通过connmark--restore-mark语句将属于源ip为192.168.0.1,目的ip为192.168.0.0/26之间的连接上的跟踪标签打到属于该连接的dns请求报文对应的数据包上。第二句中,判断数据包的跟踪标签,如果不为0,也就是数据包在第一句代码中打上了跟踪标签,则直接接收该数据包,后续不再按照规则添加跟踪标签。如果数据包上没有被打跟踪标签,则交由后面的规则进行匹配并添加跟踪标签。第三句中给协议为tcp并且目的端口为53的数据包打上跟踪标签1,第四句中给协议为udp并且目的端口为53的数据包打上跟踪标签1。第五句中将数据包上的标签值记录到该连接对应的连接跟踪记录项中。上述代码仅仅示意了一个可能的连接对应的iptables设置指令,针对其它连接,可参考上述指令进行设置。在设置完成后,可采用iprule指令进行策略路由设置,例如:ipruleaddfwmark1tableppp1ipruleaddfwmark2tableppp2iprouteflushcache进而,可将标签值为1的数据包的通过路由表ppp1进行转发,将标签值为2的数据包通过路由表ppp2进行转发。需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一进程,或者,该方法也由不同进程作为执行主体。比如,步骤201至步骤203的执行主体可以为进程a;又比如,步骤201和202的执行主体可以为进程a,步骤203的执行主体可以为进程b等等。另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。以上描述了路由方法的可选实施过程,如图4所示,实际中,该路由方法可通过路由设备实现,如图4所示,该设备包括:多个sim卡40、存储器41、处理器42以及通信组件43。存储器41用于:存储一条或多条计算机指令,并可被配置为存储其它各种数据以支持在码元同步设备上的操作。这些数据的示例包括用于在码元同步设备上操作的任何应用程序或方法的指令。存储器41可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。处理器42,与存储器41耦合,用于执行所述一条或多条计算机指令,以用于:接收无线终端发送的dns请求报文,所述dns请求报文携带有所述无线终端的ip地址;根据所述无线终端的ip地址和ip地址分组与跟踪标签之间的对应关系,确定所述dns请求报文的跟踪标签并添加至跟踪状态表中;通过用户空间api访问所述跟踪状态表,以获取所述dns请求报文的跟踪标签;基于策略路由表,将所述dns报文通过与所述dns请求报文的跟踪标签对应的sim卡出口转发出去。进一步可选地,处理器42具体用于:根据所述无线终端的ip地址和ip地址分组与跟踪标签之间的对应关系,确定所述dns请求报文的跟踪标签;根据所述dns请求报文的五元组信息,在所述跟踪状态表中添加所述dns请求报文的跟踪记录项;将所述dns请求报文的跟踪标签对应添加至所述dns请求报文的跟踪记录项中。进一步可选地,处理器42具体用于:根据所述dns请求报文的五元组信息,通过用户空间api访问所述跟踪状态表以确定与所述五元组信息匹配的跟踪记录项,并获取与所述五元组信息匹配的跟踪记录项包含的跟踪标签,作为所述dns请求报文的跟踪标签。进一步可选地,处理器42具体用于:根据所述dns请求报文的跟踪标签查询所述策略路由表,以获取与所述dns请求报文的跟踪标签对应的sim卡出口;通过所述sim卡出口将所述dns请求报文转发至所述sim卡出口所属运营商网络中的dns服务器,以供所述dns服务器对所述dns请求报文进行域名解析。进一步可选地,处理器42还用于:根据与多个sim卡出口一一对应的多个网络的网络状态,确定采用基于ip地址分组在所述多sim卡出口间进行负载均衡的路由策略。进一步可选地,处理器42具体用于:通过所述多个sim卡出口,采集所述多个网络的网络状态参数;根据所述多个网络的网络状态参数,判断所述多个网络的网络质量是否位于同一质量等级;若判断结果为是,确定采用基于ip地址分组在所述多sim卡出口间进行负载均衡的路由策略。进一步可选地,所述网络状态参数包括:信号强度、信号干扰强度、网络带宽和传输延迟时间中的至少一个。进一步可选地,处理器42具体用于:当所述网络状态参数包括:信号强度、信号干扰强度、网络带宽和传输延迟时间时,若所述多个网络的网络带宽均相同,且每两个网络之间的信号强度差、干扰强度之差以及传输延迟时间之差均小于相应阈值,确定所述多个网络的网络质量位于同一质量等级。其中,通信组件43被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wifi(wireless-fidelity,无线保真技术),2g或3g,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。进一步,如图4所示,该码元同步设备还包括:显示器44、电源组件45、音频组件46等其它组件。图4中仅示意性给出部分组件,并不意味着码元同步设备只包括图4所示组件。其中,显示器44包括屏幕,其屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。其中,电源组件45,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。其中,音频组件46,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(mic),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。本实施例中,接收到无线终端发送的dns请求报文之后,路由设备根据无线终端的ip地址所属的ip分组,确定该dns请求报文的跟踪标签并将该跟踪标签和该dns请求报文的连接跟踪记录项对应添加至跟踪状态表中。进而,后续的处理进程可通过用户空间api访问该跟踪状态表,以获取并继承该跟踪标签。基于该跟踪标签以及策略路由表,可将dns请求报文通过与该跟踪标签对应的sim卡出口转发出去。在上述的技术方案中,通过跟踪标签的继承,使得来特定自无线终端的dns请求报文可以通过指定的网络出口转发出去,解决了多sim卡情况下存在的跨运营商访问网络的缺陷,提升网络服务的质量。相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中的各步骤。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1