搭建dnsmasq

Posted lw84

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建dnsmasq相关的知识,希望对你有一定的参考价值。

dnsmasq原理 :

  dnsmasq提供DNS缓存和DHCP服务、Tftp服务功能。

  作为域名解析服务器,dnsmasq可以通过缓存DNS请求来提供对访问过的网址的的连接速度;

  作为DHCP服务器,dnsmasq可以用于为局域网电脑分配内网IP地址和提供路由;

  DNS和DHCP两个功能可以同时或分别单独实现,此处只做DNS的配置;

  当接受到一个DNS请求时,Dnsmasq首先会查找/etc/hosts这个文件,然后查找/etc/resolv.conf中定义的外部DNS。所以说Dnsmasq是一个很不错的外部DNS中继。

       配置dnsmasq为DNS缓存服务器,同时在/etc/hosts文件中加入本地内网解析,这样一来每当内网机器查询时就会优先查询hosts文件,这就等于将/etc/hosts共享给全内网机器使用,从而解决内网机器互相识别的问题。

安装:

yum install -y dnsmasq
firewall-cmd --zone=public --add-service=dns --per
firewall-cmd reload
systemctl enable dnsmasq

配置:

cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
[root@zabbix ~]# vim /etc/dnsmasq.conf 

##侦听端口
port=53
##服务启动用户及用户组
#user=nobody
#group=nobody
##业务侦听地址 - interface 选项和 listen-address 选项可以同时使用
listen-address=192.168.16.15,127.0.0.1
##不加载本地的 /etc/hosts 文件
no-hosts
##添加读取额外的 hosts 文件路径,可以多次指定。如果指定为目录,则读取目录中的所有文件。
addn-hosts=/etc/dnsmasq.hosts
##读取目录中的所有文件,文件更新将自动读取
#hostsdir=/data/dnsmasq/dnsmasq.d
##记录dns查询日志,如果指定 log-queries=extra 那么在每行开始处都有额外的日志信息。
log-queries
##设置日志记录器
log-facility=/data/dnsmasq/log/dnsmasq.log
##异步log,缓解阻塞,提高性能。默认为5,最大100。
log-async=50
##指定 EDNS.0 UDP 包的最大尺寸,默认为 RFC5625 推荐的 edns-packet-max=4096
edns-packet-max=4096
##指定接口
#interface=ens33
##指定不提供 DHCP 或 TFTP 服务的接口,仅提供 DNS 服务。
#no-dhcp-interface=ens33
##指定 resolv-file 文件路径(上游DNS服务器),默认/etc/resolv.dnsmasq
resolv-file=/etc/resolv.dnsmasq.conf
##严格按照resolv.conf中的顺序进行查找
strict-order
##重启后清空缓存
clear-on-reload
##完整的域名才向上游服务器查找,如果仅仅是主机名仅查找hosts文件
domain-needed
##缓存条数,默认为150条,cache-size=0 禁用缓存。
cache-size=1000
##不缓存未知域名缓存,默认情况下dnsmasq缓存未知域名并直接返回为客户端。
no-negcache
##指定DNS同属查询转发数量
dns-forward-max=1000

更改相关配置:

# 创建相关配置文件及文件夹
mkdir -p /data/dnsmasq/{dnsmasq.d,log}
touch /etc/dnsmasq/{hosts,resolv.dnsmasq.conf}

[root@zabbix ~]# vim /etc/resolv.conf
# Generated by NetworkManager
#search 8.8.8.8
#nameserver 114.114.114.114
nameserver 127.0.0.1

# 创建/etc/resolv.dnsmasq.conf文件并添加上游dns服务器地址
[root@zabbix ~]# vim /etc/resolv.dnsmasq.conf
nameserver 223.5.5.5
nameserver 223.6.6.6
nameserver 114.114.114.114
nameserver 114.114.115.115

# 创建dnsmasq.hosts文件,修改addn-hosts指定hosts记录文件,需重启dnsmasq
[root@zabbix ~]# vim /etc/dnsmasq.hosts
192.168.16.15   www.lw.com
192.168.16.16   www.lw1.com
192.168.16.17   www.lw2.com

# 填写自定义域名(提供内网自定义域名查询)

#新增配置文件 /data/dnsmasq/dnsmasq.d/k8s.test (为方便区分不同的二级域名,建议按二级域名创建配置文件)
192.168.16.15 etcd.k8s.test

 

以上是关于搭建dnsmasq的主要内容,如果未能解决你的问题,请参考以下文章

使用Dnsmasq搭建本地dns服务器上网

dnsmasq搭建简易dns服务器

生产环境轻量级dns服务器dnsmasq搭建文档

1分钟搭建自己的DNS服务器centos+dnsmasq

CentOS下使用Postfix + Dovecot + Dnsmasq搭建极简局域网邮件系统

Dnsmasq安装与配置-搭建本地DNS服务器 更干净更快无广告DNS解析