在Linux中使用的DNS和DHCP软件我们一般是采用ISC的BIND和dhcpd. 在多数环境中这两个软件的确很棒也挺安全.但是当我们的使用环境是家庭或者办公室这样的网络环境,也许用其他更小型一些的软件代替他们会更合适.
这里介绍的是能够同时提供DNS和DHCP服务的软件dnsmasq.它能够缓存外部DNS记录,同时提供本地DNS解析或者作为外部DNS的代理.除此之外,dnsmasq所提供的DHCP服务也是和dhcpd十分相近的.如同共动态地址分配,可以通过MAC地址预先指定静态的IP地址给特定的主机等等.
dnsmasq处理 DNS设置与BIND等其他DNS服务有所不同.所有的配置都在一个文件中完成/etc/dnsmasq.conf.默认情况下dnsmasq.conf中只开启了include项,可以在/etc/dnsmasq.d中自己写任意名字的配置文件.
当接受到一个DNS请求时,dnsmasq会查找 /etc/hosts 这个文件,然后查找 /etc/resolv.conf 中定义的外部DNS.说dnsmasq是一个很不错的外部DNS中继.
使用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 记录.
因此对于小型办公室或者家庭网络环境来说,dnsmasq以其强大的功能和十分简单的使用方法,可以说无出其右者.配置文件也附上了实例,除非你想要架设一个比较大型的网络,否则使用起来可以说是没有任何难度的.
|