我们的系统很杂乱,要么是静态 IP 地址,要么是 DHCP 预留地址。(除了预留地址,我们不分发任何地址)。有些服务器有多个网卡和 ILO 卡。必须扫描子网才能找到可用的免费 IP,这很烦人,尤其是因为当我执行扫描时,服务器可能会离线几分钟。任何列表似乎很快就会被遗忘。
我想为子网中的每个 IP 地址创建一个预留。这样管理/查看起来会容易得多。(之后,还要考虑设置 DHCP 以进行 DNS 更新)
我已经运行以下命令:
sudo arp-scan -I eth0 10.10.10.0/24
并列出所有 IP 和 Mac 地址。我即将获得所有主机/dns 名称的列表。(如果他们没有主机名,我会将其称为 ip-last octet,因此对于 10.10.10.100,则为“ip-100”。)。这很容易在 Open Office Calcl 中完成一些工作
有没有办法自动将保留添加到 dhcpd.conf 文件中?
我真的不想手动编辑这个,因为有数百个(多个子网)。
有没有一种简单的方法可以调用命令来创建预订,或者从 CSV 导入列表?我可以使用 Net Sh 找到许多使用 Windows DHCP 执行此操作的方法,但不能使用基于 CentOS 的 DHCP 服务器。
我宁愿使用现有的方法,也不愿编写自己的工具。
TL:DR -我需要一种方法来从命令行修改 Cento 的 DHCPd,就像在 Windows 中使用 Netsh 一样
答案1
我假设您使用的是 ISC DHCPd。在这种情况下,只需添加
host client_name {
hardware ethernet 00:00:de:ad:be:ef;
fixed-address 10.10.10.100;
}
到 /etc/dhcpd.conf 中的范围。
当然,您不会“手动编辑”它,而是创建一个简短的脚本,该脚本会输出每个范围所需的主机定义。类似这样的操作:
#!/bin/bash
function hostdef {
echo host $1 {
echo -e \\thardware ethernet $2\;
echo -e \\tfixed-address $3\;
echo }
echo
}
cat $1 | while read name mac ip; do hostdef $name $mac $ip; done
使用内容如下的平面文件来调用它:
ip-100 00:00:de:ad:be:ef 10.10.10.100
ip-101 00:00:0b:ad:be:ef 10.10.10.101
ip-102 00:00:0b:ad:de:ed 10.10.10.102
ip-103 00:00:de:af:be:ef 10.10.10.103
将生成必要的行粘贴到您的配置文件中或将输出写入单独的文件,您将该文件包含在您的 dhcpd.conf 配置中,如下所示:
include "/etc/dhcpd-reservations-10-10-10.conf";
答案2
看一下奥姆壳它可能会做你想做的事。它允许你创建新的主机对象,为特定的 MAC 地址保留 ip 地址。
让 omapi 监听你的 dhcp 服务器
创建密钥以保护访问
dnssec-keygen -a HMAC-MD5 -b 512 -n HOST omapi_key
生成如下文件
Komapi_key.+157+24472.key
Komapi_key.+157+24472.private
我使用了私人文件中 Key: 行的内容
fzg+LkcuXNcnFL1GqwuGv/OafeWEszUjn3dZV0FJkXyPyrOSjqNUKII0NSqEWN8W9/BEakGf9aa/GSV44C0zNQ==
编辑 dhcp.conf 文件并添加
omapi-port 9999;
key omapi_key {
algorithm HMAC-MD5;
secret fzg+LkcuXNcnFL1GqwuGv/OafeWEszUjn3dZV0FJkXyPyrOSjqNUKII0NSqEWN8W9/BEakGf9aa/GSV44C0zNQ==;
omapi 密钥 omapi_key;
使用上面生成的密钥。
启动 dhcpd
/usr/sbin/dhcpd
现在您可以使用 omshell 添加主机
/usr/bin/omshell
> port 9999
> server 192.168.200.207
> key omapikey fzg+LkcuXNcnFL1GqwuGv/OafeWEszUjn3dZV0FJkXyPyrOSjqNUKII0NSqEWN8W9/BEakGf9aa/GSV44C0zNQ==
> connect
obj: <null>
> new host
obj: host
现在您可以按照手册页中的说明添加主机条目。
答案3
如果您使用 OMshell 进行任何操作,请按照 Iain 的建议,记住这些更改是暂时的。如果您通过 OMAPI 为给定的 MAC 地址创建新的租约对象,则下次重新启动服务器时该对象将丢失。
您需要执行这两项操作 - 使用 OMAPI 立即将预留添加到正在运行的服务器,并使用脚本更新 dhcpd.conf 以供后续使用。