三· DNS代理的场景配置指导 DNS代理并不是万金油在部分环境或需求的情况下,才需要配置DNS代理来提升访问体验实现客户需求。其他时候的配置容易产生画蛇添足的反效果。现在对常见的使用场景需求总结如下,并提出相关的设置指导。 1、 出口单运营商,该运营商有多条线路 因为运营商的线路带宽架构差异中小型互联网公司的网络出口常常有PPPOE的拨号线路与业务发布的固定IP线路共存的情况。多条线路的丢包延迟等线路质量不尽相同。此时为了兼顾上网体验与业务的发布调度,客户会使用我司AD设备在出口,并承担出站链路负载的功能。 【需求目的】: 减少域名解析时延;消除本地运营商DNS服务器不稳定的造成的影响;控制域名解析结果或实现内网域名解析。 【配置指导一】: 配置优先使用本地的DNS服务器进行域名解析,以期望匹配服务端的智能DNS功能被调度到最近的数据中心,并通过缓存的方式减少本地运营商localDNS不稳定的情况造成的DNS无法返回解析结果,在没有缓存的情况下使用低优先级的公共DNS完成解析。 ① 链路dns服务器配置多条并设置为优先级,具体优先级为本地运营商DNS>公共DNS。 [img=576,206][/img] ② 开启监视域名的健康检查,针对多个常用域名进行监视,以检查DNS服务器的健康性 [img=260,92][/img] ③ 选择策略使用【优先级】,优先使用本地运营商的dns服务器进行解析,在本地dns服务器故障额度情况下使用公共dns服务器进行解析 [img=543,63][/img] ④ 若要控制域名解析结果或实现内网域名解析。按需配置优先代理策略与内网dns记录 [img=502,47][/img] ⑤ 开启为dns缓存以减少dns解析的延迟,无特殊要求的情况下缓存时间保持为默认7200秒即2小时 ⑥ 会话保持使用默认的开启即可, ⑦ 并发查询不建议开启。开启并发查询会造成dns的选择策略失效 ⑧ 链路繁忙保护不建议开启,因为单条运营商无繁忙保护的意义 ⑨ Dns64功能根据ipv6需求按需开启。 【配置指导二】: 若本地运营商未提供DNS服务器或本地运营商DNS响应时延较高以及本地运营商DNS服务器稳定性较低,可以全部使用公共DNS服务器进行DNS解析。在此环境下多个公共DNS服务器的请求的选择方式可以不做关注,选择策略使用可以使用任意的的选择策略。 [img=543,63][/img] 当此时与前述的配置存在不同的是在高级配置中需要修改 ① 并发查询建议开启。在当前多个平等的DNS服务器的情况下可以并发查询多个服务器,并以回复最快的结果作为最终结果回复给客户端,以加快解析的速度 [img=464,61][/img] 2、 多运营商多线路 在AD的常见客户使用场景中,客户有多条外网运营商线路。每条线路属于不同的运营商或相同的运营商,因为线路质量与资源访问情况不尽相同,此时AD作为链路负载设备,为了减少跨运营商造成的链路损耗及部分域名在只能在指定的运营商中解析的问题,需要使用访问有较强链路负载与DNS代理需求。在此环境下一般需要开启DNS代理功能提升相关访问情况 【需求目的】: 减少运营商与出口线路错位造成的延迟和解析失败,通过分配对应的Local DNS协助对诸如百度 新浪 阿里 等存在多运营商CDN的网站寻找到就近的CDN进行访问,以期更多的获取到带宽大的线路目的IP地址并在基于ISP的智能路由上实现就近的访问在提升速度的情况下合理的分配带宽。 【配置指导】: 对应当前的需求情况,应当为每条线路配置对应的local DNS服务器,服务器权重与与带宽成正比,并在所有线路下配置公共DNS作为保底保底DNS的权重需要远低于正常的线路的DNS,通过上述配置实现多级或多优先级的DNS服务器群组,上网带宽高的权重高,让更多的DNS请求从带宽大的线路发出。为了避免出现非最优的DNS记录被缓存,不建议开启缓存或缩短缓存时间。在多线路的情况下常常会因为公网访问情况的不均衡造成链路不均所以建议开启链路繁忙保护。具体配置如下。 ① 链路dns服务器配置多条并设置为优先级,具体优先级为按带宽权重的本地运营商localDNS+低权重的公共DNS。需要注意的是公共DNS需要配置在全部WAN接口上,否则会因为DNS定制路由造成某个公共DNS只从某条线路发出访问影响调度 [img=576,155][/img] [img=576,135][/img] ② 开启监视域名的健康检查,针对多个常用域名进行监视,以检查DNS服务器的健康性 [img=260,92][/img] ③ 选择策略使用【优先级】、【加权最小流量】或【加权轮询】的调度算法,上述的调度算法均能使得其优先使用大带宽线路的运营商Local DNS服务器进行解析,并在本地dns服务器故障的情况下使用公共dns服务器进行解析。但是上述几种算法的使用时权值有相应变化 【加权轮询】和【优先级类似】:在高权重的Local DNS能完成全部DNS解析的情况下可以使用优先级,若高权重的DNS服务器仅能解析自己运营商的域名而不能完成对其他运营商的结果解析时建议换用轮询的选择策略,最大限度的保障首个DNS请求就能返回解析结果而无需再次请求。 【加权最小流量】的方式在前文中的描述中可以看出,目的是为了将DNS的请求方式通过动态的调度算法,使其能更好的拟合权重的分配方式,因为DNS解析结果的不可控,动态的方式能更好的对流量整形,相应的也更容易受到影响 上述的选择策略在实际环境中并无好坏之分,可以通过尝试性的配置与观察,不断修正找到合适的调度方式。 [img=576,170][/img] ④ 若要控制域名解析结果或实现内网域名解析。按需配置优先代理策略与内网dns记录 [img=502,47][/img] ⑤ 为了DNS的分配作用能更好的发挥效果,不建议开启为dns缓存,Local DNS质量过差确实需要开启时,因为浏览器、操作系统等多级缓存的存在,AD上配置缓存时间建议控制在30分钟内 ⑥ 会话保持使用默认的开启即可, ⑦ 并发查询不建议开启。开启并发查询会造成dns的选择策略失效 ⑧ 链路繁忙保护建议开启, 作为最后保底帮助修正DNS解析的线路实现多运营商的流量整形。 [img=576,118][/img] ⑨ Dns64功能根据ipv6需求按需开启。 3、 多运营商,且存在特殊线路(某公司网、专网等) 在政府、教育等客户使用场景中,除了场景2的多运营商多线路之外往往会有一条或者多条的特殊线路,在此环境下的配置中正常的互联网线路直接沿用场景2的配置即可,但对于特殊线路需要做单独的处理。若专线DNS就解析能力与普通DNS服务器并无相关差别,可归纳到场景2中,作为一个低权重的线路进行DNS的解析配置。 【需求目的】: 在场景2的前提下,需要对特殊的域名使用指定的DNS解析,甚至还存在限制发起解析的DNS源地址。这些专有线路指定的DNS服务器往往只了解特定的部分地址。 【配置指导】: 议对于这些DNS域名的解析需要使用前置策略,并创建对应的域名集,通过前置策略的引用实现特定域名的解析。同时这些DNS服务器因为特殊解析的原因,并不适用于通用的健康检查策略前置策略需要进行强制的调度,故在场景2的基础上修改配置如下 ① 链路dns服务器配置多条并设置为优先级,具体优先级及DNS服务器配置为按带宽分配权重的本地运营商local DNS+低权重的公共DNS+权重为1的的特殊DNS服务器 [img=576,155][/img] ② 因为特殊DNS服务器几乎无法完成通用DNS的解析或专线带宽稀少不事宜将正常的域名解析请求发送到专线的DNS服务器上,选择策略建议使用【优先级】的方式,方案2所述的【加权最小流量】或【加权轮询】的调度算法仅在专线的DNS服务器能完成大多数常用域名解析,且专线带宽足够的情况下使用。 [img=576,55][/img] ③ 如上文所述,为了实现特殊域名的解析,需要开启优先代理策略,并在优先代理策略中进行配置 [img=541,53][/img] ④ 因为优先代理策略中的DNS服务器在通用的健康检查中长期处于故障状态,且部分优先代理的域名只能由此处配置中的DNS服务器完成解析,故而对链路的流量状态及健康检查的结果并不需要关注,在优先代理策略处做一下的配置。禁用繁忙保护,并将失效动作设置为强制调度即可实现哪怕列表中的线路繁忙或DNS服务器在常规健康检查中失效,也正常的进行进行DNS解析的调度。
以上是常见场景下DNS代理的通用配置,基本涵盖了常见的场景,其他特殊场景可在上述场景下变通进行配置。
本系列历史帖子 |