linux基本服务系列之DNSmasq的使用

发布时间:2024-11-05 点击:92
前言
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
# 设置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. [ok]
# 检查ip地址
[root@os03] ifconfig
eth1link encap:ethernethwaddr 00:0c:29:15:63:d9
inet addr:192.168.1.202bcast:192.168.1.255mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe15:63d9/64 scope:link
up broadcast running multicastmtu:1500metric: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 refuse iface
192.168.1.0 0.0.0.0 255.255.255.0 u 000 eth1
169.254.0.0 0.0.0.0 255.255.0.0 u 1002 00 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。更多精彩》》

智能云主机服务器最新报价
阿里云定时租用服务器可以吗怎么用
在线视频网站需要什么样服务器配置?
删除多余备案域名-备案平台
10个英文B2B电子商务网站
重启站点池-虚拟主机/数据库问题
我这个现在是没有营业执照的
未被授权查看网页-其他问题