在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服务也是相当简单的事情。 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以其强大的功能和十分简单的使用方法,可以说无出其右者。配置文件也附上了实例,除非你想要架设一个比较大型的网络,否则使用起来可以说是没有任何难度的。 |