在windows server的格局下,很多企业管理采用AD域架构,其中DNS服务器就是不可或缺的一个重要服务,AD林下发展多域树,而跨域的DNS解析就需要在每个域控制器下面用到DNS转发。
比如目前林下有两个AD域为:A.com和B.com,分别架设在国内分公司和国外分公司,境内外使用VPN专线互连,有一天,发现A.com不能解析到B.com下面的一台主机的域名:SVR.B.com,分析发现问题可能出在VPN专线或者B.com的DNS服务器上,但是和VPN专线的服务商以及B.com的DNS服务器管理都沟通,没有找到原因,或者说对方都推卸说不是己方问题。在这种情况下,只能另想办法。有想过在A.com手工添加静态DNS记录,但是自动的在后面本地域的尾缀。比如我想添加SVR.B.com,结果自动成为:SVR.B.com.A.com. 如此一来,在本地域添加其他域的主机A记录是行不通。
使用修改hosts文件倒是可以解决,但是维护量大,而且hosts文件经常无故失踪,导致解析失败。
那么,想到使用第三方DNS服务器去解决,灵感来自DNS转发器,既然,指向B.com的DNS转发器的IP不能顺利完成解析,那么使用自己搭建的第三方dns服务器去替换它如何呢?于是我在CentOS里面架设了轻量级的dnsmasq,然后将SVR.B.com的条目添加到CentOS的hosts文件里面,dnsmasq收到转发过来的dns解析请求会优先使用hosts文件去解析,这样一来,只维护CentOS的hosts文件即可完成全网的跨域名的解析。