dnsmasq搭建文档
一.生产环境域名解析问题
之前生产环境设备较少,是通过维护master(192.168.1.1)设备的hosts文件实现的。每次新增设备后,需要在master的hosts文件中新增ip和主机名,再将master的hosts文件批量拷贝到生产所有已部署设备和新增设备。设备少时维护比较简单,随时设备越来越多,维护起来变得很繁琐,批量拷贝也非常消耗精力。
为了减轻维护成本,和提高维护效率,在生产环境搭建一台dns服务器非常有必要。
进过筛选,dnsmasq这个轻量级的dns服务器,具有开源,搭建简单,维护成本低的优点,符合生产环境需求。
二.安装步骤
1.安装包准备
官方文档
http://www.thekelleys.org.uk/dnsmasq/doc.html
下载地址
http://www.thekelleys.org.uk/dnsmasq/
2.选择服务器
服务器最好专门做dns服务。不要和其他业务设备共用,避免重启设备。
3.安装
3.1解压缩安装包,安装
#dnsmasq需要gcc支持 rpm –qa|grep gcc tar zxvf dnsmasq-2.70.tar.gz cd dnsmasq-2.70 make && make install
3.2配置
vim /etc/dnsmasq.conf no-hosts #不加载本地的/etc/hosts文件 local-ttl=3600 #本地缓存时间,通常不要求缓存本地,这样更改hosts文件后即使生效 cache-size=1000000 #最大缓存条数 dns-forward-max=1000000 listen-address=127.0.0.1,192.168.1.1 #如果想要这台服务器做解析,就要填上自己的地址,并且填上127.0.0.1的地址 resolv-file=/etc/resolv.dnsmasq.conf #这个文件是可以自定义的,我就跟随大流,直接复制了一份resolv.conf改了名称就用了 all-servers #这条语句的意思就是如果本地没查询到,则想我们的resolv.dnsmasq.conf文件中所有的DNS查询,谁查到的快就用谁的 log-queries #开启日志选项 log-facility=/var/log/dnsmasq/dnsmasq.log log-async=100 #异步log,缓解阻塞,提高性能。默认为5,最大为100 conf-dir=/etc/dnsmasq.d #这条应该是最后一句,它的作用其实就是说明该目录下的所有.conf文件都是要做解析的
#配置上级dns地址,用户访问外网使用,生产环境不能访问外网,该步骤可以不做 cp /etc/resolv.conf /etc/resolv.dnsmasq.conf vim /etc/resolv.dnsmasq.conf nameserver 114.114.114.114 #创建域名解析记录。格式为address=/主机名称/ip地址 vim /etc/dnsmasq.d/hosts.conf address=/host-a/192.168.1.1 address=/host-b/192.168.1.2 address=/host-c/192.168.1.3 address=/host-d/192.168.1.4
3.3启动服务
mkdir /var/log/dnsmasq/ service dnsmasq start
3.4设置服务为开机启动
chkconfig –level 23456 dnsmasq on
3.5测试域名解析
vim /etc/resolv.conf namesever 192.168.1.1 ping host-c #通过ping可以看到host-c的ip地址
三.维护
在/etc/dnsmasq.d/目录按设备类别新建conf文件,便于维护。
kafka.conf 存放kafka相关设备
vim /etc/dnsmasq.d/kafka.conf address=/kafka-a/192.168.1.5 address=/kafka-b/192.168.1.6 address=/kafka-c/192.168.1.7 address=/kafka-d/192.168.1.8
elastic.conf 存放elastic相关设备
……和kafka配置类似
hadoop.conf 存放hadoop相关设备
……和kafka配置类似
tomcat.conf 存放tomcat相关设备
……和kafka配置类似