有没有办法任意命名 VLAN 接口,类似eth72
或ext19
代替四种标准命名方案eth0.72
(vlan19
以及填充变体)?
不知道。也许是 udev?
答案1
天哪,这是那简单的:
改名VLAN 42在eth0到扩展2:
ip link set dev eth0.42 name ext2
答案2
我使用“ip link set dev bond0.10 name ext0”时运气不佳。如果接口处于开启状态,则会收到 BUSY 错误。如果接口处于关闭状态,则会收到 NOT FOUND 错误。
我确实很幸运,因为这是:在我的 bond0 基本接口定义中,
post-up ip link add name ext0 link bond0 type vlan id 10
pre-down ip link delete dev ext0 type vlan
和
auto ext0
iface ext0 inet static
address ...
现在我发现“ifup bond0”不仅创建了 /proc/net/vlan/config 中所示的 VLAN 并创建了 ext0 设备,而且它甚至 ifup 了 ext0 设备。bond0.10 从未存在过。
答案3
在 OpenBSD(可能还有其他 BSD)中,你可以使用 ifconfig 中的恰当命名的参数来设置接口的描述description
,请参阅ifconfig(8)。这对于区分一堆接口非常方便。但这对您没有帮助。
不幸的是,在 Linux 中没有很好的方法可以做到这一点。
在 Linux 中,接口是动态命名的,每个接口都会被分配第一个可用名称。这意味着如果您移除一个 NIC 然后添加另一个(例如更换或升级),则不能保证其接口会保持不变。
尝试类似的程序重命名这将允许您手动指定接口名称。它看起来主要是为了确保NIC0
始终与相关联,eth0
但我相信您可以使用它为接口分配名称,例如和,external
而dmz
不是和eth0
等等。Udev 还允许您使用 network.rules 文件更改接口名称(请参阅这里举例来说)。
您应该小心地记录这一点,因为通常不会这样做,但与@MichealHampton 不同,我没有发现任何特别的问题。我个人在我的 BSD 安装中充分利用了接口的描述字段。
答案4
因此,这种方法很有效。
在/etc/network/interfaces中:
auto lxdHost
iface lxdHost static
pre-up ip link add link eth0 name lxdHost type vlan id 102
address 192.1.1.1/25
...
然后 ifup lxdHost
pre-up 和 post-down 以及界面人中的其他功能都是让您按照自己的方式做事的神奇钩子。