dhclient.conf - append to system hostname [duplicate]

На этот вопрос уже есть ответ здесь:

Я запускаю Raspbian на куче Raspberry Pis. Каждый из них имеет уникальное имя хоста, заданное в /etc/hostname, и клиент dhcp правильно регистрирует это имя на моем маршрутизаторе.

Проблема, с которой я столкнулся, связана с тем, что эти Pis подключены к одной сети, а затем к одному DHCP-серверу, через ethernet и WiFi - Существует условие, подобное гонке, которое означает, что остальная часть сети, используя имена для адресации этих Pis, не может детерминированно предпочесть ethernet-соединения WiFi.

Я бы хотел, чтобы Pis сообщали разные имена хостов сетевому DHCP-серверу при получении аренды в зависимости от того, с каким интерфейсом они подключаются. Кажется, это возможно статическим способом, добавив в /etc/dhcp/dhclient.conf строки вроде следующей.

interface "wlan0" {
  send host-name "MyHostname-1234-WiFi";
}

Проблема, которую я хочу решить, заключается в том, как определить эту строку программно. Что-то вроде этого:

interface "wlan0" {
  send host-name "<hostname>-WiFi";
}

Заглянув в документацию по dhclient.conf(5), я могу использовать функцию concat из dhcp-eval(5), но у меня ничего не получается. Я пробую следующее:

interface "wlan0" {
  send host-name concat(gethostname(), "-WiFi");
}
0
задан 27 September 2019 в 23:58
1 ответ

Как и в связанном операторе option , вы должны явно отмечать выражения с помощью знака = :

  send host-name "static-value";
  send host-name = concat(gethostname(), "dynamic-value");

Если вы вызываете dhclient в подробном виде mode ( dhclient -cf myconfig.conf -v ) он сообщит вам о синтаксической ошибке, которую в противном случае игнорирует.

0
ответ дан 5 December 2019 в 00:34

Теги

Похожие вопросы