dnsmasq 的配置

dnsmasq的配置

1 . dnsmasq的简介

Dnsmasq 提供 DNS 缓存和 DHCP 服务功能。作为域名解析服务器(DNS),dnsmasq可以通过缓存 DNS 请求来提高对访问过的网址的连接速度。而且dnsmasq轻量且易配置,适用于公司内部使用。

2 . dnsmasq的解析流程

dnsmasq先去解析hosts文件, 再去解析/etc/dnsmasq.d/下的*.conf文件,并且这些文件的优先级要高于dnsmasq.conf,我们自定义的resolv.conf中的DNS也被称为上游DNS,这是最后去查询解析的。

3 . dnsmasq的安装配置
(一) . 安装软件包dnsmasq
yum install -y dnsmasq
(二) . 修改配置文件 /etc/dnsmasq.conf
 listen-address=172.16.3.6
\#表示此主机为局域网提供默认 DNS(建议使用静态IP)

cache-size=1000
\#缓存条数默认150

no-negcache
\#不缓存未知域名

min-cache-ttl=172800
\#至少缓存时间(单位:秒)

port=53
\#  指定DNS的端口,默认53

resolv-file=/etc/resolv.conf
\#指定resolv-file 的文件路径,默认/etc/resolv.conf

strict-order
\#按照resolv.conf中的顺序进行查找

all-servers
\#向所有的/etc/resolv.conf中定义的nameserver中查找(包含国外DNS服务器8.8.8.8 ,及国内的DNS服务器202.106.0.20)

server=/google.com/8.8.8.8 
\#表示对于google的服务, 使用google的DNS解析

addn-hosts=/etc/cname.conf
\#设置cname文件(别名都写到这一文件里,与/etc/hosts类似)

conf-dir=/etc/dnsmasq.d
\# 自定义配置文件路径 ,优先级高于/etc/dnsmasq.conf
##### (三) . 查看配置文件语法是否正确
​    dnsmasq --test
(四). 配置上游服务器地址

resolv-file配置Dnsmasq额外的上游的DNS服务器,如果不开启就使用Linux主机默认的/etc/resolv.conf里的nameserver(因公司有专线 故将google的DNS域名服务器放在第一个,因为国内的dns解析的国外网站域名往往不能访问#例如Facebook,若公司本身就不能访问国外网站,则设置国内dns即可)。

vim  /etc/resolv.conf
nameserver  8.8.8.8
nameserver  202.106.0.20
all-servers 

#all-servers表示对以下设置的所有server发起查询,选择回应最快的一条作为查询结果返回

(五) . 添加解析记录

编辑hosts文件,添加DNS记录(后续持续添加),

vim  /etc/hosts
61.135.169.125 www.baidu.com
60.28.242.237 www.taobao.com
# 一定ip地址在前,域名在后,否则无效
(六). 使用自定义的conf ,添加cname记录(如有变动后续可添加)
vim /etc/dnsmasq.d/cname.conf
#cname=本名,别名
(七). 将别名添加到/etc/cname.conf
 vim  /etc/cname.conf
 # ip     别名 (可写多条)
(八). 启动Dnamasq
systemctl start dnsmasq

注:若防火墙开启 注意防火墙设置 并且开启路由转发功能

(九). 将其他机器的DNS换成dnsmasq所在的IP即可
4 . 一些Dnsmasq性能优化
  1. 我们都知道Bind不配合数据库的情况下,经常需要重新载入并读取配置文件,这是造成性能低下的原因。根据这点教训,我们可以考虑不读取/etc/hosts文件。而是另外指定一个在共享内存里的文件,比如/dev/shm/dnsrecord.txt ,这样就不费劲了,又由于内存的非持久性,重启就消失,可以定期同步硬盘上的某个内容到内存文件中,具体步骤如下

配置dnsmasq

 vim /etc/dnsmasq.conf

no-hosts
addn-hosts=/dev/shm/dnsrecord.txt

解决同步问题(开机启动)

 echo "cat /etc/hosts > /dev/shm/dnsrecord.txt" >>/etc/rc.local

定时同步内容

crontab -e
*/10 * * * * cat /etc/hosts > /dev/shm/dnsrecord.txt​  
*/10 * * * * cat /etc/cname.conf > /dev/shm/dnscname.txt                                                                                                                                                             

参考文档

https://www.hi-linux.com/posts/30947.html#配置实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值