![访问 DHCP 客户端的供应商封装选项](https://linux22.com/image/507632/%E8%AE%BF%E9%97%AE%20DHCP%20%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%9A%84%E4%BE%9B%E5%BA%94%E5%95%86%E5%B0%81%E8%A3%85%E9%80%89%E9%A1%B9.png)
在 isc-dhcpd-V3.1.1 的 dhcpd.conf 文件中,我设置了一个供应商选项空间并定义了几个不同的选项。我能够使用这些定义在供应商封装选项 (代码 43) 中将选项从服务器发送到客户端。
但是,客户端也会以相同的方式将供应商选项发送回服务器,我想根据选项的类型和内容做出不同的响应。据我所知,服务器根本没有解析客户端的供应商封装选项 - 选项运算符只是返回 null。
有没有办法让服务器填充我定义的供应商空间中的选项?
答案1
如果您可以保证客户端每次都以相同的顺序发送相同的选项,则可以使用substring
和option vendor-encapsulated-options
手动解析选项:
if 01:01:01 = substring( option vendor-encapsulated-options, 0, 3 ) { ... }
if 02:02:ab:cd = substring( option vendor-encapsulated-options, 3, 4 ) { ... }
但是,如果这两个保证不成立,那么唯一剩下的选择就是基于正则表达式的匹配,但要注意选项(代码长度内容)完全包含在另一个选项的内容中的可能性。