Dhcpd

ISC dhcpd 動態引導文件名。這可能嗎?

  • May 23, 2018

實際上,我想根據客戶端 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");

你注意到“=”了嗎?

引用自:https://serverfault.com/questions/625071