Ole*_*leg 3 configuration systemd network-interface
我正在寻找一种干净、“现代”的方式来配置、启动和停止dummy0
网络接口(从dummy
内核模块)。
我/etc/network/interfaces
曾经在较旧的系统上工作,但现在在ifup dummy0
以下系统上静默失败:
iface dummy0 inet static
address 10.10.0.1
netmask 255.255.255.0
# post-up ip link set dummy0 multicast on
Run Code Online (Sandbox Code Playgroud)
取消注释该post-up
行会产生此错误(显示它运行但从未创建接口):dummy0: post-up cmd 'ip link set dummy0 multicast on'failed: returned 1 (Cannot find device "dummy0")
这个 shell 脚本运行良好,但不是一个很好的干净的配置文件:
#!/bin/sh
sudo ip link add dummy0 type dummy
sudo ip link set dummy0 multicast on
sudo ip addr add 10.10.0.1/24 dev dummy0
sudo ip link set dummy0 up
Run Code Online (Sandbox Code Playgroud)
我的目的是手动和systemd 服务一起使用它:
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/ifup dummy0
ExecStop=/sbin/ifdown dummy0
StandardOutput=syslog+console
Run Code Online (Sandbox Code Playgroud)
环境:
问题:
/etc/network/interfaces
配置?接口之前不是“创建”的;ifupdown 依赖于它在“虚拟”内核模块加载后神奇地出现。这是旧的兼容性行为,并且 (AFAIRC) 它还干扰了相同接口名称的显式创建,因此它通过模块参数被禁用。现在 dummy0 必须以创建 dummy1 或 dummyfoobar 的相同方式创建。
您应该能够在“pre-up”命令中创建接口:
iface dummy0 inet static
address 10.10.0.1/24
pre-up ip link add dummy0 type dummy
Run Code Online (Sandbox Code Playgroud)
如果你也在这个系统上使用 NetworkManager,最近的 NM 版本支持虚拟接口。
nmcli con add type dummy ifname dummy0 ipv4.addresses 10.10.0.1/24 [...]
Run Code Online (Sandbox Code Playgroud)
如果接口应该在启动时创建并永久保留,可以使用 systemd-networkd(一个 .netdev 配置来创建设备,一个 .network 配置来设置 IP 地址)。然而,'networkctl' 仍然没有手动的“up”或“down”子命令。
归档时间: |
|
查看次数: |
7728 次 |
最近记录: |