背景介绍
公司有一批测试服务器,之间希望通过自定义的域名进行访问,这样比较方便,但每个人每台机器都维护一个hosts的话会非常麻烦,于是想搭建一个内部的DNS服务器,对自定义的域名进行解析,同时缓存公网的域名。
首先,向导的DNS服务器肯定是bind9,但所谓杀鸡焉用牛刀,并且bind9的配置和后期维护都是比较麻烦的,而内网这种测试环境又经常需要更新配置。
于是,我们采用了dnsmasq,它简直太简单了,只需要下面几步就完成配置了。
1. 安装dnsmasq
$ sudo apt-get install dnsmasq
2. 添加域名解析记录
$ sudo vim /etc/hosts
192.168.10.10 hadoop-master.heylinux.com
192.168.10.11 hadoop-node-1.heylinux.com
3. 配置上级DNS服务器地址
$ sudo vim /etc/resolv.conf
nameserver 61.139.2.69
4. 重启DNS服务
$ sudo /etc/init.d/dnsmasq restart
5. 配置客户端,填入dnsmasq所在地址
$ sudo vim /etc/resolv.conf
nameserver 192.168.10.5
6. 测试内网DNS
$ ping hadoop-master.heylinux.com
7. 测试反解析
$ dig PTR 10.10.168.192.in-addr.arpa.
dnsmasq默认使用了/etc/hosts和/etc/resolv.conf,这样DNS本机也可以共享这些配置,但如果想要分开专门进行维护的话,可以在/etc/dnsmasq.conf中指定。
dnsmasq默认还集成了DHCP与TFTP服务器,默认如果不配置的话服务不会启动。
dnsmasq的优点在于快捷方便并易于维护,如果想实现比如多IP轮询,根据IP源做智能解析等高级功能,毫无疑问,安心上bind9吧。