本节书摘来自华章计算机《Puppet权威指南》一书中的第3章,第3.3节,作者:王冬生著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3.3 DNS安装与配置
DNS(Domain Name System,域名解析系统)主要用来表示IP与域名之间的映射关系,是学习Puppet过程中比较重要的一个辅助工具,因为在Agent每次连接Master时都会使用到域名。如果通过Puppet管理的Agent较少,可以通过写hosts的形式来管理域名,但是在管理的Agent比较多的情况下通过hosts的形式来管理域名的成本就相对较高。这时可以通过开源软件来搭建一套DNS域名解析系统,这样通过Puppet管理比较多的Agent就方便快捷多了。目前互联网比较常用的搭建DNS的软件是Bind。其功能强大,但是配置复杂,所以在这里推荐一款轻量级的DNS软件——DNSmasq。
作为用于配置DNS和DHCP的工具,DNSmasq小巧且方便,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。它服务那些只在本地适用的域名,这些域名是不会在全球的DNS服务器中出现的。更多信息请参考官方网站www.thekelleys.org.uk。
DNSmasq安装方便快捷,配置文件简单易懂,所以结合DNSmasq与 Puppet来管理企业内网是最佳的选择。
1 . DNSmasq安装
首先到DNSmasq的官方网站下载最新版本的DNSmasq。下载后通过源码编译方式安装DNSmasq,安装完成后需要将DNSmasq安装目录配置文件dnsmasq.conf.example复制到/etc/下。以下为详细的安装步骤,即下载、编译和安装,安装后可以将DNSmasq主配置文件复制到/etc目录下。
# wget http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.45.tar.gz
# tar –xvzf dnsmasq-2.45.tar.gz
# cd dnsmasq-2.45
# make && make install
# cp dnsmasq.conf.example /etc/dnsmasq.conf
2 . DNSmasq的配置
编辑 /etc/dnsmasq.conf的主配置文件的内容如下,根据如下配置信息,我们只要简单修改一下就可以使用DNSmasq了。
user=dnsmasq # 启动账号
group=users # 启动组号
interface=eth1 # 绑定网络接口
listen-address=192.168.0.1 # 绑定IP
bind-interfaces
resolv-file=/etc/resolv.conf # 域名解析文件
addn-hosts=/etc/hosts # 域名解析文件
3 . 编辑域名解析文件
根据/etc/dnsmasq.conf配置文件中的addn-hosts参数,将域名解析配置文件改为系统默认定义的/etc/hosts文件,我们可以将IP和对应的虚拟域名追加到/etc/hosts文件中,来实现DNSmasp域名与IP映射关系,具体如下。
echo "192.168.0.1 www.example.com" >> /etc/hosts
4 . 启动DNSmasq
启动DNSmasq也是非常方便的,只需执行以下命令:
# /usr/local/sbin/dnsmasq
启动后可通过netstat系统命令查看DNSmasq是否启动成功,如果53端口已成功启动,则说明DNSmasq已经正常工作。
localhost@# netstat –tnl
tcp 0 0 192.168.0.1:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN
tcp 0 0 fe80::a19:a6ff:fe27::53 :::* LISTEN
tcp 0 0 ::1:53 :::*
到目前为止已经成功启动了DNSmasq,现在可以将DNSmasq服务器IP写入Agent的resolv.conf文件中,实现域名与IP的映射关系,DNSmasq将作为一个内网域名解析系统而发挥作用。