试用 dnsmasq
2015-01-09 by dongnan
简介
DNSmasq
是一个小巧且方便地用于配置DNS
和DHCP
的工具,适用于小型网络,它提供了DNS
功能和可选择的DHCP
功能。
它服务那些只在本地适用的域名,这些域名是不会在全球的DNS
服务器中出现的。
DHCP服务器和DNS服务器结合,并且允许DHCP
分配的地址能在DNS
中正常解析,而这些DHCP
分配的地址和相关命令可以配置到每台主机中,
也可以配置到一台核心设备中(比如路由器),DNSmasq
支持静态和动态两种DHCP
配置方式。
环境
操作系统: CentOS 6.6 amd64
安装
# 适用 CentOS/RHEL
yum install dnsmasq
配置
# 备份配置文件
cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
# 编辑配置文件
vim /etc/dnsmasq.conf
# 找到 "resolv-file=" 更改为如下:
resolv-file=/etc/resolv.dnsmasq.conf
# 创建配置文件
cp /etc/resolv.conf /etc/resolv.dnsmasq.conf
# DNS地址
echo "nameserver 127.0.0.1" > /etc/resolv.conf
启动服务
/etc/init.d/dnsmasq start
chkconfig dnsmasq on
参数
配置文件大部分参数默认即可:
isten-address
,监听地址默认是127.0.0.1
cache-size
,缓存解析条数,默认是150
条strict-order
,按照/etc/resolv.conf
中nameserver
的顺序依次使用,默认时dnsmasq
会随机的调用
验证
日志
tail /var/log/messages
Oct 27 16:28:44 bbs dnsmasq[56527]: started, version 2.48 cachesize 150
Oct 27 16:28:44 bbs dnsmasq[56527]: compile time options: IPv6 GNU-getopt DBus no-I18N DHCP TFTP "--bind-interfaces with SO_BINDTODEVICE"
Oct 27 16:28:44 bbs dnsmasq[56527]: reading /etc/resolv.dnsmasq.conf
Oct 27 16:28:44 bbs dnsmasq[56527]: using nameserver 8.8.8.8#53
Oct 27 16:28:44 bbs dnsmasq[56527]: using nameserver 8.8.4.4#53
Oct 27 16:28:44 bbs dnsmasq[56527]: read /etc/hosts - 3 addresses
测试解析 126.com
域名
dig 126.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> 126.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36934
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;126.com. IN A
;; ANSWER SECTION:
126.com. 6978 IN A 220.181.12.218
126.com. 6978 IN A 123.125.50.22
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Oct 27 16:31:57 2014
;; MSG SIZE rcvd: 57
配置dhcp
目标
使用 dnsmasq
充当 dhcp
服务器,为局域网内的主机分配IP
地址。
步骤
编辑配置文件
vim /etc/dnsmasq.conf
内容类似如下
listen-address=127.0.0.1,192.168.200.254 # 监听地址
dhcp-range=192.168.200.100,192.168.200.220,12h # 分配IP范围,12h 有效期
dhcp-host=c4:54:44:ce:53:XX,192.168.200.162,ywwd # 为Mac地址分配固定IP,ywwd主机名
dhcp-option=3,192.168.200.254 # 网关地址
domain=oa.ywwd.net # 可选,私有域名
重启服务
/etc/init.d/dnsmasq restart
验证
已经分配了 27
个IP地址。
wc -l /var/lib/dnsmasq/dnsmasq.leases
27 /var/lib/dnsmasq/dnsmasq.leases
注意,dnsmasq.leases
文件,记录租期、mac、ip、主机名等信息。
私有域名
目标
在办公室内部局域网络,为测试环境设置一个域名(非公网解析)。
条件
测试时指定 dns
服务器为 dnsmasq
服务器,也可以配合 iptables
可以实现dns
劫持。
步骤
# 编辑配置文件
vim /etc/dnsmasq.conf
# 添加如下内容
# 20151125 测试
address=/dongnan.ywwd.net/192.168.100.15
重启服务
/etc/init.d/dnsmasq restart
验证
dig @192.168.150.250 dongnan.ywwd.net
#...省略