ATS的DNS配置指南
Apache Traffic Server由于主要面向大规模的网站和ISP等服务对象,它所面向的主要场景都极其复杂,而ATS在各种使用场景中,都非常依赖一套完整高效的DNS系统。基于众所周知的历史原因,ATS在dns方面的文档说明资料几乎没有,仅有的官方文档里甚至对最基础的一些dns配置选项都语焉不详,文档的缺乏极大困扰着新老用户用户。在这里,我们尝试对DNS相关的文档以及配置进行详细的说明,并对其他相关的技术方案给予指导,希望成为目前ATS对DNS系统配置的一个实用指南。 ATS的dns使用思想 在ATS中,DNS是一个很重要的模块。我们都知道ATS是一个异步事件编程框架,而传统的DNS解析库形式的如bind等,在异步多线程事件框架下均有很大的局限性。为达成ATS的高效能,在设计之初ATS设计者就考虑到将DNS的解析、缓存做成一个基础的核心模块,并且充分考虑到极大集群模式下的工作方式。同时,由于ATS面向的用户域名规模、复杂度都是很大的,ATS系统设计者推荐使用合理的DNS系统来进行回源管理控制,如remap或parent的控制等。从而与其他基于hostname、domain的控制机制连成整体。 ATS对DNS系统依赖有多重呢?简单的说,如果没有个合理的DNS系统配合,ATS可能都没法工作。 ATS的dns配置项目 要了解ATS的DNS系统,我们首先需要了解ATS的DNS主要功能,ATS的DNS系统,在核心里被切分为两部分,分别是dns解析部分和dns缓存部分。在dns解析部分,又派生出了SplitDNS这样一个单独的功能,对SplitDNS的使用,我们通过独立的文档予以说明,本文仅予概要介绍。 resolver解析 ATS的解析服务,可以看作是类似bind实现的libresolver功能,通常的配置涉及到超时时间、重试次数、以及SplitDNS特殊功能等。 参数 参数类型 默认值 生效模式 格式 proxy.config.dns.lookup_timeout RECD_INT 20 RECU_DYNAMIC proxy.config.dns.retries RECD_INT 5 RECU_DYNAMIC [0-9] proxy.config.dns.search_default_domains RECD_INT 0 RECU_DYNAMIC [0-1] proxy.config.dns.failover_number RECD_INT 5 RECU_DYNAMIC proxy.config.dns.failover_period RECD_INT 60 RECU_DYNAMIC proxy.config.dns.max_dns_in_flight RECD_INT 2048 RECU_DYNAMIC proxy.config.dns.validate_query_name RECD_INT 0 RECU_DYNAMIC [0-1] proxy.