使⽤dnsmasq配置内⽹域名解析
dnsmasq 使⽤上⽐bind要简便得多,可以做正向、反向dns解析,⽀持DHCP服务。也可以做内部dns服务器⽤.
本初仅使⽤DNS功能,给本地局域⽹服务器提供:hosts主机记录,⾃定义域名,以及公⽹域名DNS转发解析。
实现功能:利⽤dnsmasq做dns解析服务,内⽹的域名解析为本机的ip地址,外⽹的域名通过dns解析为外⽹对应的地址.配置⽂件解析:
dnsmasq安装完成后,默认配置⽂件为 /f,本配置⽂件只列举出常⽤的⼏个配置项的使⽤⽅法. Dnsmasq配置⽂件f详解:
# 缓存条数,默认为150条。cache-size=0禁⽤缓存
cache-size=10000
##指定 resolv-file ⽂件路径(上游DNS服务器),默认/etc/resolv.dnsmasq。
resolv-file=/f
###添加读取额外的 hosts ⽂件路径,可以多次指定。如果指定为⽬录,则读取⽬录中的所有⽂件。
addn-hosts=/etc/dnsmasq.hosts
#表⽰严格按照f中的顺序进⾏查
strict-order
#⽤此主机为局域⽹提供默认 DNS,写本机的局域⽹IP
listen-address=192.168.10.30,127.0.0.1
#设置⽇志记录器
log-queries
log-facility=/var/log/dnsmasq.log
local-ttl=600
# 该⽬录下的所有.conf⽂件都是要做解析的
conf-dir=/etc/dnsmasq.d
# 指定域名解析到特定的ip上,后⾯的ip地址为你的主机ip:
address=/saneri/192.168.10.30
# 智能DNS加快解析速度,后⾯ip地址为dns
server=/cn/114.114.114.114
server=/taobao/114.114.114.114
开始搭建⼀台dnsmasq域名解析服务器:
本机的ip地址是:192.168.10.30,其中192.168.10.2为dns和⽹关的ip地址,可以正常访问互联⽹.
# cat /f
# Generated by NetworkManager
nameserver 192.168.10.2
1.安装:
# yum install dnsmasq -y
2.启动服务:conf
# systemctl enable dnsmasq.service
# systemctl start dnsmasq.service
3.查看版本:
# dnsmasq -v
4.修改配置⽂件:
dnsmasq配置选项⽐较多,我们可以根据实际需求来进⾏配置。下⾯为我的配置⽂件:
# cat /f
cache-size=10000
resolv-file=/f
addn-hosts=/etc/dnsmasq.hosts
log-queries
log-facility=/var/log/dnsmasq.log
local-ttl=600
conf-dir=/etc/dnsmasq.d
strict-order
listen-address=192.168.10.30,127.0.0.1
指定 resolv-file ⽂件路径(上游DNS服务器),默认/etc/resolv.dnsmasq,此处为/f⽂件,和/f⽂件内容保持⼀致.
resolv-file=/f
解析是有顺序的,所以⼀定要将本机的ip作为dns放在前⾯,如果顺序不对,解析也是会出问题的.
[root@localhost etc]# cat /f
# Generated by NetworkManager
nameserver 192.168.10.30
nameserver 192.168.10.2
[root@localhost etc]# cat /f
nameserver 192.168.10.30
nameserver 192.168.10.2
[root@localhost etc]#
#添加读取额外的 hosts ⽂件路径,可以多次指定。如果指定为⽬录,则读取⽬录中的所有⽂件,这⾥指定的域名和ip都是⼀对⼀的关系.
addn-hosts=/etc/dnsmasq.hosts
[root@localhost etc]# cat /etc/dnsmasq.hosts
192.168.10.30 www.saneri.io
192.168.10.30 ftp.saneri.io
192.168.10.30 momo.io
[root@localhost etc]#
# 该⽬录下的所有.conf⽂件都是要做解析的,我在这个⽬录下创建了⼀个f的配置⽂件,⽤来将域名解析到特定的ip上⾯,这种定义⽅式⽀持泛域名解析和反向解析等⽅式.
conf-dir=/etc/dnsmasq.d
[root@localhost etc]# cat /etc/dnsmasq.f
address=/www.taobao/127.0.0.1
ptr-record=127.0.0.1.in-addr.arpa,www.taobao
address=/baidu/127.0.0.1
address=/saneri/192.168.10.30
[root@localhost etc]#
这些就是我的配置项,内⽹的域名解析到指定的主机ip上⾯,外⽹的域名解析正常.
5.解析测试
可以在本机使⽤nslookup进⾏测试,也可以在开⼀个客户机,将客户机的dns指向为192.168.10.30进⾏解析测试;
# nslookup
> www.saneri.io
Server:        192.168.10.30
Address:    192.168.10.30#53
Name:    www.saneri.io
Address: 192.168.10.30
> ftp.saneri.io
Server:        192.168.10.30
Address:    192.168.10.30#53
Name:    ftp.saneri.io
Address: 192.168.10.30
> momo.io
Server:        192.168.10.30
Address:    192.168.10.30#53
Name:    momo.io
Address: 192.168.10.30
> www.taobao
Server:        192.168.10.30
Address:    192.168.10.30#53
Name:    www.taobao
Address: 127.0.0.1
> saneri
Server:        192.168.10.30
Address:    192.168.10.30#53
Name:    saneri
Address: 192.168.10.30
> baidu
Server:        192.168.10.30
Address:    192.168.10.30#53
Name:    baidu
Address: 127.0.0.1
> www.baidu
Server:        192.168.10.30
Address:    192.168.10.30#53
Name:    www.baidu
Address: 127.0.0.1
> www.sina
Server:        192.168.10.30
Address:    192.168.10.30#53
Non-authoritative answer:
www.sina    canonical name = sina. Name:    sina
Address: 49.7.36.58
> exit
[root@localhost ~]#