DNSmasq配置与使用
1、什么是DNSmasq?
这里用轻量的Dnsmasq服务器来实现内网DNS服务器搭建。Dnsmasq 是提供 DNS 缓存和 DHCP 服务功能。作为域名解析服务器(DNS),dnsmasq可以通过缓存 DNS 请求来提高对访问过的网址的连接速度。作为DHCP 服务器,dnsmasq 可以用于为局域网电脑分配内网ip地址和提供路由。DNS和DHCP两个功能可以同时或分别单独实现。dnsmasq轻量且易配置,适用于个人用户或少于50台主机的网络。此外它还自带了一个 PXE 服务器。
2、解析流程及参数说明
a.查询流程及优先级
先查找hosts文件,再查找/etc/dnsmasq.d/*.conf,之后查找/etc/dnsmasq.conf。
是否查找hosts,还能通过no-hosts来定义,no-hosts表示不查找hosts文件。
因此,如果你想让dnsmasq本身提供解析服务,且无需去上游DNS查询,或者说你要做任意域名的DNS解析,就可以将记录写到上面任意一个文件,conf的语法形如:address=/test.com/192.168.1.1,hosts则遵循hosts文件的语法:192.168.1.1 test.com。
b.常用参数说明
参数 |
说明 |
---|---|
|
定义dnsmasq从哪里获取上游DNS服务器的地址, 默认从/etc/resolv.conf获取。 |
|
表示严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。 |
|
定义dnsmasq监听的地址,默认是监控本机的所有网卡上。 |
|
启用泛域名解析,即自定义解析a记录,例如:address=/long.com/192.168.115.10 访问long.com时的所有域名都会被解析成192.168.115.10 |
|
对于任何被解析到此 IP 的域名,将响应 NXDOMAIN 使其解析失效,可以多次指定 通常用于对于访问不存在的域名,禁止其跳转到运营商的广告站点 |
|
指定使用哪个DNS服务器进行解析,对于不同的网站可以使用不同的域名对应解析。 例如:server=/google.com/8.8.8.8 #表示对于google的服务,使用谷歌的DNS解析。 |
|
直接查询上游DNS,忽略hosts文件。 |
|
不做上游DNS查询。 |
|
设置缓存域名的数量,默认150,硬限制为1000。 |
|
记录查询请求,并通过log-facility指定记录日志。 |
3、DNSmasq使用经验
安装DNSmasq最好是两台,配置想同,在客户端/etc/resolv.conf配置这两台DNS的nameserver,这样当一台DNS故障时可以通过另外一台来解析,避免单点故障。
4、DNSmasq部署与配置
安装
# yum -y install dnsmasq
启动
systemctl start dnsmasq # 启动
systemctl stop dnsmasq # 关闭
systemctl restart dnsmasq # 重启
systemctl enable dnsmasq # 设置开机启动
配置示例
server=/www.zw-e3m3-sg001-w.com/10.1.12.200 server=/www.zw-e3m3-sg001-r.com/10.1.12.200 server=/www.zw-e3m3-sg002-w.com/10.1.12.203 server=/www.zw-e3m3-sg002-r.com/10.1.12.203 server=/www.zw-e3m3-sg003-w.com/10.1.13.200 server=/www.zw-e3m3-sg003-r.com/10.1.13.200