Jos*_*uri 5 networking ubuntu udev
我有一个带有 2 个网络接口的ubuntu server 14.04虚拟机
eth0
- 用于Web管理,SSHeth1
- 用于传入跨度网络分析我已经使用 udev 规则配置了机器(以确保 mac 地址与逻辑网络接口名称的一致性和正确绑定。
将这些规则写入/etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:f5:aa:02", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:f5:aa:f8", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="eth0"
Run Code Online (Sandbox Code Playgroud)在将新网络接口添加到计算机之前,此设置将按预期工作。需要提醒的是,新接口并未添加到 udev 规则中。(因为我只在设置过程中执行一次)
我期望新的网络接口名称可以是任何通用名称(例如eth3
// p2p1
/ em1
...),只要该名称不被 udev 规则占用即可。
这是我添加接口并启动机器后的体验:
- 我的 udev 规则被忽略/冲突并被命名
rename3
eth0
被劫持了。现在的新界面之一是eth0
. 这在安全方面是一个超级问题(可能导致数据泄漏)
这是我在中找到的相关流程/var/log/messages
systemd-udevd[126]: starting version 204
...
vmxnet3 0000:04:00.0 eth0: NIC Link is Up 10000 Mbps
vmxnet3 0000:0b:00.0 eth1: NIC Link is Up 10000 Mbps
vmxnet3 0000:13:00.0 eth2: NIC Link is Up 10000 Mbps
vmxnet3 0000:1b:00.0 eth3: NIC Link is Up 10000 Mbps
...
vmxnet3 0000:0b:00.0 rename3: renamed from eth1
vmxnet3 0000:13:00.0 eth1: renamed from eth2
systemd-udevd[396]: renamed network interface eth1 to rename3
systemd-udevd[405]: renamed network interface eth2 to eth1
Run Code Online (Sandbox Code Playgroud)
rename*
在驱动程序/内核占用接口名称之前,有没有办法更改顺序并确定 udev-rules 的优先级?
注意 - 这些解决方法(POC 级别)对我有用:
- 在 udev 规则中使用不同的命名约定(例如
management0
和span0
) - 工作没有问题,因为它不与默认值冲突。- 运行 @ boot 的脚本 - 将重新定义有关硬件更改的 udev 规则 - 有效,但需要额外的重新启动(天真的方法) - 没有问题