
Wie ist es möglich, eine einmalige DHCP-Anfrage zu stellen, ohne eine .network
Datei für die Schnittstelle zu schreiben/ändern?
Mit dhclient
könnten Sie einfach ausführen, dhclient enp23s0f4
um eine IP-Adresse zu erhalten. Ich suche nach einem Äquivalent, vorzugsweise unter Verwendung nur ip
und systemd-networkd
-assoziierter Tools.
Um mehr Kontext zu erhalten, gehen wir davon aus, dass es auf einem Server eine Schnittstelle gibt, die physisch mit einem Upstream-Netzwerk verbunden ist, ansonsten aber nicht konfiguriert oder ausgefallen ist; insbesondere ist ihr keine .network
Einheit zugeordnet.
Unter normalen Arbeitsbedingungen sollte die Schnittstelle so bleiben, aber gelegentlich muss ein Administrator die Schnittstelle aufrufen und mit DHCP konfigurieren. Früher mussten sie dies tun ip link set enp23s0f4 up
und dann dhclient enp23s0f4
eine Adresse erhalten, aberisc-dhcp-client
ist veraltet. networkctl
kann verwendet werden, um die Schnittstelle zu aktivieren und zu verwalten systemd-networkd
, z networkctl up enp23s0f4
. B.:
# 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
...
Natürlich kann der Administrator eine einfache Netzwerkeinheitendatei erstellen und das Gerät beispielsweise folgendermaßen konfigurieren:
# /etc/systemd/network/enp23s0f4.network
[Match]
Name=enp23s0f4
[Network]
DHCP=yes
Und dann verwenden Sie, networkctl reload
um die Konfiguration anzuwenden, aber dies birgt die potenziellen Gefahren, die Konfigurationsdatei zu verlassen. Ich bin speziellnichtIch frage nach dieser Lösung und suche nach etwas Kurzlebigem, das zufällige Neustarts nicht übersteht. Das Beste, was mir einfällt, ist, die Unit-Datei in /run/systemd/network
statt in einzufügen /etc
, aber das scheint immer noch eher eine unnötige Problemumgehung als eine richtige Lösung zu sein.