dnsmasq可以这样用
例子:
1. 准备一个虚拟机,安装dnsmasq,(2个网卡,net0连接外网vmbr0,net1连接内网vmbr3)
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241004/350ab03039ca12af2a4fab0c950183d6.png)
2. 使用 apt 安装dnsmasq
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241004/6195738910e832dea9afb708fb49bf38.png)
3. 配置文件内容,这里设置了domain,"test.ltd"
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241004/8db6185b79edd1c71b370b38557c74eb.png)port=53
server=192.168.15.1 #上游DNS服务器
interface=eth1 #这里的 eth1 是指向内网 vmbr3 的接口
bind-interfaces
domain=test.ltd #域名
dhcp-range=10.40.1.100,10.40.1.150,2h #内网网段
dhcp-option=3,10.40.1.2 #网关
dhcp-option=6,10.40.1.2 #DNS
dhcp-leasefile=/tmp/dnsmasq.leases
4. 在vmbr3中启动2个虚拟机,模拟内网的机器
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241004/758392b364f16cfc21c6a2a3c3deb7ba.png)
5. 客户端都能成功获取到IP
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241004/d86d319c87b4fb9ceaebf1ed090537e3.png)
6. 测试,注意这里需要重启一次客户端,客户端才会上报主机名。(大概是因为第一次dhcp获取ip的时候,dhcp请求中没有携带主机名,第二次才正常携带主机名)
结果和预期的一致。
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241004/658d9d913b81e6fb65375d9b6ba67bab.png)
***
需要注意的点,在配置dnsmasq时,server 这里配置的上游 dns server 可能会出现问题,如果配置公共dns
114.114.114.114,我这里测试的时候会返回ipv6的解析结果,但是本地没有ipv6的环境。所以这里使用的是上游路由器的DNS地址。
***
这个功能,一般路由器应该都是有的。