doina

一个小菜鸟运维工程师.

DNSmasq搭建DNS服务器

DNSmasq简介

Dnsmasq 提供 DNS 缓存和 DHCP 服务功能。作为域名解析服务器(DNS),dnsmasq可以通过缓存 DNS 请求来提高对访问过的网址的连接速度。作为DHCP 服务器,dnsmasq 可以用于为局域网电脑分配内网ip地址和提供路由。DNS和DHCP两个功能可以同时或分别单独实现。dnsmasq轻量且易配置,适用于个人用户或少于50台主机的网络。此外它还自带了一个 PXE 服务器。

  • 官档: https://wiki.archlinux.org/index.php/Dnsmasq_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
  • windows安装dig: https://teddysun.com/406.html

安装DNSmasq

yum安装

IP 角色
192.168.109.128 DNSmasq
172.16.69.67 客户端
$ yum -y install dnsmasq

配置DNSmasq

DNSmasq配置文件再/etc/dnsmasq.conf,我们需要修改几个参数,分别为:
– 取消注释的 strict-order ,表示严格按照 resolv-file 文件中的顺序从上到下进行 DNS 解析, 直到第一个成功解析成功为止
– resolv-file=/etc/resolv.dnsmasq.conf 这个参数表示 dnsmasq 会从这个指定的文件中寻找上游 dns 服务器
– 注释掉 no-hosts, 默认情况下这是注释掉的, dnsmasq 会首先寻找本地的 hosts 文件再去寻找缓存下来的域名, 最后去上游 dns 服务器寻找.
– 设置 listen-address=127.0.0.1 ,127.0.0.1改成自己服务器IP

==主配置文件==

#备份原配置文件
$ mv /etc/dnsmasq.conf{,.bak}

#新建配置文件
$ vim /etc/dnsmasq.conf
bind-interfaces
interface=ens33
except-interface=lo
listen-address=192.168.109.128
conf-dir=/etc/dnsmasq.d/,*.conf
strict-order
resolv-file=/etc/resolv.dnsmasq.conf
dns-forward-max=1000
cache-size=1000
#log-queries
#log-facility=/opt/logs/dnsmasq/dnsmasq.log
#log-async=100
domain-needed
no-hosts
addn-hosts=/etc/dnsmasq.hosts
clear-on-reload
local-ttl=3600

==上游DNS配置文件==

$ vim /etc/resolv.dnsmasq.conf
223.5.5.5
114.114.114.114

添加A记录

在hosts文件中添加

$ cat /etc/dnsmasq.hosts 
192.168.1.2 bbc.abcd.com

$ ping bbc.abcd.com 
PING bbc.abcd.com (192.168.1.2) 56(84) bytes of data.

$ dig bbc.abcd.com +short
192.168.1.2

在配置文件中添加

$ cat /etc/dnsmasq.d/bbc.com.conf 
address=/abc.bbc.com/192.168.1.1

$ ping abc.bbc.com
PING abc.bbc.com (192.168.1.1) 56(84) bytes of data.

$ dig abc.bbc.com +short
192.168.1.1

添加CNAME

==cname abc.baiyongjie.com到img.baiyongjie.com==

# 先在配置文件中添加cname记录
$ cat /etc/dnsmasq.d/baiyongjie.com.conf 
cname=abc.baiyongjie.com,img.baiyongjie.com

# 然后到dnsmasq.host文件中添加img.baiyongjie.com的解析
$ vim /etc/dnsmasq.hosts   
47.105.40.216 img.baiyongjie.com
$ ping abc.baiyongjie.com  
PING img.baiyongjie.com (47.105.40.216) 56(84) bytes of data.

$ dig abc.baiyongjie.com
......
abc.baiyongjie.com.     0       IN      CNAME   img.baiyongjie.com.
img.baiyongjie.com.     0       IN      A       47.105.40.216
......

$ tail /var/log/dnsmasq/dnsmasq.log 
Nov  9 14:18:14 dnsmasq[110226]: query[A] abc.baiyongjie.com from 192.168.109.128
Nov  9 14:18:14 dnsmasq[110226]: config abc.baiyongjie.com is <CNAME>
Nov  9 14:18:14 dnsmasq[110226]: /etc/dnsmasq.hosts img.baiyongjie.com is 47.105.40.216
Nov  9 14:18:14 dnsmasq[110226]: query[PTR] 216.40.105.47.in-addr.arpa from 192.168.109.128
Nov  9 14:18:14 dnsmasq[110226]: /etc/dnsmasq.hosts 47.105.40.216 is img.baiyongjie.com
点赞

发表评论

电子邮件地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据