Однократный DHCP-запрос с помощью systemd-networkd

Однократный DHCP-запрос с помощью systemd-networkd

Как/возможно ли сделать одноразовый DHCP-запрос без записи/изменения .networkфайла для интерфейса?

С dhclient, вы могли бы просто запустить dhclient enp23s0f4, чтобы получить IP-адрес. Я ищу эквивалент, желательно с использованием только ipи systemd-networkd-ассоциированных инструментов.

Для большего контекста предположим, что на сервере есть интерфейс, который физически подключен к вышестоящей сети, но в остальном не настроен или отключен; в частности, с ним не .networkсвязано ни одно устройство.

В обычных рабочих условиях интерфейс должен оставаться таким, но иногда администратору нужно поднять интерфейс и настроить его с помощью DHCP. Раньше они делали это ip link set enp23s0f4 upи затем dhclient enp23s0f4получали адрес, ноisc-dhcp-client был устарел. networkctlможет использоваться для вызова интерфейса и управления им systemd-networkd, например networkctl up enp23s0f4:

# networkctl status enp23s0f4
● 2: enp23s0f4
                   Link File: /usr/lib/systemd/network/99-default.link
                Network File: n/a
                       State: degraded (unmanaged)
                Online state: unknown
                        Type: ether
                        Path: pci-0000:17:00.4
...

Очевидно, администратор может создать простой файл сетевого устройства и настроить устройство следующим образом, например:

# /etc/systemd/network/enp23s0f4.network
[Match]
Name=enp23s0f4
[Network]
DHCP=yes

И затем использовать networkctl reloadдля применения конфигурации, но это имеет потенциальную опасность оставить файл конфигурации. Я специальнонетспрашивая об этом решении и ищу что-то эфемерное, что не переживет случайный перезапуск. Самое близкое, что я могу придумать, это поместить файл unit /run/systemd/networkвместо /etc, но это все равно кажется ненужным обходным путем, а не правильным решением.

Связанный контент