Альтернатива ISC DHCP-клиенту (dhclient)?

Я только что видел новости на https://www.isc.org/dhcp :

ISC завершила разработку DHCP-клиента ISC в начале 2022 года. Эта реализация клиента больше не поддерживается и не должна больше использоваться в рабочей среде.

Теперь, когда dhclientкажется, вышел на пенсию, какой DHCP-клиент мне следует использовать?

Точнее, я использую Debian 11, и мне нужен DHCP-клиент, которому можно дать команду из командной строки продлить аренду. В настоящее время я делаю это:

      sudo dhclient -r
sudo dhclient

Или, для конкретного интерфейса, напримерeth0:

      sudo dhclient -r eth0
sudo dhclient eth0

--- РЕДАКТИРОВАТЬ ---

Другие обсуждения этого вопроса:

Кажется, они предлагаютsystemd-networkd.

2 ответа

Я только что заменил isc-dhcp-client на udhcpc:

      apt purge isc-dhcp-client udhcpc+

Чтобы продлить (используя значение по умолчанию eth0):

      udhcpc renew

Я заменил dhclient DHCP-клиентом systemd-networkd следующим образом:

1. Удалить dhclient

      sudo apt purge -y isc-dhcp-client
sudo apt purge -y isc-dhcp-common

2. Запустите systemd-networkd.

      sudo systemctl start systemd-networkd
sudo systemctl enable systemd-networkd

3. Заставьте systemd-networkd управлять сетевыми интерфейсами, используя собственный DHCP-клиент.

Для каждого интерфейса создайте*.networkфайл конфигурации в/etc/systemd/network, например05-enp1s0.network:

      [Match]
Name=enp1s0

[Network]
DHCP=yes

После перезапуска Linux или перезапуска systemd-networkd, илиsudo networkctl reload, эти интерфейсы будут настроены DHCP-клиентом systemd-networkd. Обновить конфигурации интерфейса легко, например:

      sudo networkctl renew enp1s0

Это очень субъективно, но мой первоначальный опыт показывает, что DHCP-клиент systemd-networkd более надежен и реагирует быстрее, чем dhclient. Если я меняю сетевые подключения, что часто случается в моем случае использования, я получаю хороший опыт plug-n-play.


4. [Необязательно] Добавьте 8.8.8.8 в качестве основного DNS-сервера.

Включите systemd-resolved:

      sudo systemctl start systemd-resolved
sudo systemctl enable systemd-resolved

В/etc/systemd/resolved.conf:

      [Resolve]
DNS=8.8.8.8

В/etc/nsswitch.conf, добавлятьresolveна первом месте поhosts:

      ...
hosts:      resolve [!UNAVAIL=return] files dns
...

Сейчасsystemd-resolveбудет работать, ноnslookupпо-прежнему будет использовать DNS-сервер, записанный DHCP-клиентом. Чтобы решить эту проблему, преобразуйте/etc/resolv.confв мягкую ссылку на файл resolv.conf, используемый systemd-resolved:

      cd /etc
sudo rm resolv.conf
sudo ln -s /run/systemd/resolve/stub-resolv.conf resolv.conf

После перезапуска systemd-resolved этот файл содержит в первой строке 8.8.8.8 и ниже DNS-серверы, собранные DHCP-клиентом с DHCP-серверов подключенных сетей, например:

      nameserver 8.8.8.8
nameserver 192.168.1.1
nameserver 192.168.42.129
Другие вопросы по тегам