一种DNS解析方法及装置与流程

文档序号:11292345阅读:223来源:国知局
一种DNS解析方法及装置与流程
本发明涉及网络通信
技术领域
,尤其涉及一种dns解析方法及装置。
背景技术
:目前,很多dns(域名系统,domainnamesystem,)都由多运营商共建。同一个域名对应的应用服务器不再具有一个ip地址,而是具有多个ip地址,且不同的ip地址关联的运营商不同。比如域名www.c.com对应的应用服务器的ip地址ip1和ip2,可以分别与移动和联通关联,当接收到移动用户设备对于www.c.com的dns解析请求时,dns服务器可以向该移动用户设备返回ip1,以使该移动用户设备与该应用服务器后续传输的报文可以通过移动提供的链路进行传输,从而避免跨运营商传输所造成的网络延迟。而在大数据时代下,多出口的网络模型日益普及,即同一运营商可能为用户提供多条用以传输数据的链路,这为dns服务器在这些链路中进行选择提出了挑战。技术实现要素:有鉴于此,本发明提供一种dns解析方法及装置,以提出一种在同一运营商为用户提供多条用以传输数据的链路的情况下,dns服务器对这些链路进行选择的方案。根据本发明实施例的第一方面,提供一种dns解析方法,所述方法应用于dns服务器,所述方法包括:接收用户设备发送的dns请求报文;确定与所述dns请求报文中的域名以及所述用户设备所属的运营商匹配的ip地址集合,所述ip地址集合包含至少两个ip地址,且该至少两个ip地址是所述域名对应的应用服务器的ip地址;确定与所述ip地址集合对应的链路集合,其中,所述链路集合中的链路与所述ip地址集合中的ip地址相对应;根据链路带宽参数从所述链路集合中确定一条链路,将该确定的链路对应的ip地址通过dns响应报文返回至所述用户设备。根据本发明实施例的第二方面,提供一种dns解析装置,所述装置应用于dns服务器,所述装置包括:接收单元,用于接收用户设备发送的dns请求报文;ip地址集合确定单元,用于确定与所述dns请求报文中的域名以及所述用户设备所属的运营商匹配的ip地址集合,所述ip地址集合包含至少两个ip地址,且该至少两个ip地址是所述域名对应的应用服务器的ip地址;链路集合确定单元,用于确定与所述ip地址集合对应的链路集合,其中,所述链路集合中的链路与所述ip地址集合中的ip地址相对应;链路确定单元,用于根据链路带宽参数从所述链路集合中确定一条链路,将该确定的链路对应的ip地址通过dns响应报文返回至所述用户设备。本发明实施例中,dns服务器通过确定与dns请求报文中的域名以及用户设备所属的运营商匹配的ip地址集合,并确定与ip地址集合对应的链路集合,将根据链路带宽参数在链路集合中确定的一条可用带宽最大的链路的ip地址返回至用户设备,可以使得用户设备后续传输的数据报文通过该ip地址对应的链路进行传输,从而实现用户设备所属运营商提供的链路间的带宽均衡。附图说明图1是本发明一种dns解析方法的一个示例性场景图;图2是本发明一种dns解析方法的一个实施例流程图;图3是本发明一种dns解析装置的一个实施例框图;图4是本发明一种dns解析装置的另一个实施例框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。参见图1,图1是本发明一种dns解析方法的一个示例性场景图,该场景图包括用户设备、dns服务器和应用服务器。其中,用户设备可以是移动用户设备、联通用户设备等,各个用户设备通过自己所属的运营商网络连接至互联网,与互联网中的设备进行交互;dns服务器位于互联网,在接收到用户设备发送的dns请求报文后,可以确定与dns请求报文中的域名以及用户设备所属的运营商匹配的ip地址集合(包含至少两个ip地址),并确定与ip地址集合对应的链路集合,在此之后,dns服务器可以根据链路带宽参数在链路集合中确定一条链路,将该确定的链路对应的ip地址通过dns响应报文返回至用户设备。需要指出的是,ip地址集合中的至少两个ip地址均为域名对应的应用服务器的ip地址,这些ip地址与确定出的链路集合中的链路相对应,进一步地,这些链路又由不同的运营商提供。在一个示例中,应用服务器为应用服务器a,则图1中的ip1-ip6均为应用服务器a的ip地址,ip1-ip6分别对应了dns服务器上连接的6条链路,且ip1-ip3对应的链路由移动提供,ip4-ip6对应的链路由联通提供。为了使本
技术领域
的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。实施例一参见图2,图2是本发明一种dns解析方法的一个实施例流程图,该实施例应用于dns服务器,该流程图可以包括以下步骤:步骤201:接收用户设备发送的dns请求报文。步骤202:确定与dns请求报文中的域名以及用户设备所属的运营商匹配的ip地址集合,该ip地址集合包含至少两个ip地址,且该至少两个ip地址是上述域名对应的服务器的ip地址;本实施例中,可以根据dns请求报文中的源ip地址,确定用户设备所属的运营商,其中,运营商可以是移动和联通等,当用户设备注册成为某一运营商的用户时,用户设备会被分配到该运营商网段中的一个ip地址,由于不同的运营商对应的网段一般不同,所以通过确定用户设备的ip地址所属的网段,可以确定用户设备所属的运营商。具体的,dns服务器可以预先在本地维护一个运营商与网段的对应关系表,假设移动的网段为a,联通的网段为b,则运营商与网段的对应关系表可以表示为如下表1所示的形式:运营商网段移动a联通b表1当确定的dns请求报文中的源ip地址为a1时,可以确定ip地址a1所属的网段为a,故可以确定该用户设备所属的运营商为移动。在一个实施例中,可以通过查询第一dns表实施步骤202,其中第一dns表记录了域名、运营商和ip地址的对应关系,具体的,假设dns请求报文中的域名为www.c.com,该域名对应的服务器有6个ip地址ip1-ip6,且ip1-ip3被分配至移动,ip4-ip6被分配至联通,则第一dns表可以表示为如下表2所示的形式:表2当所属运营商为移动的用户设备通过dns服务器解析域名www.c.com时,则根据表2,dns服务器可以确定的ip地址集合为由ip1-ip3组成的ip地址集合。在另一个实施例中,可首先通过查询第二dns表确定与dns请求报文中的域名匹配的ip地址集合,其中,第二dns表记录了域名和ip地址的对应关系,仍以上述假设为例,第二dns表可以表示为如下表3所示的形式:域名ip地址www.c.comip1-ip6表3即通过查询表3,可以首先确定出与域名www.c.com匹配的ip地址集合为由ip1-ip6组成的ip地址集合;在此之后,可通过查询该域名对应的ip地址分配表,在上述确定出的ip地址集合中进一步确定出与该用户设备所属运营商匹配的ip地址集合,仍以上述假设为例,该域名的ip地址分配表可以表示为如下表4所示的形式:运营商被分配的ip地址移动ip1-ip3联通ip4-ip6表4则通过查询表4,可以进一步地确定出与该用户设备所属运营商(仍以移动为例)匹配的ip地址集合,为由ip1-ip3组成的ip地址集合。步骤203:确定与上述ip地址集合对应的链路集合,其中,该链路集合中的链路与上述ip地址集合中的ip地址相对应;在一个实施例,可通过查询一对应关系表实施步骤203,其中,该对应关系表记录了ip地址与链路的对应关系,若假设确定的ip地址集合为由ip1-ip3组成的ip地址集合,且进一步假设对应关系表为如下表5所示的形式:ip地址链路ip1link1ip2link2ip3link3表5则通过查询表5,步骤203中确定的链路集合即为由link1-link3确定的链路集合。步骤204:根据链路带宽参数在上述链路集合中确定一条链路,将该确定的链路对应的ip地址通过dns响应报文返回至用户设备。在第一个实施例中,可以根据链路的带宽利用率,在上述确定的链路集合中确定一条带宽利用率最小链路,并将该确定的链路对应的ip地址通过dns响应报文返回至用户设备;其中,带宽利用率是指链路当前已使用的带宽与该链路最大带宽的比值,比如,若假设某一链路当前已使用的带宽为20兆,该链路最大带宽为100兆,则此时该链路的带宽利用率为20%。具体的,可通过查询第一链路状态表,确定链路集合中带宽利用率最小链路,其中,第一链路状态表记录了链路和该链路带宽利用率的对应关系,假设某一单位时长内,link1-link3的带宽利用率分别为50%、40%、10%和30%,则第一链路状态表可以表示为如下表6所示的形式:链路带宽利用率link150%link240%link310%link430%表6即通过查询表6,可确定link3为由link1-link3组成的链路集合中带宽利用率最小链路。上述第一实施例适用于链路最大带宽相同的情况,该情况下,通过确定带宽利用率最小的链路,一方面可以实现各链路间的带宽均衡,另一方面,也可以最大程度的保证用户设备后续传输数据报文时链路的通畅性。在第二个实施例中,可以根据链路的剩余可用带宽,在上述确定的链路集合中确定一条剩余可用带宽最大链路,并将该确定的链路对应的ip地址通过dns响应报文返回至用户设备;其中,剩余可用带宽是指链路当前还未被使用的带宽,比如,若假设某一链路当前已使用的带宽为20兆,该链路最大带宽为100兆,则此时该链路的剩余可用带宽80。具体的,可通过查询第二链路状态表,确定链路集合中剩余可用带宽最大的链路,其中,第二链路状态表记录了链路和该链路剩余可用带宽的对应关系,假设某一单位时长内,link1-link3的剩余可用带宽分别为5兆、15兆、10兆和20兆,则第二链路状态表可以表示为如下表7所示的形式:链路剩余可用带宽(兆)link15link215link310link420表7即通过查询表7,可确定link4为由link1-link3组成的链路集合中剩余可用带宽最大链路。上述第二实施例适用于链路最大带宽不同的情况,该情况下,通过确定剩余可用带宽最大的链路,一方面可以实现各链路间的带宽均衡,另一方面,也可以最大程度的保证用户设备后续传输数据报文时链路的通畅性。在第三个实施例中,还可以在第一链路状态表和/或第二链路状态表中添加链路的当前可用状态是否可用的一列表项,其中,可以在检测到dns服务器上用于连接链路的端口处于up状态时,确定该链路处于可以状态,否则处于不可用状态。以在第一链路状态表中添加该列表项为例,若假设link1-link4的当前可用状态分别为可用、可用、不可用、可用,则添加该列表项后的第一链路状态表可以表示为如下表8所示的形式:表8本实施例中,可以先行查看确定的链路集合中的链路是否存在不可用的链路,若存在,则忽略该不可用链路的带宽利用率,并从可用的链路中确定一条带宽利用率最小的链路,比如,通过查询表8最终确定出的带宽利用率最小的链路应为link4。在第四个实施例中,还可以在上述表8中添加链路对应的会话个数的一列表项,用于记录一条链路对应的会话个数,可以根据一个链路对应的会话个数来估计该链路的可用带宽,假设某一单位时长内,link1-link3对应的会话个数分别为300000、20000、100000和150000,则添加了链路对应会话个数一列表项后的第一链路状态表可以表示为如下表9所示的形式:链路可用状态会话个数带宽利用率link1可用30000050%link2可用20000040%link3不可用10000010%link4可用15000030%表9从表9可以得到,link3处于不可用状态,不予考虑,故可以确定出对应会话个数最少的链路为link4。在根据链路带宽参数在上述链路集合中确定一条链路后,可将该确定的链路对应的ip地址通过dns响应报文返回至用户设备,以使用户设备后续发送的数据报文从确定的链路,比如link4,进行传输,以获得最大的传输速度,并实现同一运营商提供的链路间的带宽均衡,其中,数据报文可以是从相应的应用服务器获取某一资源的请求报文等。需要指出的是,上述第一链路状态表、第二链路状态表以及添加有可用状态列表项的第一链路状态表、添加了链路对应会话个数一列表项后的第一链路状态表,均需要根据各链路最新统计出的数据进行实时更新,以保证最终链路确定的正确性。其中,所需统计的链路的带宽利用率、剩余可用带宽均需要先统计出链路当前已经使用的带宽,当前已经使用的带宽可以包括上行带宽和下行带宽,本实施例中,上行带宽是可以为用户设备发往dns服务器的流量所占用的带宽,而下行带宽可以为dns服务器发往用户设备的流量所占用的带宽。本发明实施例中,dns服务器通过确定与dns请求报文中的域名以及用户设备所属的运营商匹配的ip地址集合,并确定与ip地址集合对应的链路集合,将根据链路带宽参数在链路集合中确定的一条可用带宽最大的链路的ip地址返回至用户设备,可以使得用户设备后续的数据报文通过该ip地址对应的链路进行传输,从而实现用户设备所属运营商提供的链路间的带宽均衡。实施例二以下将介绍本发明一种dns解析方法的另一个实施例,本实施例应用于dns服务器,可以包括以下步骤:步骤1:接收用户设备发送的dns请求报文;步骤2:获得dns请求报文中的源ip地址,根据该源ip地址确定用户设备所属的运营商;步骤3:查询第一dns表,确定与dns请求报文中的域名以及用户设备所属的运营商匹配的ip地址集合,其中,第一dns表记录了域名、运营商和ip地址的对应关系,确定的ip地址集合包含至少两个ip地址,且该至少两个ip地址是上述域名对应的服务器的ip地址;步骤4:确定与上述ip地址集合对应的链路集合,其中,该链路集合中的链路与上述ip地址集合中的ip地址相对应;步骤5:根据链路的带宽利用率,在上述确定的链路集合中确定一条带宽利用率最小链路,并将该确定的链路对应的ip地址通过dns响应报文返回至用户设备;本实施例中,在构造待返回的dns响应报文时,可以将确定的链路对应的ip地址添加至dns响应报文的数据部分,并将构造完成的dns响应报文返回至用户设备。本发明实施例中,dns服务器通过确定与dns请求报文中的域名以及用户设备所属的运营商匹配的ip地址集合,并确定与ip地址集合对应的链路集合,将根据链路带宽参数在链路集合中确定的一条带宽利用率最小,即可用带宽最大的链路的ip地址返回至用户设备,可以使得用户设备后续的数据报文通过该ip地址对应的链路进行传输,从而实现用户设备所属运营商提供的链路间的带宽均衡。与前述一种dns解析方法的实施例相对应,本发明还提供了一种dns解析装置的实施例。参见图3,图3是本发明一种dns解析装置的一个实施例框图。本实施例可以包括:接收单元310、ip地址集合确定单元340、链路集合确定单元350、链路确定单元360。其中,接收单元310,用于接收用户设备发送的dns请求报文;ip地址集合确定单元340,用于确定与dns请求报文中的域名以及用户设备所属的运营商匹配的ip地址集合,ip地址集合包含至少两个ip地址,且该至少两个ip地址是域名对应的应用服务器的ip地址;链路集合确定单元350,用于确定与ip地址集合对应的链路集合,其中,链路集合中的链路与ip地址集合中的ip地址相对应;链路确定单元360,用于根据链路带宽参数从链路集合中确定一条链路,将该确定的链路对应的ip地址通过dns响应报文返回至用户设备。在另一个实施例中,上述装置还可以包括:网段确定单元320、运营商确定单元330;具体可参见图4,图4是本发明一种dns解析装置的另一个实施例框图。其中,网段确定单元320,用于确定dns请求报文中的源ip地址所属的网段;运营商确定单元330,用于根据网段与运营商的对应关系,查找与确定的网段对应的运营商,将查找到的运营商确定为用户设备所属的运营商。在另一个实施例中,ip地址集合确定单元340,可具体用于:通过查询第一dns表,确定与dns请求报文中的域名以及用户设备所属的运营商匹配的ip地址集合,第一dns表记录了域名、运营商和ip地址的对应关系;或者,通过查询第二dns表,确定与dns请求报文中的域名匹配的ip地址集合,第二dns表记录了域名和ip地址的对应关系,并在该ip地址集合中确定与用户设备所属的运营商匹配的ip地址集合。在另一个实施例中,链路集合确定单元350,可具体用于:通过查询对应关系表,确定与ip地址集合对应的链路集合,对应关系表记录了ip地址与链路的对应关系。在另一个实施例中,链路确定单元360,可具体用于:根据链路集合中的每个链路的带宽利用率,从链路集合中确定一条带宽利用率最小链路;或者,根据链路的剩余可用带宽,在链路集合中确定一条剩余可用带宽最大链路。本发明实施例中,dns服务器通过确定与dns请求报文中的域名以及用户设备所属的运营商匹配的ip地址集合,并确定与ip地址集合对应的链路集合,将根据链路带宽参数在链路集合中确定的一条可用带宽最大的链路的ip地址返回至用户设备,可以使得用户设备后续的数据报文通过该ip地址对应的链路进行传输,从而实现用户设备所属运营商提供的链路间的带宽均衡。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1