DNSmasq – 配置DNS和DHCP
DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络。它提供了DNS功能和可选择的DHCP功能可以取代dhcpd(DHCPD服务配置)和bind等服务,配置起来更简单,更适用于虚拟化和大数据环境的部署。
dhcp服务
其中一些关键的配置如下,配置文件/etc/dnsmasq.conf 中的注释已经给出了非常详细的解释。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# 服务监听的网络接口地址
# If you want dnsmasq to listen for DHCP and DNS requests only on
# specified interfaces (and the loopback) give the name of the
# interface (eg eth0) here.
# Repeat the line for more than one interface.
#interface=
# Or you can specify which interface _not_ to listen on
#except-interface=
# Or which to listen on by address (remember to include 127.0.0.1 if
# you use this.)
listen-address=192.168.1.132,127.0.0.1
# dhcp动态分配的地址范围
# Uncomment this to enable the integrated DHCP server, you need
# to supply the range of addresses available for lease and optionally a lease time
dhcp-range=192.168.1.50,192.168.1.150,48h
# dhcp服务的静态绑定
# Always set the name and ipaddr of the host with hardware address
# dhcp-host=00:0C:29:5E:F2:6F,192.168.1.201
# 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
# 设置默认租期
# Set the limit on DHCP leases, the default is 150
#dhcp-lease-max=150
# 租期保存在下面文件
# The DHCP server needs somewhere on disk to keep its lease database.
# This defaults to a sane location, but if you want to change it, use
# the line below.
#dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases
# 通过/etc/hosts来分配对应的hostname
# Enable the address given for "judge" in /etc/hosts
# to be given to a machine presenting the name "judge" when
# it asks for a DHCP lease.
#dhcp-host=judge
# 忽略下面MAC地址的DHCP请求
# Never offer DHCP service to a machine whose ethernet
# address is 11:22:33:44:55:66
#dhcp-host=11:22:33:44:55:66,ignore
# dhcp所在的domain
# Set the domain for dnsmasq. this is optional, but if it is set, it
# does the following things.
# 1) Allows DHCP hosts to have fully qualified domain names, as long
# as the domain part matches this setting.
# 2) Sets the "domain" DHCP option thereby potentially setting the
# domain of all systems configured by DHCP
# 3) Provides the domain part for "expand-hosts"
domain=debugo.com
# 设置默认路由出口
# dhcp-option遵循RFC 2132(Options and BOOTP Vendor Extensions),可以通过dnsmasq --help dhcp来查看具体的配置
# 很多高级的配置,如iSCSI连接配置等同样可以由RFC 2132定义的dhcp-option中给出。
# option 3为default route
# Override the default route supplied by dnsmasq, which assumes the
# router is the same machine as the one running dnsmasq.
dhcp-option=3,192.168.0.1
# 设置NTP Server.这是使用option name而非选项名来进行设置
# Set the NTP time server addresses to 192.168.0.4 and 10.10.0.5
#dhcp-option=option:ntp-server,192.168.0.4,10.10.0.5
|
注意:当为某一MAC地址同时静态分配主机名和IP时,如果写到两条dhcp-host选项里(如下所示),则只会生效后面的一条。正确的选项写法如上配置。
1
2
|
dhcp-host=00:0C:29:5E:F2:6F,192.168.1.201
dhcp-host=00:0C:29:5E:F2:6F,os02
|
重新启动客户端网卡。由于之前测试中客户端网卡已经申请了DHCP租期。所以这里需要修改租期文件,让客户端重新获得IP和hostname。
1
2
3
|
[root@server] vim /var/lib/dnsmasq/dnsmasq.leases
1400240493 00:0c:29:5e:f2:6f 192.168.1.143 os02 *
1400240498 00:0c:29:15:63:cf 192.168.1.52 os01 *
|
启动dnsmasq服务(server的IP为192.168.1.132)
1
|
[root@server]dnsmasq
|
下面在客户端进行测试:
# 确保网络接口配置使用dhcp方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
[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配置文件里。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
#
本地解析文件 #
If you don't want dnsmasq to read /etc/hosts, uncomment the following line. #no-hosts
#
or if you want it to read another file, as well as /etc/hosts, use this. #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
#
Add local-only domains here, queries in these domains are answered #
from /etc/hosts or DHCP only. local=/debugo.com/
#
强制使用完整的解析名 #
Never forward plain names (without a dot or domain part) domain-needed
#
添加额外的上级DNS主机(nameserver)配置文件 #
Change this line if you want dns to get its upstream servers from #
somewhere other that /etc/resolv.conf #resolv-file=
#
不使用上级DNS主机配置文件(/etc/resolv.conf和resolv-file) #
If you don't want dnsmasq to read /etc/resolv.conf or any other #
file, getting its servers from this file instead (see below), then #
uncomment this. no-resolv
#
相应的,可以为特定的域名指定解析它的nameserver。一般是其他的内部DNS name server #
Add other name servers here, with domain specs if they are for #
non-public domains. #
server=/myserver.com/192.168.0.1 #
设置DNS缓存大小(单位:DNS解析条数) #Set
the size of dnsmasq's cache. The default is 150 names. Setting the cache size to zero disables caching. cache-size=500
#
关于log的几个选项 #
For debugging purposes, log each DNS query as it passes through #
dnsmasq. log-queries
#
Log lots of extra information about DHCP transactions. #log-dhcp
#
Log to this syslog facility or file. (defaults to DAEMON) log-facility=/var/log/dnsmasq.log
#
异步log,缓解阻塞,提高性能。 #
Enable asynchronous logging and optionally set the limit on the number of lines which will be queued by dnsmasq #
when writing to the syslog is slow. #
Dnsmasq can log asynchronously: this allows it to continue functioning without being blocked by syslog, #
and allows syslog to use dnsmasq for DNS queries without risking deadlock. If the queue of log-lines becomes #
full, dnsmasq will log the overflow, and the number of messages lost. #
The default queue length is 5, a sane value would be 5-25, and a maximum limit of 100 is imposed. log-async=20
#
指定domain的IP地址 #
Add domains which you want to force to an IP address here. #
The example below send any host in doubleclick.net to a local #
webserver. address=/doubleclick.net/127.0.0.1
address=/.phobos.apple.com/202.175.5.114
|
配置完成后重启dnsmasq,然后在客户端测试:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
[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和DHCP的更多相关文章
- centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课
centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更 ...
- DNSmasq搭建DNS服务器
原文地址:http://jirry.me/2016/04/19/dnsmasq-on-aliyun/ DNSmasq 是一个小巧且方便地用于配置 DNS 和 DHCP 的工具,适用于小型网络,它提供了 ...
- cobbler 更换dns和dhcp服务器为dnsmasq
1) 需要配置/etc/cobbler/module.conf, 把manage_dns和manage_dhcp改为manage_dnsmasq 2) 重启cobbler和dnsmasq服务,dnsm ...
- 本地配置DNS服务器(MAC版)
作为一个前端开发者,会遇到使用cookie的情况,常见的如:登录,权限控制,视频播放,图形验证码等,这时候本地开发者在PC上会使用修改hosts的方式添加指向本地的域名,来获取cookie的同域名.如 ...
- centos7安装dnsmasq局域网dns
Dnsmaq介绍: Dnsmasq是一款小巧且方便地用于配置DNS服务器和DHCP服务器的工具,适用于小型网络,它提供了DNS解析功能和可选择的DHCP功能. Dnsmasq可以解决小范围的dns查询 ...
- (DNS)dnsmasq部署DNS
转自:https://www.hi-linux.com/posts/30947.html Dnsmasq提供DNS缓存和DHCP服务.Tftp服务功能.作为域名解析服务器(DNS),Dnsmasq可以 ...
- 烂泥:centos安装及配置DNS服务器
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 要在centos配置DNS服务器,要先安装DNS软件BIND.当然我们也可以安装其他的DNS软件,比如国内的开源DNS软件DNSPod. 在此我们以通过 ...
- dnsmasq配置
介绍 dnsmasq是一个dns和dhcp服务 参数说明 dhcp-sequential-ip 默认情况下Dnsmasq分配ip是根据目标机的mac地址按一定的hash规则来的.这样每个目标机在租约期 ...
- 第9章 应用层(2)_动态主机配置协议(DHCP)
2. 动态主机配置协议(DHCP) 2.1 静态地址和动态地址的应用场景 (1)静态地址应用场景 ①IP地址不经常更改的设备(如服务器地址) ②使用有规律的IP地址以便于管理(如学校机房为方便教师管理 ...
随机推荐
- SignalR主动通知订阅者示例
html代码: <script src="~/Scripts/jquery.signalR-2.2.0.min.js"></script> <scri ...
- 如何让tableViewCell的分割线从边框顶端开始
在ios8上 [TableView setSeparatorInset:UIEdgeInsetsMake(0,0,0,0)];不起作用 经过测试加入下面方法 在ios7 8上都可以正常工作 -(voi ...
- qingku
# -*- coding:utf-8 -*- list1=[] list2=[] list3 = [] list4 = [] while True: inputs = raw_input(" ...
- 使用自定义tld标签简化jsp的繁琐操作
最近做一个树形结构的展示,请求目标页面后,后台只返回简单的List,虽然有想过在jsp页面内做一些操作简化,但是太繁琐了,其他的标签又不能满足需求,所以只能自己做一个.使用tld标签可以简化jsp代码 ...
- HTTP协议 -- 认清协议常用状态码
HTTP协议作为web服务的基础,理所应当受到重视,但是周围的同事能够讲清楚HTTP协议的凤毛麟角.既然是基础,就应该早一点掌握,所以近半年(2016-2月——2016年6月),不准备学习新技术了.首 ...
- 介绍DSA数字签名,非对称加密的另一种实现
接下来我们介绍DSA数字签名,非对称加密的另一种实现. DSA DSA-Digital Signature Algorithm 是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS ...
- mysql设置远程访问权限
查一下你的MYSQL用户表里, 是否允许远程连接 1.授权 mysql>grant all privileges on *.* to 'root'@'%' identified by ...
- .Net创建windows服务入门
本文主要记录学习.net 如何创建windows服务. 1.创建一个Windows服务程序 2.新建安装程序 3.修改service文件 代码如下 protected override void On ...
- nginx正则表达式
1.^:匹配字符串的开始位置: 2..*: .匹配任意字符,*匹配数量0到正无穷: 3.\. 斜杠用来转义,\.匹配.: 4.(jpg|gif|png|bmp)匹配jpg或gif或png或bmp 5. ...
- ZOJ 3696 Alien's Organ
泊松分布.... Alien's Organ Time Limit: 2 Seconds Memory Limit: 65536 KB There's an alien whose name ...