我想将DHCP客户端分类为ISC DHCPD配置文件中子网声明中定义的池中的IP地址,并使用该信息更新DNS服务器 .
使用选项“dhcp-client-identifier”为客户端发送相同的类标识符将不起作用,因为具有相同标识符的后续IP地址请求(来自不同的客户端)将告诉DHCP服务器先前的客户端连接,而不是后者,因此(尝试)用新IP更新DNS服务器,丢失先前客户端的条目 .
到目前为止,我在互联网上找到的资源只谈到搞乱现有的选项(通常是供应商扩展),但没有什么可以告诉我该怎么做 .
我在想的是这样做:
定义自定义选项
配置客户端以使用适当的值发送类
根据该选项的值在服务器上定义客户端类
根据 class 提供IP地址
我的方法是这样的:
DHCP Server, in /etc/dhcp/dhcpd.conf:
option foo code 224 = text; # code 224 - 250 is defined as local class range
...
class "myclass" {
match if option foo ~= "value";
}
...
subnet xxx.xxx.xxx.xxx netmask 255.255.255.0 {
pool {
...
allow members of "myclass";
deny known-clients;
}
}
DHCP服务器似乎对至少语法感到满意:
root@ns:/home/michel# dhcpd -t -cf /etc/dhcp/dhcpd.conf.test
Internet Systems Consortium DHCP Server 4.3.1
Copyright 2004-2014 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Config file: /etc/dhcp/dhcpd.conf.test
Database file: /var/lib/dhcp/dhcpd.leases
PID file: /var/run/dhcpd.pid
root@ns:/home/michel#
(不要因为root而杀了我 - 为方便我做了“sudo bash”)
DHCP client, in /etc/dhcp/dhclient.conf:
# This is what I'd like the client to be able to send to make this all work
send foo "42";
我希望我走在正确的轨道上,但我想我在这里错过了一些东西......
DHCP服务器:isc-dhcp-server / oldstable,现在4.3.1-6 deb8u2 armhf
DHCP客户端:isc-dhcp-client / xenial-updates,现为4.3.3-5ubuntu12.7 amd64
谢谢,米歇尔