任意VLAN接口名称

有没有办法像eth72ext19那样任意命名一个VLAN接口,而不是四个标准命名schemeeth0.72vlan19 (和填充的变体)?

不要有任何线索。 也许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相关联,但是我相信你可以使用它将externaldmz这样的名称分配给接口而不是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(或类似的;我不能够检查)

重命名接口有一些有用的优点:

  • 将已知的语义分配给一个接口(例如'management0','front0','back0')
  • 具有可预测的名称使configurationpipe理脚本等工作更加容易(尤其是防火墙规则)

你确实需要确保你的团队知道这一点。 这不是问题,通常是非常受欢迎的,尤其是在系统中有很多接口的情况下(eth8在具有到SAN存储的冗余绑定链接的主机中不是不合理的)

最近讨论过这个,如果你想根据VLAN ID进行重命名,我build议你考虑以下几点:

  • VLAN ID并不是那么令人难忘,并且很容易错误打印和查看。
  • 一个主机通常没有简单的方法来确定它所在的VLAN(如果有的话),或者它是否是本地VLAN,以及一个访问或中继端口(如果你使用CDP消息的tcpdump,知道什么stream量映射到哪个VLAN)。 因此,这种configuration是基于信念的configuration,很容易失效。

在RedHat / CentOS / SL 7上使用nmcli,您可以使用系统支持的VLAN接口持久化任意namig,只需:

$ nmcli con add type vlan ifname dev eno1 id 10