有没有办法像eth72或ext19那样任意命名一个VLAN接口,而不是四个标准命名schemeeth0.72 , vlan19 (和填充的变体)?
不要有任何线索。 也许udev?
OMG – 就这么简单:
将eth0上的vlan 42重命名为ext2 :
ip link set dev eth0.42 name ext2
在OpenBSD(也可能是其他BSD)中,你可以用ifconfig来设置接口的描述,使用恰当的命名description参数,见ifconfig(8) 。 这对于区分一堆接口非常方便。 但是这对你没有帮助。
不幸的是,在Linux中没有很好的方法来做到这一点。
在Linux中,接口被dynamic地命名,每个接口被分配第一个可用的名字。 这意味着,如果你拉一个网卡,然后添加另一个网卡(比如replace它或升级它),则不能保证它的接口保持不变。
尝试一个程序,如ifrename ,这将允许您手动指定接口名称。 它看起来主要是为了确保NIC0始终与eth0相关联,但是我相信你可以使用它将external和dmz这样的名称分配给接口而不是eth0 ,等等。 Udev也允许你使用network.rules文件来改变接口名称(参见这里的例子)。
你应该小心logging,因为它通常不会完成,但不像@MichealHampton我没有看到任何特别的问题。 我个人很好地使用BSD安装中的接口描述字段。
我没有运气与“IP链路设置dev bond0.10名称EXT0”。 如果接口启动,则会发生BUSY错误。 如果接口处于closures状态,则会发生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”不仅创build了在/ proc / net / vlan / config中看到的VLAN,而且还创build了ext0设备,但是它甚至是ext0设备。 bond0.10永远不会存在。
在debian中你使用/etc/network/interfaces来configuration你的networking接口。
请注意,您应该安装vlan软件包:
apt-get install vlan
从man 5 interfaces :
为了简化VLAN接口的configuration,接口具有。 (完全停止字符)的名字被configuration为802.1q标记的虚拟LAN接口。
例如,eth0.1接口是以eth0为物理链路的虚拟接口,VLAN ID为1。
有关更多信息,请查阅man 5 vlan-interfaces 。 基本上,你可以给你的vlan接口任何名称,并使用vlan-raw-device把vlan和你的网卡关联起来。 例如,eth0上的vlan10将是:
iface vlan10 inet static vlan-raw-device eth0 address 192.168.10.1 netmask 255.255.255.0
在非Debian发行版中,您可以使用iproute2来做同样的事情,如下所示:
ip link add link enp3s0f1 name vlan10 type vlan id 10 ip addr add 192.168.10.1/24 dev vlan10
不知道这是否也适用于Debian,但在Ubuntu(和红帽),这很容易通过编辑/etc/udev/rules.d/persistent-net.rules(或类似的;我不能够检查)
重命名接口有一些有用的优点:
你确实需要确保你的团队知道这一点。 这不是问题,通常是非常受欢迎的,尤其是在系统中有很多接口的情况下(eth8在具有到SAN存储的冗余绑定链接的主机中不是不合理的)
最近讨论过这个,如果你想根据VLAN ID进行重命名,我build议你考虑以下几点:
在RedHat / CentOS / SL 7上使用nmcli,您可以使用系统支持的VLAN接口持久化任意namig,只需:
$ nmcli con add type vlan ifname dev eno1 id 10