版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
一、工具介绍
- 智能路由器服务于家庭和小型企业网络,当多个人同时上网时,客户机经常进行DNS查询,大多查询会是重复的域名,如果有一个 DNS缓存代理服务于局域网,这样将减少DNS的因特网存取,加快DNS访问速度和节省网络流量,dnsmasq软件就是在这种情况 下应运而生的
- dnsmasq是轻量级DHCP、TFTP和DNS缓存服务器,给小型网络提供DNS和DHCP服务。它的设计目标是轻量级的DNS,并且占用空间小,适用于资源受限的路由器和防火墙,以及智能手机、便携式热点设备等
- 工作原理:dnsmasq接收DNS请求,并从本地缓存中读取,如果缓存不存在就转发到一个真正的递归 DNS 服务器。它也可以读取/etc/hosts的内容,这样就可以对局域网的主机查询进行DNS查询响应,这些局域网的主机名称不会暴露在全局DNS域中
本地DNS服务器
- DNS子系统提供网络的本地DNS服务器,即只服务于局域网的DNS服务器。转发所有类型的查询请求到上游递归DNS服务器,并且缓存通用记录类型(A、AAAA、CNAME 和 PTR)。
- 支持的主要特性有以下几方面:
- 本地DNS服务器可以通过读取/etc/hosts来定义,或者通过导入DHCP子系统的名字,或者通过各种各样的用户配置
- 上行服务器可以各种遍历的配置,包括动态配置
- 认证DNS模式允许本地DNS名称导出到全球DNS区域。dnsmasq作为这个区域的认证服务器,也可以提供区域传送
- 从上游服务器DNS响应执行DNSSEC验证,防止欺骗和缓存中毒
- 指定子域名可以继承自它们的上行 DNS 服务器,这样使VPN配置更容易
- 国际化域名支持等
二、dnsmasq配置文件(/etc/config/dhcp)
- dnsmasq配置文件位于/etc/config/dhcp,控制着DNS和DHCP服务选项。默认配置包含一个通用的配置节来指定全局选项,还有一个或多个DHCP来定义动态主机配置服务的网络接口和地址池等。还可以包含多个域名和主机配置,并且提供客户端地址列表来查询
①全局配置
- 下图所示的是dnsmasq的所有配置选项
②DHCP地址池配置
- 类型为dhcp的配置节指定了每一个接口的DHCP设置,通常最少有一个服务于局域网接口的dhcp配置设置
- 配置选项如下:
- 例如下图中:
- 指定了DHCP服务器的服务接口“lan”
- start、limit:100 是客户端分配的IP地址起点, 总共可以分配150个IP 地址
- 12h 表示客户端得到的地址租约时间为 12 小时
③域名配置
- dnsmasq 支持自定义主机或者是自定义域名,使用 domain 配置节来管理自定义域名
- 配置选项如下:
演示案例:
- 第一步:我们使用uci命令来增加两条自定义域名记录。首先创建一个类型为domain匿名的配置节, 然后设置其名称和 IP 地址
- 第二步:记录被写到/etc/config/dhcp 文件中,但现在功能并未生效。调用重启 dnsmasq 进程命 令来使 dnsmasq 读取这些配置更改
/etc/init.d/dnsmasq restart
- 第三步:实际的配置将转换为 dnsmasq 的配置,配置文件为/var/etc/dnsmasq.conf,生效后内容如下:
- 第四步:然后在 OpenWrt shell 中 ping 主机名称 bjbook.net。这时将访问 192.168.6.20 这个 IP 地址,并从 192.168.6.20 收到响应。这和主机系统的功能完全相同,只是在/etc/hosts 文件 中只在本机生效,如果加载这里就可以服务于家庭网
④主机配置
- DHCP 在分配 IP 时,选择一个未使用的 IP 地址进行分配。假定有一个服务器,也是 通过 DHCP 进行 IP 分配的,这样每次重启后分配的 IP 地址可能发生改变,这在访问服务 器时还需查看其 IP 地址。根据 MAC 地址分配固定 IP 地址可以解决这个问题。在 DHCP 配置文件中使用 host 来配置
- 配置选项如下:
演示案例:
- 第一步:通过 uci 命令进行增加(这将增加固定的 IP 地址 192.168.6.120。然后重启 DHCP 服务器,这时 MAC 地址为 “08:00:27:9d:89:e7”的计算机再次获取的 IP 地址将设置为固定 IP 地址 192.168.6.120,主机 名称设置为 buildServer)
- 第二步:查看配文文件
- 第三步:重启服务
/etc/init.d/dnsmasq restart
⑤DHCP客户端信息
- DHCP 还有一个功能是记录客户端列表。客户端列表显示当前所有通过 DHCP 服务器 获得 IP 地址主机的相关信息,包括客户端主机名称、MAC 地址、所获得的 IP 地址及 IP 地址的有效期。表 11-5 列出了所有保存字段的含义,我们可以通过/tmp/dhcp.leases 文件来 查看所有通过 DHCP 服务器获得 IP 地址的计算机信息
- 配置选项如下: