前言 DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络。它提供了DNS功能和可选择的DHCP功能可以取代dhcpd(DHCPD服务配置)和bind等服务,配置起来更简单,更适用于虚拟化和大数据环境的部署。
Dhsmasq主要是在配置文件/etc/dnsmasq.conf ,利用好就能快捷部署好使的dhcp和dns服务。
Dhcp服务
服务监听的网络接口地址
#interface=eth0 listen-address=192.168.1.132,127.0.0.1
dhcp动态分配的地址范围
dhcp-range=192.168.1.50,192.168.1.150,48h
dhcp服务的静态绑定
dhcp-host=00:0C:29:5E:F2:6F,192.168.1.201,infinite 无限租期
dhcp-host=00:0C:29:5E:F2:6F,192.168.1.201,os02 dhcp-host=00:0C:29:15:63:CF,192.168.1.202,os03
设置默认租期
#dhcp-lease-max=150
租期保存在下面文件
#dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases
通过/etc/hosts来分配对应的hostname
#dhcp-host=judge
忽略下面MAC地址的DHCP请求
#dhcp-host=11:22:33:44:55:66,ignore
dhcp所在的domain
domain=debugo.com
设置默认路由出口
dhcp-option=3,192.168.0.1
设置NTP Server.这是使用option name而非选项名来进行设置
#dhcp-option=option:ntp-server,192.168.0.4,10.10.0.5
启动dnsmasq服务 service dnsmasq start
下面在客户端进行测试:
确保网络接口配置使用dhcp方式
[root@localhost] cat /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE="eth1" BOOTPROTO=dhcp IPV6INIT=no NM_CONTROLLED=no ONBOOT="yes" TYPE="Ethernet"
重启网络服务
[root@localhost] service network restart Shutting down interface eth0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: Determining IP information for eth1... done.
检查IP地址 [ OK ]
[root@os03] ifconfig eth1 Link encap:Ethernet HWaddr 00:0C:29:15:63:D9 inet addr:192.168.1.202 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe15:63d9/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:251 errors:0 dropped:0 overruns:0 frame:0 TX packets:43 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:36077 (35.2 KiB) TX bytes:4598 (4.4 KiB) ......
检查默认路由
[root@os03] route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth1
配置DNS服务 dnsmasq能够缓存外部DNS记录,同时提供本地DNS解析或者作为外部DNS的代理,即dnsmasq会首先查找/etc/hosts等本地解析文件,然后再查找/etc/resolv.conf等外部nameserver配置文件中定义的外部DNS。所以说dnsmasq是一个很不错的DNS中继。DNS配置同样写入dnsmasq.conf配置文件里。
本地解析文件
#no-hosts #addn-hosts=/etc/banner_add_hosts
Set this (and domain: see below) if you want to have a domain
automatically added to simple names in a hosts-file.
例如,/etc/hosts中的os01将扩展成os01.debugo.com
expand-hosts local=/debugo.com/
强制使用完整的解析名
domain-needed
添加额外的上级DNS主机(nameserver)配置文件
#resolv-file=
不使用上级DNS主机配置文件(/etc/resolv.conf和resolv-file)
no-resolv
相应的,可以为特定的域名指定解析它的nameserver。一般是其他的内部DNS name server
server=/myserver.com/192.168.0.1
设置DNS缓存大小(单位:DNS解析条数)
cache-size=500
关于log的几个选项
log-queries #log-dhcp log-facility=/var/log/dnsmasq.log
异步log,缓解阻塞,提高性能。
log-async=20
指定domain的IP地址
address=/doubleclick.net/127.0.0.1 address=/.phobos.apple.com/202.175.5.114
配置完成后重启dnsmasq,然后在客户端测试: [root@os03] nslookup os01.debugo.com Server: 192.168.1.132 Address: 192.168.1.132#53 Name: os01.debugo.com Address: 192.168.1.132 [root@os03] nslookup os02.debugo.com Server: 192.168.1.132 Address: 192.168.1.132#53 Name: os02.debugo.com Address: 192.168.1.201 [root@os03] nslookup doubleclick.net Server: 192.168.1.132 Address: 192.168.1.132#53 Name: doubleclick.net Address: 127.0.0.1 #注意,由于address选项解析为127.0.0.1,而非server的192.168.1.132地址。 [root@os03] nslookup a1.phobos.apple.com Server: 192.168.1.132 Address: 192.168.1.132#53 Name: a1.phobos.apple.com Address: 202.175.5.114
好了,说到这里应该都会使用dnsmasq这个小工具了,简单快捷,下一期,我们再讲讲如何搭建智能dns。
由睿江云运维人员提供,想了解更多,请登陆www.eflycloud.com