我有以下情况:多个办公室,有多个防火墙/dhcp 服务器。
每次某个办公室的 IT 团队插入新的网络打印机时,我都需要创建一个fixed-address
条目,并在预留发生之前删除此打印机已经获得的租约。有时我会收到警告,说打印机已经在线,其他应用程序(cups 服务器)需要这个固定 IP。
lease
添加时是否有办法“自动过期” fixed-address
?目前情况下,我需要手动删除租约或等待我配置的 3 小时max-lease-time
。
我为什么要这样做?为了通过 ssh 更加动态地创建新的固定地址主机,而无需登录该服务器并删除租约(或每次编辑 2 个文件)。这dhcp-relay
不是一个选项,因为我们有一个isp
不支持它的电路。
一些配置文件的片段
ddns-update-style ad-hoc;
authoritative;
allow bootp;
deny declines;
deny duplicates;
option domain-name "xxx.net";
option domain-name-servers y.y.y.y, y.y.y.2;
option interface-mtu 1500;
option ntp-servers ntp.xxx.xxx.xxx;
default-lease-time 7200; # default lease 2 hours
max-lease-time 10800; # max lease 3 hours
one-lease-per-client true; # 1 lease per client
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.100 10.0.0.200;
option routers 10.0.0.254;
option broadcast-address 10.0.0.255;
}
host printserver001 {
hardware ethernet 00:24:81:XX:XX:XX;
fixed-address 10.0.0.30;
}
我已经尝试过的解决方案:创建一个class
称为打印机的打印机,将所有固定地址添加到该类别,并在该 IP 范围/池中添加deny members of "printers"
。它不会工作,打印机仍会获得,lease
直到过期。
我认为可能有效的解决方案:将参数清零default-lease-time
。我只是不知道所有打印机重新启动时的默认行为是请求相同的租约还是发送新的 DHCPREQUEST,以及如何isc-dhcp
管理此请求。
编辑1:使用 omapi 也不起作用。我试图删除一个只知道 mac 地址的租约,当我尝试删除它时,我得到了以下信息:
omshell << END_OF_INPUT
server localhost
port 7911
key omapi_key my_key_xxxxxxxxxxxxxxxxxx==
connect
new lease
set hardware-address = 00:e0:c5:4e:2d:a4
open
remove
END_OF_INPUT
> can't destroy object: not implemented
obj: lease
hardware-address = 00:e0:c5:4e:2d:a4
state = 00:00:00:02
ip-address = c0:a8:03:e6
dhcp-client-identifier = 01:00:e0:c5:4e:2d:a4
client-hostname = "xxxxx03"
subnet = 00:00:00:06
pool = 00:00:00:07
hardware-type = 00:00:00:01
ends = 53:72:14:ce
starts = 53:71:f8:ae
tstp = 00:00:00:00
tsfp = 00:00:00:00
atsfp = 00:00:00:00
cltt = 53:71:f8:ae
flags = 00
ddns-fwd-name = "xxxxx03.xxxxx.net"
ddns-rev-name = "xx.xx.xx.192.in-addr.arpa."
我正在使用 ISC-dhcp 3.1.1。
有任何想法吗?
答案1
您无法通过 OMAPI 删除租约。但是,您可以强制释放它们,这将导致 dhcpd 将其视为不再有效的租约。创建固定地址条目,强制释放打印机之前获得的租约,在下一次 DHCP 协商中,打印机将移动到固定地址,包括拒绝续订请求并向客户端提供新 IP。
答案2
正常做法是创建一个(可能很小的)动态池,并将其与固定地址分开。为小池设置一个较短的(< 1 小时)租约时间。
然后对设备进行电源循环,或者等到它更新租约(DHCP 服务器将 NAK 该地址并提供其正确的——新的——地址)。
答案3
LDAP。
假设您使用的是 dhcp-4.2+,它内置于 isc-dhcp-server-ldap 中
完整指南在此:
http://wiki.herzbube.ch/index.php/ISCDHCP#Configuration_with_LDAP
或者:http://edmann.com/Computers-Technology/2008/01/08/ISC-DHCP-and-Ldap-Backend
ldap-server "localhost";
ldap-port 389;
ldap-username "cn=dhcp-service,ou=users,dc=yourdomain,dc=com";
ldap-password "secret";
ldap-base-dn "dc=yourdomain,dc=com";
# Dynamic = Hosts are looked up every time a DHCP request comes in
# Static = Read entire configuration, including hosts, only once at startup
ldap-method dynamic;
ldap-debug-file "/var/log/dhcp-ldap-startup.log";
非常确定,您只需从 LDAP 数据库内部管理您的客户端,使用与之配合使用的所有 API 即可自动执行 MAC->IP 查找等。每个 DHCP 服务器都可以参考 LDAP 全局数据库进行单点联系管理。
答案4
更改max-lease-time
为较低的值,10 分钟。