Назад | Перейти на главную страницу

dhclient.conf - добавить к имени хоста системы

Я запускаю 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");
}

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

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

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