Dhcpd
ISC dhcpd 動態引導文件名。這可能嗎?
實際上,我想根據客戶端 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
:SETTING OPTION VALUES USING EXPRESSIONS Sometimes it's helpful to be able to set the value of a DHCP option based on some value that the client has sent. To do this, you can use expression evaluation. The dhcp-eval(5) manual page describes how to write expressions. To assign the result of an evaluation to an option, define the option as follows: option my-option = expression ; For example: option hostname = binary-to-ascii (16, 8, "-", substring (hardware, 1, 6));
因此,如您所見,此程式碼與我的程式碼之間的唯一區別是等號!
對於好奇的人,我的問題的答案是:
option bootfile-name = concat( binary-to-ascii(16, 8, "", substring (hardware, 1, 6)), ".cfg");
你注意到“=”了嗎?