Dnsmasq提供 DNS 缓存和 DHCP 服务功能。作为域名解析服务器(DNS),dnsmasq可以通过缓存 DNS 请求来提高对访问过的网址的连接速度。作为DHCP 服务器,dnsmasq可以用于为局域网电脑分配内网ip地址和提供路由。DNS和DHCP两个功能可以同时或分别单独实现。dnsmasq轻量且易配置,适用于个人用户或少于50台主机的网络。此外它还自带了一个PXE服务器。
#安装 yuminstalldnsmasq-y
#编辑配置文件/etc/dnsmasq.conf [root@nodednsmasq.d]#grep-Ev"^$|^[#;]"/etc/dnsmasq.conf listen-address=10.0.40.246,127.0.0.1 cache-size=10000 conf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig
默认会从/etc/hosts,/etc/resolv.conf读取文件。
/etc/hosts 会读取到本地域名配置文件(不支持泛域名)
/etc/resolv.conf 会读取上游DNS配置文件,如果读取不到/etc/hosts的地址解析,就会转发给resolv.conf进行解析地址
如果你想使用泛指域名的话,可以在/etc/dnsmasq.d编辑一个配置文件
[root@nodednsmasq.d]#cat/etc/dnsmasq.d/address.conf address=/xxxlocal.com/10.0.40.247
下面是网上找到的一个例子,仅作参考:
address=/www.taobao.com/127.0.0.1 #正向解析 ptr-record=127.0.0.1.in-addr.arpa,www.taobao.com#反向解析(可选) address=/baidu.com/127.0.0.1#泛域名解析
最后可选项:
配置日志轮询
#配置日志轮转,编辑/etc/logrotate.d/dnsmasq /var/log/dnsmasq.log{ daily copytruncate missingok rotate30 compress notifempty dateext size200M }
重启服务
命令:
systemctlenablednsmasq systemctlstartdnsmasq systemctlrestartdnsmasq #查看dnsmasq是否启动正常,查看系统日志: journalctl-udnsmasq
测试dns缓存,要测试查询速度,请访问一个 dnsmasq 启动后没有访问过的网站,执行
[root@node~]#digarchlinux.org|grep"Querytime" ;;Querytime:212msec [root@node~]#digarchlinux.org|grep"Querytime" ;;Querytime:2msec
再次运行命令,因为使用了缓存,查询时间应该大大缩短。100倍
参考:
https://wiki.archlinux.org/index.PHP/Dnsmasq_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
http://www.cnblogs.com/wsl222000/p/5981299.html