dnsmasq 配置

DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。它服务那些只在本地适用的域名,这些域名是不会在全球的DNS服务器中出现的。DHCP服务器和DNS服务器结合,并且允许DHCP分配的地址能在DNS中正常解析,而这些DHCP分配的地址和相关命令可以配置到每台主机中,也可以配置到一台核心设备中(比如路由器),DNSmasq支持静态和动态两种DHCP配置方式。


一、介绍
DNSmasq是一个轻巧的,容易使用的DNS服务工具,它可以应用在内部网和Internet连接的时候的IP地址NAT转换,也可以用做小型网络的DNS服务.
它可以提供如下几个实用的功能:
1 、提供dns服务
2 、优先使用本地自定义dns
3 、提供dhcp服务

一般情况下,我们可以用bind解决dns的问题,dhcpd解决dhcp的问题,另外,还可以用ypbind解决自定义hostname解析的ip(当然还有用户的功能),它都解决了!很实用吧?这真的很吸引人,况且它一直在更新维护,最新版本是6月份的。


当碰到比较棘手的几个问题时,即可用dnsmasq通通解决:

1 局域网有很多机器希望使用一份一样的hosts定义一批名称对应的ip,你需要经常维护这份列表
2 你希望局域网的人访问某个域名时,拦截下来到指定的ip,做缓存节省带宽或者其它用途都可以
3 禁止某个域名的正常解析


二、配置 DNS功能:

vi /etc/dnsmasq.conf

默认情况下:

resolve-file指定dnsmasq从哪里获取上行DNS Server, 默认是从/etc/resolv.conf获取。

addn-hosts指定dnsmasq从哪个文件中读取“地址 域名”记录, 默认是系统文件/etc/hosts;

listen-address默认是监控在所有网卡上的。


★配置 dnsmasq 的上游 dns 服务器;(这是一个 dns 缓存, 那么其还是需要有上游服务器进行一次域名解析的)

★配置系统的 dns 服务器, 将 dnsmasq 设置在首位寻找

★设置 dnsmasq 需要监听的 IP 地址, 让其他服务器能够找到他


1、首先配置 resolv-file=/etc/resolv.dnsmasq.conf 这个参数表示 dnsmasq 会从这个指定的文件中寻找上游 dns 服务器

系统首先寻找本地的 dnsmasq 服务器 取消注释的 strict-order 表示严格安装 resolv-file 文件中的顺序从上到下进行 DNS 解析, 直到第一个成功解析成功为止

2、 no-hosts, 默认情况下这是注释掉的, dnsmasq 会首先寻找本地的 hosts 文件,再去寻找缓存下来的域名, 最后去上游 dns 服务器寻找;而addn-hosts可以多额外的hosts文件。所以说dnsmasq是一个很不错的外部DNS中继。

3、设置 listen-address=127.0.0.1, 表示这个 dnsmasq 本机自己使用有效.

这里有一个坑 listen-addres , 我爬了好长时间才爬出来..

在这些配置中, listen-address 的参数坑了我好长时间, 最后才能明白如何配置. 例如, 我还需要让局域网内其他的服务器也能够首先访问这个 dnsmasq 来进行域名解析如何配置? listen-address=192.168.1.100 (dnsmasq 所在服务器局域网内 ip), 好吧, 这样你本机配置的 127.0.0.1 就没效果了… 如果设置为 listen-address=127.0.0.1 那局域网内其他服务器就无法访问到这个 dnsmasq 了, 其实应该这样设置 listen-address=192.168.1.100,127.0.0.1 这样你就能双方都满足了, 不过需要注意的一点是, 如果 dnsmasq 所在服务器在局域网的 ip 地址变更了与配置文件中的不一样, 那么理所当然的再使用配置文件中的那个 ip, 局域网内其他服务器也就找不到这台 dnsmasq ,也就无法利用本地的 dns 缓存了.

4、其他配置项:

cache-size=1024 设置缓存大小;

log-queries 开启debug模式,记录客户端查询记录到/var/log/debug中

5、客户端机器配置,编辑/etc/resolv.conf ,调整内容为 nameserver 192.168.1.78 (其中该IP是内部dns的IP)

客户端测试域名是否生效:nslookup t.sina.com 检查解析的IP即可。


三、配置DHCP功能:

使用dnsmasq提供DHCP服务也是相当简单的事情。
在/etc/dnsmasq.conf 中对以下选项进行设置并且取消某些注释:


expand-hosts

domain=example.com

dhcp-range=192.168.0.50,192.168.0.150,12h

dhcp-option=3,192.168.0.1


以上配置选项enable 了DHCP服务,并且设置domain为“example.com”。DHCP服务提供地址范围为 192.168.0.50到 192.168.0.150 续订期为12个小时。最后的一个选项指定了默认网关。当然配置文件中还有其他更多的选项,可以参考配置文件事例或者man帮助。

如果要配置静态地址,可以对dhcp-host选项作以下设置:

dhcp-host=11:22:33:44:55:66,foo,192.168.0.10

这样就会对MAC 地址 11:22:33:44:55:66 赋主机名为 foo (.example.com) IP 地址 192.168.0.10.

dnsmasq另外一个特性是能够提供tftp服务,让网络启动(PXE)也得以实现。

dnsmasq提供如下特性以保证其取代BIND和dhcpd或其他类似软件的筹码。它可以设定默认MX记录,多种caching和大量DHCP选项。SRV记录提供LDAP信息,PTR、SPF甚至是zeroconf 记录。

你可能感兴趣的:(记录以及传送门)