
Как/возможно ли сделать одноразовый 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
, но это все равно кажется ненужным обходным путем, а не правильным решением.