isc-dhcp-server配置option 43
isc-dhcp版本号是4.4.3,在树莓派下运行。
isc-dhcp-server其他的相关配置就不多说了,网上一搜一大把。这里主要说明option 43如何配置。
修改文件 /etc/dhcp/dhcpd.conf ,在文件末尾增加如下内容:
option space XYHL; option XYHL.serviceName code 1 = text; option local-encapsulation code 43 = encapsulate XYHL; option XYHL.serviceName = "ThisIsTest";
其中四处红色字体部分,必须更改成一样的内容,红色部分即是option 60(VENDOR_CLASS_ID),是client发送给server的。
蓝色字体部分即是server要发送给client的option 43(VENDOR)。
更改完成之后,即可重启isc-dhcp-server服务。
踩坑:
当我这么配置完成之后,通过dhclient发送了dhcp discover或者dhcp request之后,收到的dhcp ack或者dhcp offer并没有包含option 43。之后查了很多资料才发现,dhclient的配置文件中有个request选项,该选项配置了client想要从server端拿到哪些option。
修改/etc/dhcp/dhclient.conf,在request栏增加vendor-encapsulated-options:
request subnet-mask, broadcast-address, time-offset, routers, vendor-encapsulated-options, domain-name, domain-name-servers, domain-search, host-name, dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers, netbios-name-servers, netbios-scope, interface-mtu, rfc3442-classless-static-routes, ntp-servers;
interface "ens37"
{
send vendor-class-identifier "XYHL";
}
然后再通过dhclient命令,即可获取到option 43。