前言:
现时姐妹们对“centos7dnsmasq”可能比较着重,看官们都需要分析一些“centos7dnsmasq”的相关内容。那么小编同时在网摘上收集了一些有关“centos7dnsmasq””的相关文章,希望兄弟们能喜欢,同学们一起来学习一下吧!使用Dnsmasq搭建DNS服务器
1、背景
使用公共的114dns进行域名解析所使用的时间太长,所以采用本地搭建dns服务器进行域名解析,公司内部机器访问只需要输入IP即可访问,省去了公共dns解析域名的时间。
Dnsmasq
2.1、dnsmasq的原理图
客户机访问service时需要DNS进行域名解析,于是先访问dnsmasq,dnsmasq的机制是先检索本地的hosts如果没有解析记录的话就会去访问dnsmasq.d/*.conf文件,若还是没有那么就会去访问resolv-file的上游DNS解析服务器,也就是其他的dns服务器。
例如,我去访问,那么dnsmasq首先会检索hosts里面有没有这个记录,若没有那么就开始检索dnsmasq.d/*.conf文件,若还是没有,那么会去访问resolv-file的上游DNS解析服务器,其他的dns服务器里面有这条记录,那么dnsmasq就会解析出的ip地址。
2.2、dnsmasq的搭建方法
(1)环境采用centos7.4。
(2)使用yum install -y dnsmasq。
(3)然后修改配置文件vim /etc/dnsmasq.conf 。
(4)在文件的最下面添加:
port=53 #dnsmasq使用53号端口。
cache-size=1000 #缓存解析记录1000条。
log-queries #日志显示每一条的解析记录。
log-facility=/var/log/dnsmasq.log #log日志的所在位置。
conf-dir=/etc/dnsmasq.d #dnsmasq.d/*.conf文件的绝对路径
addn-hosts=/etc/hosts #添加额外读取的hosts文件。
resolv-file=/etc/dnsmasq-resolv.conf #定义dnsmasq从哪里获取上游DNS服务器的地址。
(5)复制系统的DNS服务配置为dnsmasq的上游DNS服务器地址,
cp /etc/resolv.conf /etc/dnsmasq-resolv.conf。
编写pan_jncsy_net.conf配置文件:
address=/xxx.xxx.com/192.168.10.109 #正向解析,xxx.xxx.com解析为192.168.10.109。
ptr-record=192.168.10.109.in-addr.arpa,xxx.xxx.com #ptr反向解析,将192.168.10.109解析为pan.jncsy.net。
(7)编辑系统的hosts文件,添加解析记录,vim /etc/hosts,在最下面添加一条192.168.10.109 xxx.xxx.com。
(8)关闭firewalld,systemctl stop firewalld。
(9)启动dnsmasq,systemctl start dnsmasq,并设置开机自启,systemctl enable dnsmasq。
以上,搭建完毕,开始测试。
2.3、dnsmasq的测试
Win+r后输入cmd打开windows的cmd命令行模拟客户机,并输入nslookup进入解析模式。
输入server 192.168.119.128切换dns解析服务器,然后输入xxx.xxx.com域名并点击回车。
如上图所知,域名xxx.xxx.com经过dns服务器192.168.119.128的解析返回了与域名对应的IP,dns服务器搭建成功。
Dnsmasq的后期维护
3.1、添加解析记录
首先,在hosts里面添加记录,格式为IP空格域名。
其次,编写dnsmasq.d/*.conf的配置文件,格式为
address=/域名/IP
ptr-record=IP.in-addr.arpa,域名
最后,重启dnsmasq,systemctl restart dnsmasq。
3.2、配置dnsmasq的日志轮转
由于打开了dnsmasq的日志功能,而且每一条解析都会产生一条记录,经观察,log文件一天能写8M左右,所以配置日志轮转防止系统因存储不足而崩溃,logrotate.d下面的dnsmasq配置如下:
/var/log/dnsmasq.log {
daily #指定转储周期为每天。
copytruncate #用于还在打开中的日志文件,把当前日志备份并截断。
missingok #日志轮转期间,任何错误都将被忽略。
rotate 30 #保留30天。
compress #通过gzio压缩转储旧的日志。
notifempty #如果是空文件的话,不转储。
dateext #日志轮转时会在文件后面添加时间。
size 200M #日志到达200M时才轮转。
}