dnsmasq简介
dnsmasq是一款小巧且方便地用于配置DNS服务器和DHCP服务器的工具,适用于小型网络,它提供了DNS解析功能和可选择的DHCP功能。
dnsmasq可以解决小范围的dns查询问题,如果业务是跨机房、跨地区的话不建议使用dnsmasq做为dns解析服务器。
dnsmasq官网如下:
http://www.thekelleys.org.uk/dnsmasq/doc.html
下载dnsmasq地址:
http://www.thekelleys.org.uk/dnsmasq/
安装dnsmasq
源码安装
tar –xf dnsmasq-2.76.tar.gz
cd dnsmasq-2.76
make install
安装完毕后,查看下dnsmasq的版本。如下:
dnsmasq -v
yum安装
yum –y install dnsmasq (这种安装方式安装的dnsmasq的版本比较低,一般都不是最新的版本)
dnsmasq配置
dnsmasq配置选项比较多,我们可以根据实际需求来进行配置
cp /etc/dnsmasq.conf /etc/dnsmasq.conf.backup
vim /etc/dnsmasq.conf
# resolve-file定义dnsmasq从哪里获取上游DNS服务器的地址,
# 默认是从/etc/resolv.conf获取。
# 在此我们定义的是从/etc/resolv.dnsmasq.conf文件中获得。
resolv-file=/etc/resolv.dnsmasq.conf
# strict-order表示严格按照resolv-file文件中的顺序从上到下进行DNS解析,
# 直到第一个解析成功为止。
strict-order
# listen-address定义dnsmasq监听的地址,默认是监控本机(127.0.0.1)的所有网卡上。
# 如果想让局域网内的其他机器使用dnsmasq解析域名的话,
# 需要添加本机的IP地址(如#192.168.244.199)。
listen-address=192.168.244.199,127.0.0.1
# address自定义域名解析的IP地址,在此已jun.com这个域名为例。
# 注意dnsmasq是支持泛域名解析的,这里配置就是一个典型的泛域名解析实例。
address=/jun.com/192.168.244.199
# address也可以过滤某些网站,比如如果不想让客户端解析iqiyi.com这个域名的话,
# 我们这个把该域名解析到一台不存在的服务器上或者解析到127.0.0.1这个地址。如下:
address=/iqiyi.com/127.0.0.1
# server这行告诉dnsmasq使用DNS服务器进行解析
server=223.5.5.5
# 为了防止DNS污染,我们使用bogus-nxdomain定义DNS解析的服务器。
# 注意:如果在阿里云服务器上配置dnsmasq,一定要启用此项。
bogus-nxdomain=223.5.5.5
客户端测试
在局域网内的其他机器的dns设置为安装有dnsmasq的机器的ip(如:nameserver 192.168.244.199)
nslookup iqiyi.com
nslookup www.iqiyi.com
nslookup www.baidu.com
可以看到 iqiyi.com 和 www.iqiyi.com 都解析到了 192.168.244.199(局域网内安装dnsmasq的机器内网地址)上面,这是因为
我设置了address=/iqiyi.com/192.168.244.199,又dnsmasq支持泛域名解析实例才达到
这一效果。
而www.baidu.com已经解析到公网的地址