一种dns解析方法、服务器及网络系统的制作方法
【技术领域】
[0001]本发明涉及互联网技术领域,尤其涉及一种DNS解析方法、服务器及网络系统。
【背景技术】
[0002]互联网内容提供商ICP通常以分布式方式向用户提供内容资源,客户请求的资源可能位于不同的运营商网络,或者位于同一运营商网络的不同地域。当用户对访问某个网站资源进行域名解析请求时,DNS服务器可能响应多个资源的IP地址,用户默认使用第一个IP地址进行访问,但这不一定是离用户最近的访问资源。本地DNS服务器返回给用户的第一个IP地址对应资源可能跨越不同运营商网络、或跨越本地网络。当本地DNS服务器接收到用户的域名解析请求时,本地DNS服务器只是简单地把递归查询得到的域名解析结果转发给用户,如图1所示,本地DNS服务器可能把IDC4(跨运营商)网站IP地址排在首位发给用户(IDC4、IDC2、IDC3、IDC1),用户默认使用第一个IP地址访问最远的网站,影响用户感知。由于本地DNS服务器只是简单地把递归查询得到的域名解析结果转发给用户,存在非最优解析,导致跨网或跨省流量大、用户体验不好。
【发明内容】
[0003]有鉴于此,本发明要解决的一个技术问题是提供一种DNS解析方法,能够优化对目标域名的解析结果。
[0004]一种DNS解析方法,包括:获取目标域名的多个资源服务器的IP地址;计算所述多个资源服务器的IP地址与用户所在的网络服务提供点的距离,并按照距离由近到远的顺序对所述多个资源服务器的IP地址排序;将所述多个资源服务器的IP地址的排序优化结果发送给所述用户。
[0005]根据本发明的一个实施例,进一步的,接收到所述用户发送的指定所述目标域名的DNS解析请求;从所述DNS解析请求获取用户IP地址,所述用户IP地址由所述用户所属的网络服务提供点分配;将所述用户IP地址与预先配置的各个网络服务提供点的IP网段地址进行匹配,确定所述用户所属的网络服务提供点。
[0006]根据本发明的一个实施例,进一步的,根据网络拓扑数据库计算所述多个资源服务器的IP地址到达所述用户所属的网络服务提供点的跳数;根据跳数最少原则,对所述多个资源服务器的IP地址的访问顺序进行排序,将排序结果返回给所述用户并存储。
[0007]根据本发明的一个实施例,进一步的,根据网络拓扑数据库计算所述多个资源服务器的IP地址到达所述用户所属的网络服务提供点的跳数;按照网内优先原则,将与所述用户在同一运营商网络中的资源服务器的IP地址的访问顺序排在前列,并且,根据跳数最少原则,对同一运营商网络或不同运营商网络中的资源服务器的IP地址的访问顺序进行排序,将排序结果返回给所述用户并存储。
[0008]根据本发明的一个实施例,进一步的,根据网络拓扑数据库计算所述多个资源服务器的IP地址到达所述用户所属的网络服务提供点的传输延迟;根据传输延迟最短原则,将所述多个资源服务器的IP地址的访问顺序进行排序,将排序结果返回给所述用户并存储。
[0009]根据本发明的一个实施例,进一步的,所述用户接收到所述排序结果,根据所述排序结果中资源服务器的可用性依次访问资源服务器。
[0010]根据本发明的一个实施例,进一步的,当接收到属于所述网络服务提供点的用户发送的、对所述目标域名的DNS解析请求时,将存储的所述排序结果返回给此用户。
[0011]本发明要解决的一个技术问题是提供一种DNS服务器,能够优化对目标域名的解析结果。
[0012]一种DNS服务器,包括:地址获取单元,用于获取目标域名的多个资源服务器的IP地址;距离计算单元,用于计算所述多个资源服务器的IP地址与用户所在的网络服务提供点的距离;地址排序单元,用于按照距离由近到远的顺序对所述多个资源服务器的IP地址排序;地址返回单元,用于将所述多个资源服务器的IP地址的排序优化结果发送给所述用户。
[0013]根据本发明的一个实施例,进一步的,还包括:请求接收单元,用于接收到所述用户发送的指定所述目标域名的DNS解析请求;Ρ0Ρ点获取单元,用于从所述DNS解析请求获取用户IP地址,将所述用户IP地址与预先配置的各个网络服务提供点的IP网段地址进行匹配,确定所述用户所属的网络服务提供点;其中,所述用户IP地址由所述用户所属的网络服务提供点分配。
[0014]根据本发明的一个实施例,进一步的,所述距离计算单元,还用于根据网络拓扑数据库计算所述多个资源服务器的IP地址到达所述用户所在的网络服务提供点的跳数;还包括地址排序单元,用于根据跳数最少原则对所述多个资源服务器的IP地址的访问顺序进行排序,并存储排序结果。
[0015]根据本发明的一个实施例,进一步的,所述距离计算单元,还用于根据网络拓扑数据库计算所述多个资源服务器的IP地址到达所述用户所在的网络服务提供点的跳数;所述地址排序单元,还用于按照网内优先原则,将与所述用户在同一运营商网络中的资源服务器的IP地址的访问顺序排在前列,并且,根据跳数最少原则,对同一运营商网络或不同运营商网络中的资源服务器的IP地址的访问顺序进行排序,并存储排序结果。
[0016]根据本发明的一个实施例,进一步的,所述距离计算单元,还用于根据网络拓扑数据库计算所述多个资源服务器的IP地址到达所述用户所在的网络服务提供点的传输延迟;所述地址排序单元,用于根据传输延迟最短原则,将所述多个资源服务器的IP地址的访问顺序进行排序,并存储排序结果。
[0017]根据本发明的一个实施例,进一步的,所述地址返回单元,还用于当接收到属于所述网络服务提供点的用户发送的、对所述目标域名的DNS解析请求时,将存储的所述排序结果返回给此用户。
[0018]一种网络系统,包括:如上所述的DNS服务器。
[0019]本发明的DNS解析方法、服务器及网络系统,计算各个网站与用户所在POP点的距离,可基于跳数、网内优先、传输延迟等策略,选择一个距离用户最近的网站资源提供给用户访问,可最大限度节省网络带宽,提升了用户访问互联网内容资源的业务体验。
【附图说明】
[0020]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0021]图1为现有技术中的域名解析结果的示意图;
[0022]图2为根据本发明的DNS解析方法的一个实施例的流程图;
[0023]图3为根据本发明的DNS解析方法的一个实施例的网络拓扑数据库同步示意图;
[0024]图4为根据本发明的DNS解析方法的一个实施例的获取的各POP点的IP网段地址示意图;
[0025]图5为根据本发明的DNS解析方法的一个实施例的缓存的经过解析优化的域名解析结果示意图;
[0026]图6为根据本发明的DNS解析方法的一个实施例的域名解析优化结果示意图;
[0027]图7为根据本发明的DNS解析方法的另一个实施例的域名解析优化结果示意图;
[0028]图8为根据本发明的DNS解析方法的又一个实施例的域名解析优化结果示意图;
[0029]图9为根据本发明的DNS服务器的一个实施例的结构示意图。
【具体实施方式】
[0030]下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面结合各个图和实施例对本发明的技术方案进行多方面的描述。
[0031]图2为根据本发明的DNS解析方法的一个实施例的流程图,如图2所示:
[0032]步骤101,获取目标域名的多个资源服务器的IP地址。
[0033]步骤102,计算多个资源服务器的IP地址与用户所在的网络服务提供点的距离。
[0034]步骤103,将与用户所在的网络服务提供点距离最近的
资源服务器的IP地址发送给用户。
[0035]在一个实施例中,可以只发送与用户所在的网络服务提供点距离最近的资源服务器的IP地址,也可以对多个资源服务器的IP地址进行排序,生成优化的排序结果,根据预订的规则,将与用户所在的网络服务提供点距离最近的资源服务器的IP地址排在最前,用户能够优先使用。
[0036]本发明的DNS解析方法,计算各个网站与用户所在网络服务提供点(或称局端)POP点的距离,选择一个距离用户最近的网站资源提供给用户访问,可最大限度节省网络带宽,并能为用户提供最佳的业务体验。
[0037]在一个实施例中,接收到用户发送的指定目标域名的DNS解析请求,从DNS解析请求获取用户IP地址,用户IP地址由用户所属的网络服务提供点分配。将用户IP地址与各个网络服务提供点的IP网段地址进行匹配,确定用户所属的网络服务提供点。
[0038]在一个实施例中,基于网络拓扑数据库进行DNS解析,本地DNS服务器基于网络拓扑数据库计算各个网站与用户所在POP点的距离,选择一个距离用户最近的网站资源提供给用户访问。本地DNS服务器可以通过运营商的IP网管或互联网核心路由器获取全网网络拓扑数据库数据。
[0039]如图3所示,当全网网络拓扑发生变化时,IP网管或互联网核心路由器更新网络拓扑数据库数据,同时向本地DNS服务器同步更新全网网络拓扑数据库数据。此时,本地DNS服务器获取的网络拓扑数据库数据能够实时反映全网拓扑。
[0040]用户IP地址一般由所在POP点进行分配,本地DNS服务器需要获取其服务范围内各个POP点的IP网段地址。如图4所示,P0P1对应IP网段11,IP网段12,…;POP2对应IP网段21,IP网段22,…;POP3对应IP网段31,IP网段32,…;P0P4对应IP网段41,IP网段42,…;P0P5对应IP网段51,IP网段52,…等等。
[0041]当用户向本地DNS服务器发出某个指定域名的DNS解析请求时,本地DNS服务器从用户域名解析请求报文中获取用户的IP地址,并与各个POP点的IP网段地址进行匹配,根据匹配结果得到用户所属的POP点。
[0042]本地DNS服务器经过DNS递归查询,可能得到多个资源服务器的IP地址。ICP会在同一运营商网络不同区域或不同运营商网络部署内容资源服务器,ICP授权DNS服务器会把用户访问资源域名对应的所有服务器IP地址返回给本地DNS服务器,而本地DNS服务器会不加选择地向用户回复递归查询得到的域名对应的IP地址。
[0043]在一个实施例中,本地DNS服务器基于可基于跳数、网内优先、传输延迟等策略分别计算这些IP地址到用户所在POP点的距离并排序,优化结果存放在缓存中。如图5所示,对于被解析的域名1,对应P0P1的解析优化结果为IP1,IP2,IP3, IP4, IP5 ;对于POP2的解析优化结果为IP2,IP1, IP3, IP4, IP5 ;对于POP3的解析优化结果为IP3, IP1, IP2, IP4, IP5 ;P0P4 的解析优化结果为 IP4,IP1, IP2, IP3, IP5 ;对于 P0P5 的解析优化结果为IP5,IP1, IP2, IP3, IP4。向用户返回经过优化的DNS解析结果。用户总是访问最优的网站资源。若最优的网站资源不可得,依次访问次优的网站资源。
[0044]在一个实施例中,根据网络拓扑数据库计算多个资源服务器的IP地址到达用户所属的网络服务提供点的跳数。根据跳数最少原则,对多个资源服务器的IP地址的访问顺序进行排序,将排序结果返回给用户并存储。
[0045]在一个实施例中,如图6所示,本地DNS服务器通过递归查询得到来自数据中心IDC1、IDC2、IDC3、IDC4的四个网站的IP地址。本地DNS服务器根据网络拓扑数据库计算这4个IP地址到用户所在POP的跳数。例如,根据实际网络拓扑数据库,以POP点连接的路由器作为根节点,根据Di jkstra算法,计算根节点到域名对应各个服务器IP地址的跳数,得到一个最少跳数的路径对应的服务器IP地址。
[0046]POP点到IDC1经过了 4跳路由器,POP点到IDC2经过了 5跳路由器,POP点到IDC3经过了 6跳路由器,POP点到IDC4经过了 7跳路由器。
[0047]根据跳数最少原则,本地DNS服务器按照这四个网站的IP地址到POP点跳数由小到大进行排序,排序结果为Dipl〈Dip2〈Dip3〈Dip4。本地DNS服务器把优化结果存放在缓存中,同时向用户返回DNS解析优化结果。用户默认使用解析得到域名对应的第一个ipl访问网站资源。若ipl不可达,依次使用ip2、ip3、ip4对应的网站资源。
[0048]在一个实施例中,根据网络拓扑数据库计算多个资源服务器的IP地址到达用户所属的网络服务提供点的跳数。按照网内优先原则,将与用户在同一运营商网络中的资源服务器的IP地址的访问顺序排在前列,并且,根据跳数最少原则,对同一运营商网络或不同运营商网络中的资源服务器的IP地址的访问顺序进行排序,将排序结果返回给用户并存储。
[0049]在一个实施例中,如图7所示,本地DNS服务器通过递归查询得到来自数据中心IDC1、IDC2、IDC3、IDC4的四个网站的IP地址。本地DNS服务器根据网络拓扑数据库计算这4个IP地址到用户所在POP的跳数。POP点到IDC1经过了 5跳路由器,POP点到IDC2经过了 6跳路由器,POP点到IDC3经过了 7跳路由器,POP点到IDC4经过了 4跳路由器。
[0050]由于IDC4位于跨运营商网络,尽管IDC4到POP点经过的跳数最少,根据网内优先原则,本地DNS服务器对这四个网站的IP地址的优先顺序进行排序,排序结果为Dipl〈Dip2〈Dip3〈Dip4。本地DNS服务器把优化结果存放在缓存中,同时向用户返回DNS解析优化结果。用户默认使用解析得到域名对应的ipl访问网站资源。若ipl不可达,依次使用ip2、ip3、ip4对应的网站资源。
[0051]在一个实施例中,根据网络拓扑数据库计算多个资源服务器的IP地址到达用户所属的网络服务提供点的传输延迟。根据传输延迟最短原则,将多个资源服务器的IP地址的访问顺序进行排序,将排序结果返回给用户并存储。
[0052]在一个实施例中,如图8所示,假设本地DNS服务器通过递归查询得到来自数据中心IDC1、IDC2、IDC3、IDC4的四个网站的IP地址。本地DNS服务器根据网络拓扑数据库计算这4个IP地址到用户所在POP的传输延迟。例如,根据实际网络拓扑数据库,以POP点连接的路由器作为根节点,根据Di jkstra算法,计算根节点到域名对应各个服务器IP地址的延迟,得到一个延迟最小的路径对应的服务器IP地址。
[0053]POP点到IDC1经过了 500毫秒,POP点到IDC2经过了 600毫秒,POP点到IDC3经过了 700毫秒,POP点到IDC4经过了 800毫秒。根据传输延迟最短原则,本地DNS服务器对这四个网站的IP地址的优先顺序进行排序,排序结果为Dipl〈Dip2〈Dip3〈Dip4。本地DNS服务器把优化结果存放在缓存中,同时向用户返回DNS解析优化结果。用户默认使用解析得到域名对应的ipl访问网站资源。若ipl不可达,依次使用ip2、ip3、ip4对应的网站资源。
[0054]在一个实施例中,用户接收到排序结果,根据排序结果中资源服务器的IP地址的排序依次访问资源服务器。当接收到属于网络服务提供点的用户发送的、对目标域名的DNS解析请求时,将存储的排序结果返回给此用户。例如,当下一个属于同一个POP点的用户再次发出上述域名的DNS解析请求时,本地DNS服务器直接查找存放在缓存中已有的域名解析优化结果,返回给用户,无需再次为该用户重新计算优化结果。
[0055]如图9所示,本发明提供一种DNS服务器4,包括:地址获取单元41、距离计算单元42、地址返回单元43、请求接收单元44、POP点获取单元45和地址排序单元46。
[0056]地址获取单元41获取目标域名的多个资源服务器的IP地址。距离计算单元42计算多个资源服务器的IP地址与用户所在的网络服务提供点的距离。地址排序单元46按照距离由近到远的顺序对所述多个资源服务器的IP
地址排序。地址返回单元43将与用户所在的网络服务提供点距离最近的资源服务器的IP地址发送给用户。
[0057]在一个实施例中,请求接收单元44接收到用户发送的指定目标域名的DNS解析请求。POP点获取单元45从DNS解析请求获取用户IP地址,将用户IP地址与各个网络服务提供点的IP网段地址进行匹配,确定用户所属的网络服务提供点。用户IP地址由用户所属的网络服务提供点分配。
[0058]在一个实施例中,距离计算单元42根据网络拓扑数据库计算多个资源服务器的IP地址到达用户所在的网络服务提供点的跳数。地址排序单元46根据跳数最少原则对多个资源服务器的IP地址的访问顺序进行排序,并存储排序结果。
[0059]在一个实施例中,距离计算单元42根据网络拓扑数据库计算多个资源服务器的IP地址到达用户所在的网络服务提供点的跳数。地址排序单元46按照网内优先原则,将与用户在同一运营商网络中的资源服务器的IP地址的访问顺序排在前列,并且,根据跳数最少原则,对同一运营商网络或不同运营商网络中的资源服务器的IP地址的访问顺序进行排序,并存储排序结果。
[0060]在一个实施例中,距离计算单元42根据网络拓扑数据库计算多个资源服务器的IP地址到达用户所在的网络服务提供点的传输延迟。地址排序单元46根据传输延迟最短原则,将多个资源服务器的IP地址的访问顺序进行排序,并存储排序结果。
[0061]在一个实施例中,当接收到属于网络服务提供点的用户发送的、对目标域名的DNS解析请求时,地址返回单元43将存储的排序结果返回给此用户。
[0062]在一个实施例中,一种网络系统,包括如上的DNS服务器。
[0063]通过本发明提供的本发明的DNS解析方法、服务器及网络系统,基于网络拓扑数据库计算各个网站与用户所在POP点的距离,可基于跳数、网内优先、传输延迟等策略,选择一个距离用户最近的网站资源提供给用户访问,可最大限度节省网络带宽,提升了用户访问互联网内容资源的业务体验,解决现有技术的局限性。
[0064]可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
[0065]本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
【主权项】
1.一种域名系统DNS解析方法,其特征在于,包括: 获取目标域名的多个资源服务器的IP地址; 计算所述多个资源服务器的IP地址与用户所在的网络服务提供点的距离,并按照距离由近到远的顺序对所述多个资源服务器的IP地址排序; 将所述多个资源服务器的IP地址的排序优化结果发送给所述用户。2.如权利要求1所述的方法,其特征在于: 接收到所述用户发送的指定所述目标域名的DNS解析请求; 从所述DNS解析请求获取用户IP地址,所述用户IP地址由所述用户所属的网络服务提供点分配; 将所述用户IP地址与预先配置的各个网络服务提供点的IP网段地址进行匹配,确定所述用户所属的网络服务提供点。3.如权利要求2所述的方法,其特征在于: 根据网络拓扑数据库计算所述多个资源服务器的IP地址到达所述用户所属的网络服务提供点的跳数; 根据跳数最少原则,对所述多个资源服务器的IP地址的访问顺序进行排序,将排序结果返回给所述用户并存储。4.如权利要2所述的方法,其特征在于: 根据网络拓扑数据库计算所述多个资源服务器的IP地址到达所述用户所属的网络服务提供点的跳数; 按照网内优先原则,将与所述用户在同一运营商网络中的资源服务器的IP地址的访问顺序排在前列,并且,根据跳数最少原则,对同一运营商网络或不同运营商网络中的资源服务器的IP地址的访问顺序进行排序,将排序结果返回给所述用户并存储。5.如权利要求2所述的方法,其特征在于: 根据网络拓扑数据库计算所述多个资源服务器的IP地址到达所述用户所属的网络服务提供点的传输延迟; 根据传输延迟最短原则,将所述多个资源服务器的IP地址的访问顺序进行排序,将排序结果返回给所述用户并存储。6.如权利要求3或4或5所述的方法,其特征在于: 所述用户接收到所述排序结果,根据所述排序结果中资源服务器的可用性,依次访问资源服务器。7.如权利要求3或4或5所述的方法,其特征在于: 当接收到属于所述网络服务提供点的用户发送的、对所述目标域名的DNS解析请求时,将存储的所述排序结果返回给此用户。8.—种域名系统DNS服务器,其特征在于,包括: 地址获取单元,用于获取目标域名的多个资源服务器的IP地址; 距离计算单元,用于计算所述多个资源服务器的IP地址与用户所在的网络服务提供点的距离; 地址排序单元,用于按照距离由近到远的顺序对所述多个资源服务器的IP地址排序; 地址返回单元,用于将所述多个资源服务器的IP地址的排序优化结果发送给所述用户。9.如权利要求8所述的服务器,其特征在于,还包括: 请求接收单元,用于接收到所述用户发送的指定所述目标域名的DNS解析请求; POP点获取单元,用于从所述DNS解析请求获取用户IP地址,将所述用户IP地址与预先配置的各个网络服务提供点的IP网段地址进行匹配,确定所述用户所属的网络服务提供点;其中,所述用户IP地址由所述用户所属的网络服务提供点分配。10.如权利要求9所述的服务器,其特征在于: 所述距离计算单元,还用于根据网络拓扑数据库计算所述多个资源服务器的IP地址到达所述用户所在的网络服务提供点的跳数; 所述地址排序单元,用于根据跳数最少原则对所述多个资源服务器的IP地址的访问顺序进行排序,并存储排序结果。11.如权利要9所述的服务器,其特征在于: 所述距离计算单元,还用于根据网络拓扑数据库计算所述多个资源服务器的IP地址到达所述用户所在的网络服务提供点的跳数; 所述地址排序单元,还用于按照网内优先原则,将与所述用户在同一运营商网络中的资源服务器的IP地址的访问顺序排在前列,并且,根据跳数最少原则,对同一运营商网络或不同运营商网络中的资源服务器的IP地址的访问顺序进行排序,并存储排序结果。12.如权利要求9所述的服务器,其特征在于: 所述距离计算单元,还用于根据网络拓扑数据库计算所述多个资源服务器的IP地址到达所述用户所在的网络服务提供点的传输延迟; 所述地址排序单元,用于根据传输延迟最短原则,将所述多个资源服务器的IP地址的访问顺序进行排序,并存储排序结果。13.如权利要求10或11或12所述的服务器,其特征在于: 所述地址返回单元,还用于当接收到属于所述网络服务提供点的用户发送的、对所述目标域名的DNS解析请求时,将存储的所述排序结果返回给此用户。14.一种网络系统,其特征在于,包括: 如权利要求8至13任意一项所述的DNS服务器。
【专利摘要】本发明公开了一种DNS解析方法、服务器及网络系统,包括:获取目标域名的多个资源服务器的IP地址;计算多个资源服务器的IP地址与用户所在的网络服务提供点的距离并按照距离由近到远的顺序对多个资源服务器的IP地址排序;将多个资源服务器的IP地址的排序优化结果发送给用户。本发明的DNS解析方法、服务器及网络系统,计算各个网站与用户所在POP点的距离,可基于跳数、网内优先、传输延迟等策略,并将排序优化后的域名解析结果提供给用户访问,用户总是访问最近的网站资源,可最大限度节省网络带宽,提升了用户访问互联网内容资源的业务体验。
【IPC分类】H04L29/12, H04L29/06
【公开号】CN105491173
【申请号】CN201410476846
【发明人】何晓明, 贺晓东, 徐博文, 彭巍
【申请人】中国电信股份有限公司
【公开日】2016年4月13日
【申请日】2014年9月18日