首页 > 代码库 > dnsmasq作DHCP服务器配置

dnsmasq作DHCP服务器配置

本博文为原创,遵循CC3.0协议,转载请注明出处:http://blog.csdn.net/lux_veritas/article/details/41702505

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


DNSmasq简介

  • DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,最多可支持1000台服务器。
  • 它提供了DNS功能和可选择的DHCP功能。它服务那些只在本地适用的域名,这些域名是不会在全球的DNS服务器中出现的。
  • DHCP服务器和DNS服务器结合,并且允许DHCP分配的地址能在DNS中正常解析,而这些DHCP分配的地址和相关命令可以配置到每台主机中,也可以配置到一台核心设备中(比如路由器),DNSmasq支持静态和动态两种DHCP配置方式。

配置文件

/etc/dnsmasq.conf
与DHCP server相关的配置,仅需此配置文件即可
一个最简单静态DHCP的配置如下:

interface=eth1
dhcp-host=00:50:56:2C:DA:FE,172.16.0.100

说明:

  • interface 我使用eth1作为对内的网卡接口
  • dhcp-host dhcp-host的配置方式有很多种,这里使用的是:[client端 MAC地址] + [分配的IP]
  • 更多的配置可参考/etc/dnsmasq.conf中的注释说明

注意事项

提供DHCP服务的网卡IP,必须与分配的IP段在同一网段上。如:
网卡eth1的cidr:172.16.0.1/24,给目标机分配的IP为172.16.0.100。如果分配的地址为192.168.0.100则会失败,DHCP客户端会无法取到IP

话外音——说说调试的事情

为什么会有如上的注意事项呢,因为笔者喜欢异类,总想尝试非常规,看看如果不按常规配置会有什么问题,于是就设置了不同的网段尝试能否成功分配。结果自然是失败的
先说一下环境:
宿主机MacOSX 10.10,宿主机上起一个桥设备,
[DHCP server]vm1, Ubuntu 14.04
[DHCP client]vm2, CentOS 7
两台虚拟机的网卡接到宿主的桥上。
在vm1上,配置好/etc/dnsmasq.conf后,重启dnsmasq服务,tcpdump -i eth1,坐等查看包状态
在vm2上,dhclient,广播请求,坐等IP传回,也可查看/var/log/messages产看日志信息

常见的网络状况分析方法:

  • 日志
    /var/log/messages
    /var/log/syslog
    ... ...
  • netstat查看网络状态信息,确认端口是否打开啊
  • tcpdump抓包,抓个包看看有没有收到request,有没有reply

References

[1] How to set up a DHCP server using dnsmasq
[2] official doc

dnsmasq作DHCP服务器配置