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服務器的簡單配置已經完成