实际上,我想根据客户端 MAC 动态分配引导文件名。
我试过这个配置:
option bootfile-name concat( binary-to-ascii(16, 8, "", substring (hardware, 1, 6)), ".cfg");
但这是错误的配置(因为 dhcp 服务器根本没有启动)。如果不是 concat(...) 我只输入真实的文件名(例如“000102030405.cfg”),一切都很好。但这不是我需要的。有没有办法动态设置引导文件名?
实际上,我想根据客户端 MAC 动态分配引导文件名。
我试过这个配置:
option bootfile-name concat( binary-to-ascii(16, 8, "", substring (hardware, 1, 6)), ".cfg");
但这是错误的配置(因为 dhcp 服务器根本没有启动)。如果不是 concat(...) 我只输入真实的文件名(例如“000102030405.cfg”),一切都很好。但这不是我需要的。有没有办法动态设置引导文件名?
嗯,好消息。我自己找到了答案。答案本身就在手册页中。您只需要使用EXPRESSIONS。这对于您希望从客户端请求中分配值的任何选项(不仅是 bootfile-name)都是正确的。
来自
man dhcp-options
:因此,如您所见,此代码与我的代码之间的唯一区别是等号!
对于好奇的人,我的问题的答案是:
你注意到“=”了吗?
110022334455 在 ASCII 输出中变为 11022334455
另见:https ://kb.isc.org/article/AA-01039/0/Formatting-MAC-addresses-in-dhcpd-or-why-does-binary-to-ascii-strip-leading-zeroes.html