![使用 systemd-networkd 的一次性 DHCP 请求](https://linux22.com/image/792344/%E4%BD%BF%E7%94%A8%20systemd-networkd%20%E7%9A%84%E4%B8%80%E6%AC%A1%E6%80%A7%20DHCP%20%E8%AF%B7%E6%B1%82.png)
.network
如何/是否可以在不写入/修改接口文件的情况下发出一次性 DHCP 请求?
使用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
应用配置,但这样做可能会遗留配置文件。我特别不是寻求此解决方案并寻找无法在随机重启后幸存的短暂事物。我能想到的最接近的方法是将单元文件放入/run/systemd/network
而不是/etc
,但这仍然似乎是一种不必要的解决方法,而不是正确的解决方案。