一种分配dns服务器的方法和装置的制造方法

文档序号:10691172阅读:302来源:国知局
一种分配dns服务器的方法和装置的制造方法
【专利摘要】本发明公开一种分配DNS服务器资源的方法,该方法包括:获取DNS服务器对应的状态信息,其中,获取的状态信息用于指示与其对应的DNS服务器的负载处理能力;根据所述状态信息确定DNS服务器被访问的顺序;将所述DNS服务器被访问的顺序以及DNS服务器的地址信息发送给终端。通过该方法可以实现,根据DNS服务器的状态信息体现的负载处理能力,确定DNS服务器被访问的顺序,并确定的DNS服务器被访问的顺序以及DNS服务器的地址信息发送给终端,以使终端访问的DNS服务器为负载处理能力最高的DNS服务器。
【专利说明】
-种分配DNS服务器的方法和装置
技术领域
[0001] 本发明设及通信技术领域,特别设及一种分配DNS服务器资源的方法和装置。
【背景技术】
[0002] 动态主机配置协议DHCP(Dynamic Host Configuration ProtocoDServer:指在 一个网络中管理畑CP标准的服务器。畑CP服务器的职责是当用户终端登录时为该用户终端 分配IP地址,并且确保分配给各用户终端的IP地址不同。
[0003] 域名服务器DNS(Domain Name Service)是指保存有所在网络中所有主机的域名 和对应的IP地址,并具有将域名转换为IP地址功能的服务器,其中,将域名映射为IP地址的 过程就称为"域名解析"。

【发明内容】

[0004] 有鉴于此,本发明提出一种分配DNS服务器的方法,所述方法包括:
[0005] 获取DNS服务器对应的状态信息,其中,获取的状态信息用于指示与其对应的DNS 服务器的负载处理能力;
[0006] 根据所述状态信息确定DNS服务器被访问的顺序;
[0007] 将所述DNS服务器被访问的顺序W及DNS服务器的地址信息发送给终端。
[000引本发明还提出了一种分配DNS服务器的装置,所述装置包括:
[0009] 获取模块,用于获取DNS服务器对应的状态信息,其中,获取的状态信息用于指示 与其对应的DNS服务器的负载处理能力;
[0010] 处理模块,用于根据所述状态信息确定DNS服务器被访问的顺序;
[0011] 发送模块,将所述DNS服务器被访问的顺序W及DNS服务器的地址信息发送给终 玉山 乂而。
[0012]通过上述内容可W看出,在确定DNS服务器被访问的顺序时,考虑了 DNS服务器对 应的状态信息,其中,该状态信息用于指示与该状态信息对应的DNS服务器的负载处理能 力,并根据DNS服务器对应的状态信息确定DNS服务器被访问的顺序,并将确定DNS服务器被 访问的顺序发送给终端,W使终端根据该DNS服务器被访问的顺序访问DNS服务器。
【附图说明】
[0013] 图1为本发明实施例提供的一种分配DNS服务器的流程示意图;
[0014] 图2为本发明实施例提供的另一种分配DNS服务器的流程示意图;
[0015] 图3为本发明实施例提供的另一种分配DNS服务器的流程示意图;
[0016] 图4为本发明实施例提供的另一种分配DNS服务器的流程示意图。
【具体实施方式】
[0017] 为使本发明的目的、技术方案及优点更加清楚明白,W下参照附图并举实施例,对 本发明所述方案作进一步地详细说明,显然,所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳 动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0018]应当理解,尽管在本申请可能采用术语第一、第二、第Ξ等来描述各种信息,但运 些信息不应限于运些术语。运些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离 本申请范围的情况下,第一信息也可W被称为第二信息,类似地,第二信息也可W被称为第 一信息。取决于语境,此外,所使用的词语"如果"可W被解释成为"在……时"或"当……时" 或"响应于确定"。
[0019]为了防止大量终端通过域名访问外网时,因 DNS服务器受自身资源的限制,而造成 DNS服务器不能及时响应终端的情况发生,可通过在网络中配置两个或两个W上DNS服务 器,并通过该网络中的DHCP服务器将两个或两个W上DNS服务器的地址发送给各用户终端, 使得某个DNS服务器的负载处理能力不足时,用户终端可通过其他DNS服务器完成域名解析 的工作,如下例:
[0020] 网络中,配置有第一DNS服务器和第二DNS服务器,其中第一DNS服务器对应的地址 为1.1.1.1,第二DNS服务器对应的地址为2.2.2.2,通常根据在DHCP服务器中配置DNS服务 器的先后顺序确定主用DNS服务器、备用DNS服务器(即先配置的DNS服务器为主用DNS服务 器,后配置的DNS服务器为备用DNS服务器),在本例中,假设在畑CP服务器中先配置第一DNS 服务器再配置第二DNS服务器,则第一 DNS服务器为主用DNS服务器,第二DNS服务器为备用 DNS服务器,畑CP服务器将第一DNS服务器对应的地址1.1.1.巧日第二DNS服务器对应的地址 2.2.2.2发送给本网络中的终端,当终端通过域名访问外网时根据上述地址信息会先访问 第一DNS服务器(主用DNS服务器),若终端访问第一DNS服务器超时(即第一DNS服务器的负 载处理能力不足),则该终端再去访问第二DNS服务器(备用DNS服务器)。
[0021] 通过上例可W看出,确定不同DNS服务器被访问的顺序时(即确定主用DNS服务器 和备用DNS服务器),是通过在D肥P上人工配置不同DNS服务器的先后顺序决定的,且不考虑 不同DNS服务器的负载处理能力。
[0022] 本发明实施例提供一种分配DNS服务器的方法,该方法可用于DHCP服务器中,也可 用于与畑CP服务器W及DNS服务器通信连接的其他服务器中,当该方法用于畑CP服务器时, 如图1所示,该方法为:
[0023] 步骤101,获取DNS服务器对应的状态信息,其中,获取的状态信息用于指示与其对 应的DNS服务器的负载处理能力。
[0024] 步骤102,根据所述状态信息确定DNS服务器被访问的顺序。
[0025] 步骤103,将所述DNS服务器被访问的顺序W及DNS服务器的地址信息发送给终端。
[0026] 在步骤101中,DNS服务器的负载处理能力与该DNS服务器用于解析域名的资源对 应,若DNS服务器用于解析域名的资源越大,则其对应的负载处理能力越大,例如,网络中设 置有第一 DNS服务器和第二DNS服务器,若第一 DNS服务器用于解析域名的资源大于第二DNS 服务器用于解析域名的资源时,则第一 DNS服务器的负载处理能力大于第二DNS服务器的负 载处理能力,畑CP服务器可通过获取DNS服务器对应的状态信息的方式来获得DNS服务器对 应的负载处理能力,进一步的,若网络中有两个或两个W上DNS服务器时,通过各DNS服务器 的状态信息确定各DNS服务器的负载处理能力。
[0027]进一步的,本发明提供了另一种分配DNS服务器的方法,如图2所示,该方法具体阐 述了获取DNS服务器对应的状态信息的方法,该方法包括:
[002引步骤1011,获取各DNS服务器对应的负载处理量。
[0029] 其中,各DNS服务器的负载处理量为该DNS服务器可用于解析域名的资源总数量。
[0030] 例如,网络中配置有第一DNS服务器和第二DNS服务器,其中,第一DNS服务器配置 的可用于解析域名的资源数量为10000,第二DNS服务器配置的可用于解析域名的资源数量 为8000,则第一 DNS服务器的负载处理量为10000,第二DNS服务器的负载处理量为8000。
[0031] 步骤1012,获取第一负载值,所述第一负载值为所述各DNS服务器对应的负载处理 量的和。
[0032] 例如,若第一DNS服务器的负载处理量为10000,第二DNS服务器的负载处理量为 8000,则所述第一负载值为第一 DNS服务器的负载处理量10000与第二DNS服务器的负载处 理量8000之和,即第一负载值为18000。
[0033] 步骤1013,根据所述第一负载值W及各DNS服务器对应的负载处理量获取各DNS月良 务器对应的状态?目息。
[0034] 在本步骤中,根据第一负载值W及各DNS服务器对应的负载处理量,通过计算获取 各DNS服务器对应的状态信息,在本实施例中,公开一种通过计算获取所述状态信息的方 法,具体为,根据各DNS服务器对应的负载处理量与所述第一负载值的商获取各DNS服务器 对应的状态信息,公式如下:
[0035] X DNS服务器的状态信息=Χ DNS服务器的负载处理量/第一负载值。
[0036] 其中,X用于表示网络中某一个DNS服务器。
[0037] 例如,网络中设置有第一 DNS服务器和第二DNS服务器,根据步骤1011、步骤1012可 W得到,第一DNS服务器的负载处理量10000(即X指代为第一DNS服务器,进一步的第一DNS 服务器的负载处理量为10000),第二DNS服务器的负载处理量为8000(即X指代为第二DNS服 务器,进一步的第二DNS服务器的负载处理量为8000),第一负载值为18000,根据上述公式, 将第一 DNS服务器的负载处理量10000与所述第一负载值18000的商作为所述第一 DNS服务 器对应的状态信息,从而得出第一DNS服务器对应的状态信息为56% (也表明第一DNS服务 器的负载处理能力为56% ),将第二DNS服务器对应的负载处理量8000与所述第一负载值 18000的商作为所述第二DNS服务器对应的状态信息,从而第二DNS服务器对应的状态信息 为44% (也表明第二DNS服务器的负载处理能力为44% )。
[0038] 作为一种优选的方案,可根据各DNS服务器的系统性能(例如,DNS服务器的处理器 的性能,主板性能、内存性能或硬盘性能等)为各DNS服务器配置预设负载值,其中,各DNS月良 务器配置的预设负载值不大于自身的负载处理量,也就是说,当预设负载值等于自身的负 载处理量时,则可将自身的负载处理量作为预设负载值,当DNS服务器的预设负载值小于自 身负载处理量时,可W避免使该DNS服务器处于满负荷的工作状态,进而可W降低该DNS服 务器的硬件损耗延长该DNS服务器的使用寿命。
[0039] 进一步的,本发明提供了另一种分配DNS服务器的方法,如图3所示,该方法具体阐 述了通过将DNS服务器的预设负载值替换DNS服务器的负载处理量来获取该DNS服务器的状 态?胃息。
[0040] 步骤2011,获取各DNS服务器对应的预设负载值,并执行步骤2012或者执行步骤 2013,其中,所述各DNS服务器的预设负载值不大于自身的负载处理量。
[0041] 步骤2012,根据步骤1012中获取的第一负载值W及各DNS服务器对应的预设负载 值获取各DNS服务器对应的状态信息。
[0042] 步骤2013,获取第二负载值,所述第二负载值为所述各DNS服务器对应的预设负载 值的和,根据所述第二负载值W及各DNS服务器对应的预设负载值获取各DNS服务器对应的 状态信息。
[0043] 在本实施例中,当DNS服务器的预设负载值为该DNS服务器的负载处理量时,则与 步骤1011至步骤1013相同。
[0044] 在步骤2011中,获取各DNS服务器对应的预设负载值,且各DNS服务器的预设负载 值不大于自身的负载处理量,例如,网络中设置有第一 DNS服务器和第二DNS服务器,其中, 第一 DNS服务器的负载处理总量为10000,第二DNS服务器的负载处理总量为8000,根据第一 DNS服务器和第二DNS服务器的系统性能,分别为第一 DNS服务器配置预设负载值为8000,为 第二DNS服务器配置预设负载值6000,需要说明的是,若将第一 DNS服务器的总资源10000作 为第一 DNS服务器的预设资源值,和/或将第二DNS服务器的总资源8000作为第二DNS服务器 的预设资源值依然适用于本方案。
[0045] 在步骤2012中,当根据各DNS服务器对应的预设负载值W及第一负载值获取各DNS 服务器对应的状态信息时,根据各DNS服务器对应的预设负载值与第一负载值的商获取各 DNS服务器对应的状态信息,公式如下:
[0046] X DNS服务器的状态信息=X DNS服务器的预设负载值/第一负载值。
[0047] 其中,X用于表示网络中某一个DNS服务器。
[004引例如,基于步骤2011和步骤2012中的实例,第一负载值为18000,第一 DNS服务器的 预设负载值为8000,第二DNS服务器的预设负载值为6000,根据上述公式可知,第一 DNS服务 器的状态信息为44%,第二DNS服务器的状态信息为33%,
[0049] 通过此实例可W看出,第一DNS服务器对应的状态信息44% W及第二DNS服务器对 应的状态信息33 %,两个DNS服务器还剩余23 %的负载处理能力,其原因为第一DNS服务器 和第二DNS服务器所配置的预设负载值小于第一 DNS服务器和第二DNS服务器的负载处理总 量,而此剩余的23%可W作为预留负载处理能力,当第一DNS服务器和第二DNS服务器的预 设负载值均不足时可W使用该预留负载处理能力。
[0050] 具体的,当第一DNS服务器和第二DNS服务器的预设负载值均不足时,终端可W根 据上述步骤确定的第一 DNS服务器和第二DNS服务器状态信息访问第一 DNS服务器和第二 DNS服务器的预留负载处理能力,或者根据第一DNS服务器和第二DNS服务器各自的预留负 载处理能力作为负载处理量按照上述步骤重新获取第一 DNS服务器和第二DNS服务器新的 状态信息,W使终端根据该新的状态信息访问第一DNS服务器和第二DNS服务器中的预留负 载处理能力。
[0051] 在步骤2013中,获取第二负载值,所述第二负载值为各DNS服务器对应的预设负载 值的和,例如,若第一 DNS服务器的预设负载值为8000,第二DNS服务器的预设负载值6000, 则第二负载值为14000(即8000+6000)。
[0052] 在步骤2013中,当根据各DNS服务器对应的预设负载值W及第二负载值获取各DNS 服务器对应的状态信息时,根据各DNS服务器对应的预设负载值与第二负载值的商获取各 DNS服务器对应的状态信息,公式如下:
[0053] X DNS服务器的状态信息=X DNS服务器的预设负载值/第二负载值。
[0054] 其中,X用于表示网络中某一个DNS服务器。
[0055] 例如,基于根据步骤2011和步骤2012中的实例可知,第一 DNS服务器的预设负载值 为8000,第二DNS服务器的预设负载值为6000,第二负载值为14000,则根据上述公式可知, 第一DNS服务器的状态信息为57%,第二DNS服务器的状态信息为43%。
[0056] 在步骤102中,根据状态信息确定DNS服务器被访问的顺序,具体为,根据步骤101 获取的各DNS服务器对应的状态信息,对两个或两个W上DNS服务器按照一定规则排序并形 成相应的顺序。
[0057] 其中,所述的按照一定规则排序可W理解为按照各DNS服务器对应的状态信息(即 各DNS服务器的状态信息所体现的负载处理能力)由高到低进行排序,或者按照各DNS服务 器对应的状态信息按照由低到高进行排序,若不同DNS服务器对应的状态信息相同时,可W 根据不同DNS服务器的配置顺序进行排序(或者按照不同DNS服务器的任意顺序排序)。
[005引在本实施例中,一种实现方式为,根据DNS服务器对应的状态信息,按照各DNS服务 器对应的状态信息由高到低进行排序,并形成相应的顺序,为了方便说明,引用步骤101例 举的实例,具体为步骤101中获取的第一 DNS服务器对应的状态信息为44%,第二DNS服务器 对应的状态信息为33% (进一步,通过第一DNS服务器和第二DNS服务器对应的状态信息可 知,第一DNS服务器的负载处理能力大于第二DNS服务器的负载处理能力),则根据按照各 DNS服务器对应的状态信息由高到低进行排序的规则,形成的顺序为第一 DNS服务器优先于 第二DNS服务器(也可W理解为,第一DNS服务器的优先级高于第二DNS服务器的优先级),为 了更为清晰的表示不同DNS服务器被访问的顺序,本实施例中W表格的形式列出(需要说明 的是,本实施例中所展现的表格仅仅是为了清晰表示不同元素的对应关系,并不作任何限 定),如表1所示: Γ00591
[0060]表 1
[0061 ]其中,第一顺序位优于第二顺序位,若将顺序位理解为优先级,则数字越小对应的 优先级越局,即优先级1局于优先级2。
[0062] 进一步的,本实施例还提供了表Γ,其中表Γ为表1的另一种表现方式,将主备关 系替换表1中的顺序(优先级),则第一顺序位对应的第一 DNS服务器为主DNS服务器,将第二 顺序位对应的第二DNS服务器为第一备DNS服务器,若存再第Ξ顺序位W及第Ξ顺序位对应 的第SDNS服务器,则第S顺序位对应的第ミDNS服务器为第二备DNS服务器,W此类推,并 且主DNS服务器被访问的优先级高于第一备DNS服务器和第二备DNS服务器,第一备DNS服务 器被访问的优先级高于第二备DNS服务器,具体的表Γ为(需要说明的是,本实施例中所展 现的表格仅仅是为了清晰表示不同元素的对应关系,并不作任何限定):
[0063] __

[0064] 表1 '
[0065] 步骤103,将该顺序W及DNS服务器的地址信息发送给终端。
[0066] 在本实施例中,当DHCP服务器确定了各DNS服务器被访问的顺序后,将该顺序W及 各DNS服务器的地址信息发送给终端,W使终端根据接收到的所述顺序W及各DNS服务器的 地址信息访问对应的DNS服务器。
[0067] 具体的,所述的DNS服务器的地址信息可W是IP地址信息和/或MAC地址信息,D肥P 服务器可W通过与DNS服务器间的通信报文(例如,DNS服务器的注册报文)来获取DNS服务 器的地址信息(也可W通过在DHCP服务器中配置DNS服务器的地址信息的方式获得),从而 在确定了各DNS服务器被访问的顺序后,将该确定的各DNS服务器被访问的顺序W及DNS服 务器的地址信息发送给终端,进一步的,DHCP服务器在每次将DNS服务器被访问的顺序和 DNS服务器的地址信息发送给终端后,DHCP服务器可重新确定各DNS服务器被访问的的顺 序,并当DHCP服务器需要再次向终端发送DNS服务器地址信息时,将重新确定的各DNS服务 器被访问的顺序,并将该重新确定的各DNS服务器被访问的顺序发送给所述终端。
[0068] 例如,当DHCP服务器确定了第一DNS服务器为第一顺序位,第二DNS服务器为第二 顺序位(即第一 DNS服务器被访问的顺序优于第二DNS服务器被访问的顺序),则将第一 DNS 服务器为第一顺序位、第一 DNS服务器的地址信息、第二DNS服务器的第二顺序位、第二DNS 服务器的地址信息发送给终端。
[0069] 具体的,D肥P服务器可通过报文的方式将上述DNS服务器被访问的顺序W及DNS月良 务器的地址信息发送给终端,其中所述的报文包括协议报文或数据报文,DHCP服务器可W 在接收到终端发送的注册报文时,将DNS服务器被访问的顺序W及DNS服务器的地址信息W 应答报文的方式发送给终端,也可W在接收到终端发送的请求DNS服务器地址信息的请求 报文时,将上述DNS服务器被访问的顺序W及DNS服务器的地址信息W应答报文的方式发送 给终端。
[0070] 进一步的,畑CP服务器通过报文向终端发送DNS服务器被访问的顺序W及DNS服务 器的地址信息时,可W通过将各DNS服务器的地址信息置于报文中的不同位置来体现各DNS 服务器的地址信息对应的被访问的顺序,例如,将第一 DNS服务器对应的地址信息置于报文 中的第一位置,将第二DNS服务器对应的地址信息置于报文中的第二位置,当终端接收到该 报文后,终端可W通过报文中的第一位置和第二位置来确定访问第一 DNS服务器和第二DNS 服务器被访问的顺序。
[0071] 或者,畑CP服务器通过报文向终端发送DNS服务器被访问的顺序W及DNS服务器的 地址信息时,可W通过对各DNS服务器的地址信息增加顺序关系标识,例如,对第一 DNS服务 器对应的地址信息增加第一顺序关系标识,对第二DNS服务器对应的地址信息增加第二顺 序关系标识,当终端接收到该报文后,终端可W通过报文中不同地址信息的顺序关系标识, 来确定第一 DNS服务器和第二DNS服务器被访问的顺序。
[0072] 更进一步的,当终端接收DHCP服务器发送的携带各DNS服务器被访问的顺序W及 各DNS服务器的地址信息后,所述终端记录上述信息,优选的,所述终端可W表格的形式进 行记录,如表2,或表3所示:
[0073]
[0076] 表 3
[0077] 其中,表3为表2的另一种形式体现,当终端需要访问DNS服务器时,所述终端根据 表2或表3中的信息,优先访问第一 DNS服务器,若第一 DNS服务器故障或者负载处理能力不 足时,所述终端访问第二DNS服务器。
[0078] 通过上述实施例可W看出,畑CP服务器向终端发送DNS服务器的地址信息前,会根 据网络中各DNS服务器的状态信息(该状态信息体现各DNS服务器的负载处理能力)确定各 DNS服务器被访问的顺序(即不同DNS服务器被访问的先后顺序,也可W理解为不同DNS服务 器的主备关系),进一步的,当终端接收到DNS服务器被访问的顺序W及DNS服务器的地址信 息后,根据该顺序和地址信息访问对应的DNS服务器。
[0079] 本发明提供了另一种分配DNS服务器的方法,如图4所示,在本实施例中提供了一 种获取DNS服务器对应的状态信息的方法。
[0080] 步骤401,获取各DNS服务器对应的动态经验值,所述动态经验值用于指示与其对 应的DNS服务器的剩余负载处理能力。
[0081] 步骤402,根据所述动态经验值获取各DNS服务器对应的状态信息。
[0082] 在步骤401,本实施例提供一种获取各DNS服务器对应的动态经验值的方法,该方 法为:
[0083] 步骤4011,获取各DNS服务器对应的第Ξ负载值。
[0084] 步骤4012,根据各DNS服务器的剩余负载量W及与其对应的第Ξ负载值,获取各 DNS服务器对应的动态经验值。
[0085] 具体的,获取各DNS服务器对应的第Ξ负载值,所述第Ξ负载值用于指示各DNS月良 务器用于解析域名的资源量,例如,第Ξ负载值可W为步骤1011中获取的DNS服务器的负载 处理量,或者为步骤2011中获取的DNS服务器的预设负载值。
[0086] 在本实施例中,还提供了一种根据各DNS服务器的剩余负载量W及与其对应的第 Ξ负载值,获取各DNS服务器对应的动态经验值的优选方案,具体为将获取的DNS服务器的 剩余负载量与该DNS服务器对应的第Ξ负载值的商作为所述DNS服务器对应的动态经验值。 其中,当第Ξ负载值为DNS服务器的负载处理量时,贝化NS服务器对应的动态经验值为DNS月良 务器的剩余负载量与该DNS服务器的负载处理量的商;当第Ξ负载值为DNS服务器的预设负 载值时,贝化NS服务器对应的动态经验值为DNS服务器的剩余负载量与该DNS服务器的预设 负载值的商。
[0087] 其中,DNS服务器的剩余负载量可通过该DNS服务器的第Ξ负载值W及该DNS服务 器已加载的负载值获取。
[0088] 例如,DNS服务器的剩余负载量为该DNS服务器的预设负载值与该DNS服务器已加 载的负载值的差,或者为该DNS服务器的负载处理量与DNS服务器已加载的负载值的差。
[0089] 其中,DNS服务器已加载的负载值为DHCP服务器记录的将该DNS服务器作为主用 DNS服务器时,将该DNS服务器的地址信息发送给终端的次数,进一步的,DHCP服务器在每次 将该DNS服务器(作为主用DNS服务器)的地址信息发送给终端后,更新自身记录的已加载的 负载值(即发送给终端的次数)用于重新获取DNS服务器已加载的负载值。
[0090] 例如,若DHCP服务器将第一 DNS服务器作为主用DNS服务器时,DHCP服务器将所述 第一 DNS服务器的地址信息分别向4000个终端各发送了 1次,贝化HCP记录的所述第一 DNS服 务器已加载的负载值为4000,若第一 DNS服务器的负载处理量为10000,且对第一 DNS服务器 配置的预设负载值为8000,则第一 DNS服务器的剩余负载量为6000(即第一 DNS服务器的负 载处理量10000与第一 DNS服务器已加载的负载值4000的差),或者第一 DNS服务器的剩余负 载量为4000(即第一 DNS服务器的预设负载值8000与第一 DNS服务器已加载的负载值4000的 差),进一步的,若W第一DNS服务器的剩余负载量为4000为例,则第一DNS服务器对应的动 态经验值为第一 DNS服务器的剩余负载量4000与第一 DNS服务器的预设负载值8000的商,贝U 所述第一DNS服务器对应的动态经验值为50%,根据上述实施例,获取DNS服务器的动态经 验值的公式如下:
[0091] X DNS服务器的动态经验值=X DNS服务器的剩余负载量/X DNS服务器的第Ξ负 载值。
[0092] 其中,X用于表示网络中某一个DNS服务器。
[0093] 需要说明的是,在该公式中可用X DNS服务器的第Ξ负载值可W为X DNS服务器的 预设负载值或者为X DNS服务器的负载处理量。
[0094] 在步骤402中,根据所述动态经验值获取各DNS服务器对应的状态信息,具体为根 据DNS服务器的负载处理量与第一负载值或第二负载值确定的结果再与该DNS服务器的动 态经验值得到该DNS服务器的状态信息,或者根据预设负载值与第一负载值或第二负载值 确定的结果再与该DNS服务器的动态经验值得到该DNS服务器的状态信息。具体公式为: [00M] X DNS服务器的状态信息=(X DNS服务器的负载处理量/第一负载值)蝴DNS服务 器的动态经验值。
[0096] 其中,X用于表示网络中某一个DNS服务器。或者为:
[0097] X DNS服务器的状态信息=(X DNS服务器的负载处理量/第二负载值)蝴DNS服务 器的动态经验值。
[0098] 其中,X用于表示网络中某一个DNS服务器。或者为:
[0099] X DNS服务器的状态信息=(X DNS服务器的预设负载值/第一负载值)*X DNS服务 器的动态经验值。
[0100] 其中,X用于表示网络中某一个DNS服务器。或者为:
[0101] X DNS服务器的状态信息=(X DNS服务器的预设负载值/第二负载值)*X DNS服务 器的动态经验值。
[0102] 其中,X用于表示网络中某一个DNS服务器。
[0103] 为了清楚的对上述方案进行阐述,本申请提供了下述优选实施例,具体为:
[0104] 网络中配置有第一DNS服务器和第二DNS服务器,其中,第一DNS服务器的负载处理 总量为10000,第二DNS服务器的负载处理总量为8000,则第一负载值为18000,并且为第一 DNS服务器配置的预设负载值为8000,为第二DNS服务器配置的预设负载值为6000。
[0105] 若DHCP服务器将第一 DNS服务器作为主用DNS服务器分别发送给4000个终端,则第 一 DNS服务器已加载的负载值为4000,此时若DHCP服务器未将第二DNS服务器作为主用DNS 服务器发送给终端时,则第二DNS服务器已加载的负载值为0,则第一 DNS服务器的动态经验 值为50% (即第一DNS服务器预设负载值8000减第一DNS服务器已加载的负载值4000的差再 与第一 DNS服务器预设负载值8000的商),第二DNS服务器的动态经验值为100%(即第二DNS 服务器预设负载值6000减去第二DNS服务器已加载的负载值0的差再与第二DNS服务器预设 负载值6000的商),
[0106] 进一步的,第一DNS服务器的状态信息为22% (即第一DNS服务器的预设负载值 8000与第一负载值18000的商再与第一 DNS服务器动态经验值50%的积),第二DNS服务器的 状态信息为33% (即第二DNS服务器预设负载值6000与第一负载值18000的商再与第二DNS 服务器动态经验值100%的积)。
[0107] 根据第一DNS服务器的状态信息和第二DNS服务器的状态信息可W看出,虽然第一 DNS服务器的预设负载值大于第二DNS服务器的预设负载值,但是由于考虑了第一 DNS服务 器的动态经验值为50%(即第一 DNS服务器已加载的负载值占第一 DNS服务器的预设负载值 的一半),而第二DNS服务器的动态经验值为100% (即第二DNS服务器未加载负载),反而获 取的第一 DNS服务器的状态信息体现的负载处理能力小于第二DNS服务器的状态信息体现 的负载处理能力,因此根据第一DNS服务器和第二DNS服务器的状态信息确定两个DNS服务 器被访问的顺序为第二DNS服务器优于第一 DNS服务器(即此时第二DNS服务器为主用DNS月良 务器,第一 DNS服务器为备用DNS服务器)。
[0108] 进一步的,畑CP服务器将上述确定DNS服务器被访问的顺序W及DNS服务器的地址 信息发送给终端,W使终端根据接收到的DNS服务器被访问的顺序W及DNS服务器的地址信 息访问对应的DNS服务器。
[0109] 通过上述实施例可W看出,畑CP服务器在确定不同DNS服务器被访问的顺序时(即 不同DNS服务器被访问的先后顺序,也可W理解为不同DNS服务器的主备关系),还可W根据 不同DNS服务器的动态经验值获得不同DNS服务器的状态信息,进而根据不同DNS服务器的 状态信息确定不同DNS服务器被访问的顺序,例如,根据上述实例,通过第一 DNS服务器的预 设负载值和第二DNS服务器的预设负载值分别与第一负载值的商可W得出DNS服务器被访 问的顺序为第一 DNS服务器优先于第二DNS服务器(即初始的第一 DNS服务器的负载处理能 力大于第二DNS服务器的负载处理能力),某一时刻,当引入第一 DNS服务器和第二DNS服务 器的动态经验值时,再次确定的DNS服务器被访问的顺序为第二DNS服务器优于第一DNS服 务器,从而进一步实现了对DNS服务器被访问的顺序进行动态调整,使得终端最先访问的 DNS服务器(可W理解为终端访问的主用DNS服务器)为DNS服务器中负载处理能力最高的 DNS服务器。
[0110] 为了对本申请中记载的技术方案进行详细的阐述,将本申请提供的技术方案与应 用场景结合,如图4所示,具体包括,在网络中存在部口A、部口B和部口C,其中,部口A中有 2000个终端,部口B中有1000个终端,部口C中有500个终端,与上述Ξ个部口中各终端连接 的DHCP服务器用于向各终端分配IP地址,在该网络中,还存在第一DNS服务器和第二DNS月良 务器,其中,从硬件角度考虑第一DNS服务器和/或第二DNS服务器可W集成于DHCP服务器, 也可W为独立的DNS服务器。
[0111] 在组建网络时,配置的第一DNS服务器的负载处理总量为5000,配置的第二DNS月良 务器的负载处理总量为3000,并且进一步配置了第一 DNS服务器的预设负载值为4000,配置 了第二DNS服务器的预设负载值为2000。
[0112] 畑CP服务器获取上述DNS服务器的负载处理总量和预设负载值,并计算第一 DNS月良 务器和第二DNS服务器对应的状态信息,具体为,计算第一负载值,由于第一负载值为第一 DNS服务器的负载处理总量5000与第二DNS服务器的负载处理总量3000的和,因此获取第一 负载值为8000(即5000+3000),获得第一 DNS服务器的预设负载值4000与第一负载值8000的 商为50%,由于目前DHCP服务器尚未将第一DNS服务器作为主用DNS服务器发送给终端,因 此可将第一 DNS服务器的预设负载值4000与第一负载值8000的商为50 %作为第一 DNS服务 器的状态信息,同理获得第二DNS服务器的状态信息为25%,根据第一DNS服务器的状态信 息和第二DNS服务器的状态信息,获得两个DNS服务器被访问的顺序为,第一 DNS服务器的被 访问的顺序优先于第二DNS服务器(即第一 DNS服务器为主用DNS服务器,第二DNS服务器为 备用DNS服务器)
[0113] 某时刻,当部口 A中的2000个终端向D肥P服务器发送报文时(该报文可W是注册报 文),畑CP服务器将第一 DNS服务器的和第二DNS服务器的被访问的顺序W及第一 DNS服务器 和第二DNS服务器的地址信息发送给部口 A中的终端,部口 A中的终端接收到该顺序和地址 信息后,会根据该顺序优先访问第一 DNS服务器。
[0114] 由于D肥P服务器将第一 DNS服务器作为主用DNS服务器发送给2000个终端,即第一 DNS服务器已加载的负载值为2000,因此需重新获取第一DNS服务器的状态信息,重新确定 第一 DNS服务器和第二DNS服务器被访问的顺序。
[0115] 重新获取第一 DNS服务器的状态信息,具体为,获得第一 DNS服务器的动态经验值 为50% (即将第一DNS服务器的预设负载值4000与第一DNS服务器已加载的负载值2000的差 再与第一 DNS服务器的预设负载值的商50%),获取第二DNS服务器的动态经验值为100% (即将第二DNS服务器的预设负载值2000与第二DNS服务器已加载的负载值0的差再与第二 DNS服务器的预设负载值的商100%),并将第一 DNS服务器的预设负载值与第一负载值的商 再与第一DNS服务器的动态经验值的商相乘重新得到第一DNS服务器的状态信息为25%,同 理重新得到第二DNS服务器的状态信息为25%,由于第一DNS服务器的状态信息与第二DNS 服务器的状态信息相同,因此可W任意确定第一 DNS服务器和第二DNS服务器被访问的先后 顺序,例如,假定重新获取DNS服务器被访问的顺序为第一 DNS服务器被访问的顺序优先于 第二DNS服务器。
[0116] 下一时刻,当部口B中的1000个终端向D肥P服务器发送报文时,D肥P服务器将上一 步骤中确定的第一 DNS服务器和第二DNS服务器的被访问的顺序W及第一 DNS服务器和第二 DNS服务器的地址信息发送给部口 B中的终端,部口 B中的终端接收到该顺序和地址信息后, 会根据该顺序优先访问第一 DNS服务器。
[0117]同理,由于畑CP服务器将第一DNS服务器作为主用DNS服务器又发送给了 1000个终 端,即第一DNS服务器已加载的负载值为3000,因此需重新获取第一DNS服务器的状态信息, 重新确定第一 DNS服务器和第二DNS服务器被访问的顺序,重新获取的第一 DNS服务器的状 态信息为12.5%,重新获取的第二DNS服务器的状态信息为25%,根据第一 DNS服务器的状 态信息和第二DNS服务器的状态信息,确定两个DNS服务器被访问的顺序为第二DNS服务器 的被访问的顺序优先于第一 DNS服务器。
[011引下一时刻,当部口C中500个终端向DHCP服务器发送报文时,DHCP服务器将上一步 骤中确定的第一 DNS服务器和第二DNS服务器的被访问的顺序W及第一 DNS服务器和第二 DNS服务器的地址信息发送给部口 C中的终端,部口 C中的终端接收到该顺序和地址信息后, 会根据该顺序关系优先访问第二DNS服务器。
[0119] 需要说明的是,本实施例仅为了对本申请所提供的技术方案进行举例说明,并不 进行任何限定,同时在本实施例中虽然引用了部口,但是若只考虑终端的情况下依然适用 于本申请所提供的技术方案。
[0120] 通过本实施例可W看出,畑CP服务器在确定不同DNS服务器被访问的顺序时(即不 同DNS服务器被访问的先后顺序,也可W理解为不同DNS服务器的主备关系),还可W根据不 同DNS服务器的动态经验值获得不同DNS服务器的剩余负载处理能力,并根据不同DNS服务 器的剩余负载处理能力实现动态确定不同DNS服务器的顺序。
[0121] 基于上述实施例,本发明还提供了另一种获取各DNS服务器对应的动态经验值的 方法,具体为,将DNS服务器的剩余负载量与该DNS服务器对应的第Ξ负载值的商再与该DNS 服务器对应的剩余系统资源值的积来获取该DNS服务器对应的动态经验值
[0122] 其中,获取各DNS服务器的剩余系统资源值的方法可W为DHCP通过与各DNS服务器 建立连接,从各DNS服务器中获取各DNS服务器对应的剩余系统资源值。
[0123] 其中,所述的各DNS服务器对应的剩余系统资源值可W包括各DNS服务器中处理器 的剩余资源值、和/或内存的剩余资源值、和/或硬盘的剩余资源值,具体的,各DNS服务器对 应的剩余系统资源值,可W为各DNS服务器中处理器的剩余资源值、内存的剩余资源值W及 硬盘的剩余资源值Ξ者中的某一个剩余资源值,或者Ξ者中任意两个剩余资源值的积,又 或者Ξ者的剩余资源值的积。
[0124] 例如,第一DNS服务器对应的剩余系统资源值可W包括:第一DNS服务器的处理器 的剩余资源值,或者第一 DNS服务器的内存的剩余资源值,或者第一 DNS服务器的硬盘的剩 余资源值,或者第一 DNS服务器的处理器的剩余资源值与第一 DNS服务器的内存的剩余资源 值的积,或者第一 DNS服务器的处理器的剩余资源值与第一 DNS服务器的硬盘的剩余资源值 的积,或者第一 DNS服务器的内存的剩余资源值与第一 DNS服务器的硬盘的剩余资源值的 积,又或者第一 DNS服务器的处理器的剩余资源值、第一 DNS服务器的内存的剩余资源值W 及第一 DNS服务器的硬盘的剩余资源值Ξ者间的积。
[0125] 通过本实施例可W看出,畑CP服务器在确定不同DNS服务器被访问的顺序时,还考 虑了不同DNS服务器自身的系统资源,并根据不同DNS服务器对应的剩余系统资源值确定不 同DNS服务器被访问的顺序,从而更进一步的实现了对不同DNS服务器被访问的顺序进行动 态调整,进一步使得终端最先访问的DNS服务器为不同DNS服务器中负载处理能力最高的 DNS服务器。
[0126] 基于与上述方法同样的发明构思,本发明实施例还提供一种分配DNS服务器的装 置,应用在DHCP服务器上,或者应用在与DHCP服务器关联的其他服务器上。该分配DNS服务 器的装置可W通过软件实现,也可W通过硬件或者软硬件结合的方式实现。W软件实现为 例,作为一个逻辑意义上的装置,是通过其所在的设备的处理器,读取非易失性存储器中对 应的计算机程序指令形成的。从硬件层面而言,本发明提出的分配DNS服务器的装置所在服 务器为硬件结构,包括处理器、非易失性存储器外,服务器还可W包括其他硬件,如负责处 理报文的转发忍片、网络接口、内存等;从硬件结构上来讲,该服务器还可能是分布式设备, 可能包括多个接口卡,W便在硬件层面进行报文处理的扩展。
[0127] 本发明实施例提供了一种分配DNS服务器的装置,所述装置包括:
[0128] 获取模块,用于获取不同DNS服务器对应的状态信息,其中,获取的状态信息用于 指示与其对应的DNS服务器的负载处理能力。
[0129] 处理模块,用于获取DNS服务器对应的状态信息,其中,获取的状态信息用于指示 与其对应的DNS服务器的负载处理能力。
[0130] 发送模块,将所述DNS服务器被访问的顺序W及DNS服务器的地址信息发送给终 玉山 乂而。
[0131] 在本实施例中,处理模块根据获取模块获取的DNS服务器对应的状态信息,按照一 定规则排序并形成相应的顺序关系,在本例中所述的一定规则为根据DNS服务器对应的状 态信息所体现的DNS服务器的负载处理能力,按照由高到低的顺序进行排序,所述发送模块 将获取的DNS服务器被访问的顺序W及与DNS服务器的地址信息发送给终端,W使终端根据 接收的DNS服务器被访问的顺序W及DNS服务器的地址信息优先访问的DNS服务器的负载处 理能力最局。
[0132] 在本实施例中,所述获取模块,还用于获取各DNS服务器对应的负载处理量,W及 第一负载值,其中,所述第一负载值为各DNS服务器的负载处理总量的和。进一步的,所述获 取模块,还用于根据所述第一负载值W及各DNS服务器对应的负载处理量获取各DNS服务器 对应的状态信息。
[0133] 在另一个实施例中,所述获取模块,还用于获取各DNS服务器对应的预设负载值, W及第二负载值,其中,所述各DNS服务器的预设负载值不大于自身的负载处理量,所述第 二负载值为所述各DNS服务器的预设负载值之和。进一步的,所述获取模块,还用于根据各 DNS服务器的预设负载值W及第一负载值获取各DNS服务器对应的状态信息;或者,所述获 取模块,还用于根据各DNS服务器的预设负载值W及第二负载值获取各DNS服务器对应的状 态?胃息。
[0134] 在另一种实施例中,所述获取模块,还用于获取各DNS服务器对应的动态经验值, 其中,动态经验值用于指示与其对应的DNS服务器的剩余负载处理能力。进一步的,所述获 取模块,还用于根据各DNS服务器的动态经验值获取各DNS服务器的状态信息。
[0135] 其中,所述的动态经验值可W通过各DNS服务器的剩余负载量与各DNS服务器的第 Ξ负载值获取,其中,所述第Ξ负载值用于指示各DNS服务器用于解析域名的资源量,例如, 第Ξ负载值可W为步骤1011中获取的DNS服务器的负载处理量,或者为步骤2011中获取的 DNS服务器的预设负载值。
[0136] 具体的,通过各DNS服务器的剩余负载量与各DNS服务器的第Ξ负载值的商获取, 其中,所述各DNS服务器的剩余负载量为所述各DNS服务器的第Ξ负载值与其已加载的负载 值的差。
[0137] 通过上述实施例可W看出,畑CP服务器在确定DNS服务器被访问的顺序时(即不同 DNS服务器被访问的先后顺序,也可W理解为不同DNS服务器的主备关系),还可W根据DNS 服务器的动态经验值获得DNS服务器的剩余负载处理能力,并根据各DNS服务器的剩余负载 处理能力实现动态确定DNS服务器被访问的顺序,从而进一步实现了对DNS服务器被访问的 顺序进行动态调整,使得终端最先访问的DNS服务器(可W理解为终端访问的主用DNS服务 器)为不同DNS服务器中负载处理能力最高的DNS服务器。
[0138] 在另一个实施例中,所述的动态经验值还可W通过各DNS服务器的剩余系统资源 值获取,贝恪DNS服务器的动态经验值可W通过各DNS服务器的剩余负载量、各DNS服务器的 第Ξ负载值W及各DNS服务器对应的剩余系统资源值获取各DNS服务器的动态经验值。
[0139] 进一步的,所述获取模块,还用于获取各DNS服务器对应的剩余系统资源值。进一 步的,所述获取模块,还用于根据各DNS服务器的剩余负载量与各DNS服务器的第Ξ负载值 的商再与各DNS服务器对应的剩余系统资源值的积获取各DNS服务器的动态经验值。
[0140] 通过本实施例可W看出,畑CP服务器在确定DNS服务器被访问的顺序时,还考虑了 DNS服务器自身的系统资源,并根据DNS服务器对应的剩余系统资源值确定DNS服务器被访 问的顺序,从而更进一步的实现了对DNS服务器被访问的顺序进行动态调整,进一步使得终 端最先访问的DNS服务器为不同DNS服务器中负载处理能力最高的DNS服务器。
[0141] 通过W上的实施方式的描述,本领域的技术人员可W清楚地了解到本发明可借助 软件加必需的通用硬件平台的方式来实现,当然也可W通过硬件,但很多情况下前者是更 佳的实施方式。基于运样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的 部分可软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若 干指令用W使得一台计算机设备(可W是个人计算机,服务器,或者网络设备等)执行本发 明各个实施例所述的方法。本领域技术人员可W理解附图只是一个优选实施例的示意图, 附图中的模块或流程并不一定是实施本发明所必须的。
[0142] 本领域技术人员可W理解实施例中的装置中的模块可W按照实施例描述进行分 布于实施例的装置中,也可W进行相应变化位于不同于本实施例的一个或多个装置中。上 述实施例的模块可W合并为一个模块,也可进一步拆分成多个子模块。上述本发明实施例 序号仅仅为了描述,不代表实施例的优劣。
[0143] W上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领 域的技术人员能思之的变化都应落入本发明的保护范围。
【主权项】
1. 一种分配DNS服务器的方法,其特征在于,所述方法包括: 获取DNS服务器对应的状态信息,其中,获取的状态信息用于指示与其对应的DNS服务 器的负载处理能力; 根据所述状态信息确定DNS服务器被访问的顺序; 将所述DNS服务器被访问的顺序以及DNS服务器的地址信息发送给终端。2. 如权利要求1所述的方法,其特征在于,在所述获取DNS服务器对应的状态信息之前, 包括: 获取各DNS服务器对应的负载处理量; 所述获取DNS服务器对应的状态信息的方法,包括: 获取第一负载值,所述第一负载值为各DNS服务器对应的负载处理量的和; 根据所述第一负载值以及各DNS服务器对应的负载处理量获取各DNS服务器对应的状 态信息。3. 如权利要求2所述的方法,其特征在于,在所述获取DNS服务器对应的状态信息之前, 包括: 获取各DNS服务器对应的预设负载值,其中,所述各DNS服务器的预设负载值不大于自 身的负载处理量; 所述获取DNS服务器对应的状态信息的方法,包括: 根据所述第一负载值以及各DNS服务器对应的预设负载值获取各DNS服务器对应的状 态信息;或者, 获取第二负载值,所述第二负载值为所述各DNS服务器对应的预设负载值的和; 根据所述第二负载值以及各DNS服务器对应的预设负载值获取各DNS服务器对应的状 态信息。4. 如权利要求1至3任一所述的方法,其特征在于,在所述获取DNS服务器对应的状态信 息之前,包括: 获取各DNS服务器对应的动态经验值,所述动态经验值用于指示与其对应的DNS服务器 的剩余负载处理能力; 所述获取各DNS服务器对应的状态信息的方法,包括:根据所述动态经验值获取各DNS 服务器对应的状态信息。5. 如权利要求4所述的方法,其特征在于,所述获取各DNS服务器对应的动态经验值的 方法包括: 获取各DNS服务器对应的第三负载值,所述第三负载值用于指示各DNS服务器用于解析 域名的资源量; 根据各DNS服务器的剩余负载量以及与其对应的第三负载值,获取各DNS服务器对应的 动态经验值。6. -种分配DNS服务器的装置,其特征在于,所述装置包括: 获取模块,用于获取DNS服务器对应的状态信息,其中,获取的状态信息用于指示与其 对应的DNS服务器的负载处理能力; 处理模块,用于根据所述状态信息确定DNS服务器被访问的顺序; 发送模块,将所述DNS服务器被访问的顺序以及DNS服务器的地址信息发送给终端。7. 如权利要求6所述的装置,其特征在于, 所述获取模块,还用于获取各DNS服务器对应的负载处理量, 以及还用于获取第一负载值,所述第一负载值为各DNS服务器的负载处理总量的和, 以及还用于根据所述第一负载值以及各DNS服务器对应的负载处理量获取各DNS服务 器对应的状态信息。8. 如权利要求7所述的装置,其特征在于, 所述获取模块,还用于获取各DNS服务器对应的预设负载值,其中,所述各DNS服务器的 预设负载值不大于自身的负载处理量, 以及还用于根据所述所述第一负载值以及各DNS服务器对应的预设负载值获取各DNS 服务器对应的状态信息;或者 获取第二负载值,所述第二负载值为所述各DNS服务器对应的预设负载值的和,根据所 述第二负载值以及各DNS服务器对应的预设负载值获取各DNS服务器对应的状态信息。9. 如权利要求6至8任一所述的装置,其特征在于, 所述获取模块,还用于获取各DNS服务器对应的动态经验值,所述动态经验值用于指示 与其对应的DNS服务器的剩余负载处理能力, 以及还用于根据所述动态经验值获取各DNS服务器对应的状态信息。10. 如权利要求9所述的装置,其特征在于, 所述获取模块,还用于获取各DNS服务器对应的第三负载值, 以及还用于根据各DNS服务器的剩余负载量以及与其对应的第三负载值,获取各DNS月艮 务器对应的动态经验值。
【文档编号】H04L29/08GK106060131SQ201610361867
【公开日】2016年10月26日
【申请日】2016年5月26日
【发明人】徐燕成, 王伟, 李璇
【申请人】杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1