DNSmasq是一个轻巧的,容易使用的DNS服务工具,它可以应用在内部网和Internet连接的时候的IP地址NAT转换,也可以用做小型网络的DNS服务。
实验环境:centos 7.8 mininstall 最小化安装
1 安装dnsmasq软件
yum -y install dnsmasq
启动服务,并设置开机自启,
systemctl enable dnsmasq
systemctl start dnsmasq
注意:如果系统安装时选用非最小化安装,系统会已经默认写dnsmasq,为系统默认的虚拟网桥virbr0提供服务,并且53端口已经占用,无法启动,
解决方法:
关闭并删除 virbr0 虚拟网桥
brctl show #查看virbr0网桥
ifconfig virbr0 down #停用virbr0网桥
brctl delbr virbr0 #删除virbr0网桥
# systemctl stop libvirtd.service #停用libvirtd服务
systemctl disable libvirtd.service #禁止libvirtd服务开机自启
2、开放防火墙端口
开放udp tcp 53 端口
查看端口是否开放
firewall-cmd --query-port=53/tcp
firewall-cmd --query-port=53/udp
开放端口
firewall-cmd --add-port=53/tcp --permanent
firewall-cmd --add-port=53/udp --permanent
防火墙重载,配置生效
firewall-cmd --reload
3、修改配置文件 dnsmasq.conf
配置文件中,未注释的内容信息只有这一个,需要修改配置文件
# vim /etc/dnsmasq.conf
主要修改以下几个方面
resolv-file=/etc/resolv.dnsmasq.conf #指定上游dns服务器,因linux自身的resolv.conf只可配置三个DNS服务器,可通过resolv.dnsmasq.conf文件,提供多个上游DNS服务器地址
strict-order #表示严格按照 resolv-file 文件中的顺序从上到下进行 DNS 解析, 直到第一个成功解析成功为止
listen-address=192.168.90.224,127.0.0.1 #设置为公网IP,可以配置多个ip地址
conf-dir=/etc/dnsmasq.d # 我们的解析记录都写到这个目录下 ,此行配置默认已启用
log-queries #记录dns查询日志
log-facility=/var/log/dnsmasq/dnsmasq.log #设置日志文件存储位置
log-async=50 #启用异步log,缓解阻塞,提高性能。默认为5,最大100。
4、新建resolv.dnsmasq.conf ,此文件用来设置上游DNS地址,位置与文件名必须与resolv.dnsmasq.conf中配置的resolv-file一致。
#vim /etc/resolv.dnsmasq.conf
nameserver 114.114.114.114
nameserver 8.8.8.8
nameserver 202.101.172.35
nameserver 202.101.172.47
5、新建域名解析配置文件,此文件名可以任意,但位置必须与resolv.dnsmasq.conf中配置的conf-dir目录一致。
#vim /etc/dnsmasq.d/address.conf
address=/www.test1.com/192.167.150.205 #正向解析
address=/test2.com/192.167.150.206 #泛域名解析
ptr-record=207.150.167.192.in-addr.arpa,www.test3.com #反向解析
ptr-record=208.150.167.192.in-addr.arpa,test3.com #反向解析
6、开机启动与日志查看
systemctl enable dnsmasq #将dnsmasq设置成开机自启
systemctl start dnsmasq #启动dnsmasq服务
journalctl -u dnsmasq #查看dnsmasq是否启动正常
/var/log/dnsmasq.log #查看dnsmasq解析日志
7、 dns 测试
在客户机,将dns服务器修改成dnsmasq服务器ip,然后使用nslookup命令进行域名解析
对内部域名进行正向与反向解析测试
对外部域名进行解析测试
所有解析记录都保存有日志记录,方便查看
cat /var/log/dnsmasq/dnsmasq.log #打开dnsmasq.conf设置的日志文件
至此,dnsmasq作为dns服务器的简单配置已经完成