龙空技术网

使用Dnsmasq搭建DNS服务器

bananaking 147

前言:

现时姐妹们对“centos7dnsmasq”可能比较着重,看官们都需要分析一些“centos7dnsmasq”的相关内容。那么小编同时在网摘上收集了一些有关“centos7dnsmasq””的相关文章,希望兄弟们能喜欢,同学们一起来学习一下吧!

使用Dnsmasq搭建DNS服务器

1、背景

使用公共的114dns进行域名解析所使用的时间太长,所以采用本地搭建dns服务器进行域名解析,公司内部机器访问只需要输入IP即可访问,省去了公共dns解析域名的时间。

图 1 使用本地DNS解析所用的时间几乎为0秒

Dnsmasq

2.1、dnsmasq的原理图

图 2 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域名并点击回车。

图 3 使用windows的powershell测试结果

如上图所知,域名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时才轮转。

}

标签: #centos7dnsmasq #centos7dnsmasq配置

上一篇大数据开发-第1课vmware 网络配置

下一篇没有了