dnsmasq 给出静态范围内的 IP

sin*_*pon 5 networking dhcp dnsmasq

我的 dnsmasq.conf 中有以下内容:

dhcp-range=set:red,10.1.1.2,10.1.1.69,72h,static
dhcp-range=set:blue,10.1.1.70,10.1.1.100,72h,static
dhcp-range=set:white,10.1.1.101,10.1.1.200,12h
dhcp-range=10.1.1.201,10.1.1.250,12h
Run Code Online (Sandbox Code Playgroud)

我原以为前两个范围对不在主机文件中的任何人都是禁止的,即保留用于静态 IP 保留。

然而,当我在网络中添加一个随机设备时,它似乎分配了一个红色范围内的 IP,即使它没有静态 IP 预留。我本来希望在 10.1.1.101 到 10.1.1.250 范围内分配一个 IP。

此功能的工作方式是否与我预期的不同?

小智 2

旧帖子,但我会尝试一下......

这是因为所有范围都具有相同的子网..

如果 eth0 是 10.1.1.1,那么它将提供通过该接口进入的 10.1.1.2 到 10.1.1.254 范围内的地址。这就是为什么所有新机器都会获得较低(红色)范围内的地址。

但是,如果您有第二个物理接口(10.1.2.1 上的 eth1/wlan0),则所有请求都通过该接口传入;如果这样配置的话,将获得 10.1.2.x 范围内的地址。这是我所知道的唯一方法;轻松分离交通通过防火墙规则等

因为所有范围都有相同的子网;dnsmasq 只是分配位于其自己的侦听接口网络内的 IP。10.1.1.x

man dnsmasq大约 dhcp 范围内,它指出 If you have more than one network, you will need to repeat this for each network on which you want to supply DHCP service.。这对我来说;意味着另一个物理接口,通过颜色命名它们是我通过使用不同颜色的电缆来区分网络的方式。:)

详细阅读 dnsmasq 文档,我认为 /etc/hosts 用作名称服务器的一部分,而不是 DHCP 分配,因为静态 IP 通常需要机器名称或 MAC 地址才能正常运行。


小智 1

这篇文章现在更旧了,但我自己也遇到了这个......

如果使用起始地址和结束地址:

dhcp-range=set:red,10.1.1.2,10.1.1.69,static
Run Code Online (Sandbox Code Playgroud)

地址将被分发,有时甚至在错误的子网上。

相反,仅尝试网络地址和子网掩码:

dhcp-range=set:red,10.1.1.0,static,255.255.255.0
Run Code Online (Sandbox Code Playgroud)