{{ v.name }}
{{ v.cls }}类
{{ v.price }} ¥{{ v.price }}
前言
dnsmasq是一个小巧且方便地用于配置dns和dhcp的工具,适用于小型网络。它提供了dns功能和可选择的dhcp功能可以取代dhcpd(dhcpd服务配置)和bind等服务,配置起来更简单,更适用于虚拟化和大数据环境的部署。
dnsmasq主要是在配置文件/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
#设置ntpserver.这是使用optionname而非选项名来进行设置
#dhcp-option=option:ntp-server,192.168.0.4,10.10.0.5
启动dnsmasq服务
servicednsmasqstart
下面在客户端进行测试:#确保网络接口配置使用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]servicenetworkrestart
shuttingdowninterfaceeth0:[ok]
shuttingdownloopbackinterface:[ok]
bringinguploopbackinterface:[ok]
bringingupinterfaceeth0:
determiningipinformationforeth1...done.[ok]
#检查ip地址
[root@os03]ifconfig
eth1linkencap:ethernethwaddr00:0c:29:15:63:d9
inetaddr:192.168.1.202bcast:192.168.1.255mask:255.255.255.0
inet6addr:fe80::20c:29ff:fe15:63d9/64scope:link
upbroadcastrunningmulticastmtu:1500metric:1
rxpackets:251errors:0dropped:0overruns:0frame:0
txpackets:43errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
rxbytes:36077(35.2kib)txbytes:4598(4.4kib)
......
#检查默认路由
[root@os03]route-n
kerneliproutingtable
destinationgatewaygenmaskflagsmetricrefuseiface
192.168.1.00.0.0.0255.255.255.0u000eth1
169.254.0.00.0.0.0255.255.0.0u100200eth1
配置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
#setthis(anddomain:seebelow)ifyouwanttohaveadomain
#automaticallyaddedtosimplenamesinahosts-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。一般是其他的内部dnsnameserver
#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]nslookupos01.debugo.com
server:192.168.1.132
address:192.168.1.132#53
name:os01.debugo.com
address:192.168.1.132
[root@os03]nslookupos02.debugo.com
server:192.168.1.132
address:192.168.1.132#53
name:os02.debugo.com
address:192.168.1.201
[root@os03]nslookupdoubleclick.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]nslookupa1.phobos.apple.com
server:192.168.1.132
address:192.168.1.132#53
name:a1.phobos.apple.com
address:202.175.5.114