当前位置: 首页 > 工具软件 > dhcp4java > 使用案例 >

socket发dhcp java_声明DHCP自定义选项并配置客户端以发送它

阙繁
2023-12-01

我想将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

谢谢,米歇尔

 类似资料: