【发布时间】:2021-03-30 22:19:09
【问题描述】:
我有很多已知主机的固定 IP 地址。
我正在尝试将我的 DHCP 服务器配置为不动态地向它们提供 IP 地址。
我知道 ACL 可以,但我无法手动添加所有 1000 个 MAC 地址。
【问题讨论】:
-
请在此问题中添加更多详细信息
标签: dhcp
我有很多已知主机的固定 IP 地址。
我正在尝试将我的 DHCP 服务器配置为不动态地向它们提供 IP 地址。
我知道 ACL 可以,但我无法手动添加所有 1000 个 MAC 地址。
【问题讨论】:
标签: dhcp
我有很多已知主机的固定 IP 地址。
如果您的主机已经拥有静态 IP 地址,则无需为它们配备 DHCP 服务器。它甚至不会尝试检索 IP。所以我不太确定你在问什么。
如果您希望计算机通过 DHCP 获取特定(静态)IP 地址,唯一的方法是使用其 MAC 地址并为该计算机输入相应的 IP。对于 ISC DHCP 服务器,这是通过这种方式完成的:
host computer_name {
hardware ethernet 11:22:33:44:55:66;
fixed-address 10.0.1.2;
}
如果您有这么多台计算机,您总是可以编写一个脚本来生成这些行。不过,您需要以某种方式收集 1,000 个 MAC 地址。如果您已经连接,这些将与现有 IP 地址一起列在 /proc/net/arp 文件中。
再一次,如果这 1,000 台计算机都已经分配了 IP 地址,那么它们就不需要 DHCP 客户端,因此一开始就不需要麻烦。
使用netplan,这将是这样的:
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses:
- 10.0.1.2/16
dhcp4: false
dhcp6: false
optional: false
gateway4: 10.0.0.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
主要选项是将dhcp[46] 设置为 false,这意味着不会使用 DHCP 客户端,因此这台计算机会完全忽略您在某处是否有 DHCP 服务器。
在较旧的计算机上,您将使用旧方案,即“网络接口”。 (/etc/network/interfaces 可能还有子文件夹/etc/network/interfaces.d/<interface-name>)。
使用旧 ifconfig 的接口定义需要更多详细信息,如下所示:
auto eth0
iface eth0 inet static
address 10.0.1.2
netmask 255.255.0.0
network 10.0.0.0
broadcast 10.0.255.255
gateway 10.0.0.1
dns-nameservers 8.8.8.8 8.8.4.4
在较新的版本中,掩码必须全为 1,然后全为 0。不再允许使用诸如 255.255.0.240 之类的掩码。这就是为什么较新的版本使用.../<count> 语法的原因。
【讨论】: