利用Dnsmasq部署DNS服务
最近工作中遇到要使用不同的DNS来解析不同域名的情况,想起比较小巧的,轻量级的Dnsmasq也许是最合适的。下面就来简单记录下操作的过程。
Dnsmasq工作原理
Dnsmasq提供DNS缓存和DHCP服务、Tftp服务功能。当接受到一个DNS请求时,Dnsmasq首先会查找/etc/hosts这个文件,然后查找/etc/resolv.conf中定义的外部DNS。所以说Dnsmasq是一个很不错的外部DNS中继。
配置Dnsmasq为DNS缓存服务器,同时在/etc/hosts文件中加入本地内网解析,这样一来每当内网机器查询时就会优先查询hosts文件,这就等于将/etc/hosts共享给全内网机器使用,从而解决内网机器互相识别的问题。
安装Dnsmasq
在centos上安装Dnsmasq比较简单,如下所示:
Dnsmasq安装配置Dnsmasq
Dnsmasq的配置文件在/etc/dnsmasq.conf,默认情况下dnsmasq.conf中只开启了最后include项,可以在/etc/dnsmasq.d中自己写任意名字的配置文件。
配置文件说明(摘取部分重要信息说明)
1、定义dnsmasq从哪里获取上游DNS服务器的地址,默认是从/etc/resolv.conf获取。
resolv-file=/etc/resolv.dnsmasq.conf
2、严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。一般需要开启strict-order
strict-order
3、定义dnsmasq监听的地址,默认是监控本机的所有网卡上。局域网内主机若要使用dnsmasq服务时,指定本机的IP地址
listen-address=127.0.0.1
4、设置一个反向解析,即所有的地址都解析到特定dns去解析
address=/19.76.10.in-addr.arpa/10.20.10.10
5、增加一个域名,强制解析到你指定的地址上
address=/double-click.net/127.0.0.1
6、设置dns缓存大小,默认为150条
cache-size=150
7、设置DNS的日志及日志路径
log-queries
log-facility=/usr/log/dnsmasq.log
配置实例
1、配置本地hosts vim /etc/hosts
2、配置上游DNS vim /etc/resolv.dnsmasq.conf
3、本地启用Dnsmasq解析
启用Dnsmasq启动Dnsmasq
service dnsmasq start //启动
netstat -tunlp |grep 53 //查看启动端口
测试Dnsmasq
1、发送http请求:curl -R http://www.baidu.com
2、查看日志
Dnsmasq日志