我想给未知客户端一个范围内的IP地址和另一个范围内的已知客户端(这是一个静态的)。
我现在尝试了很多,但似乎无法正常工作。我得到的只是“没有可用的地址”错误。
我的网络是 10.1.0.0/22 (<-!!!) 应为访客分配一个范围为 10.1.3.1-10.1.3.254 的地址 静态地址范围为 10.1.2.1-10.1.2.254
所以这是我的配置:
iface eth0 inet static
address 10.1.0.2/22
gateway 10.1.0.1
eth0@if17: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 10.1.0.2/22 brd 10.1.3.255 scope global eth0
valid_lft forever preferred_lft forever
和
dhcp-range=tag:guests,10.1.3.1,10.1.3.254,255.255.252.0,12h
dhcp-range=tag:known,10.1.2.0,static,24h
dhcp-option=option:router,10.1.0.1
dhcp-option=option:dns-server,10.1.0.3
dhcp-option=option:ntp-server,10.1.0.1
dhcp-host=aa:bb:cc:dd:ee:ff,10.1.2.1
dhcp-host=11:22:33:44:55:66,10.1.3.2
已知主机会获得它们的地址(无论它是 .2. 还是 .3. 地址),但未知主机不会得到任何信息。
您没有为该
tag:known
范围提供网络掩码,因此 dnsmasq 将假定它是整个 /22,完全覆盖该tag:guests
范围。似乎有问题的部分是:标签:已知。出于某种原因,当我删除 dnsmasq 时,它在启动日志消息中没有显示不同的内容,但现在似乎可以工作了。(我不知道它是否适用于 /22,因为我停止使用它。)
要使用标签,需要在某处设置它。我对从另一个子网中继的请求执行此操作:
在 OP 的情况下,dhcp-host 条目将是设置
known
标签的地方,如下所示:但是(来自 dnsmasq 手册页):当主机匹配任何 --dhcp-host 指令(或 /etc/ethers 隐含的指令)时,将设置特殊标记“已知”。
所以这
set:known
是隐含的。使用!要否定该标签,我们可以将不同的范围应用于“未知”主机: