题 任意VLAN接口名称


有没有办法任意命名VLAN接口 eth72 要么 ext19 而不是四个标准的名称方案 eth0.72vlan19 (以及填充的变化)?

不要有任何线索。也许udev?


6
2017-09-05 12:53




当然,udev可以做到这一点。 - Skaperen
@boburob:我有三个“上游”网络 - 一个在物理上,两个在另一个链路上通过VLAN。为了清楚起见,我想将它们全部重命名为ext0,ext1和ext2。 - Michuelnik
这很可能会混淆将来必须触摸那个盒子的任何人。我们是 专业人士 在这里,我们假设你也是。不要混淆你的同事。 - Michael Hampton♦
@MichaelHampton:实际,这个 希望 来自我的同事 - 我一直否认他们的要求。 - Michuelnik
@ChrisS我也被惊呆了。但那里 是 一个简单的方法 - 简单地说 ip link set name... - Michuelnik


答案:


天啊 - 是的  简单:

改名 vlan 42 上 为eth0 至 EXT2

ip link set dev eth0.42 name ext2


7
2017-09-27 08:01



假设您不希望它在下次重新启动后持续存在,这是正确的答案。如果您确实希望它保持不变,那么适当的方法是udev规则,systemd-network配置或您的发行版的特定网络配置文件。 - jbg


在OpenBSD(以及可能是其他BSD)中,您可以使用恰当命名的ifconfig设置接口的描述 description 争论,见 使用ifconfig(8)。这对于区分一堆接口非常方便。但这对你没有帮助。

不幸的是,在Linux中没有很好的方法可以做到这一点。

在Linux中,接口是动态命名的,每个接口都分配了第一个可用名称。这意味着如果您拉出一个NIC然后添加另一个(比如替换它或升级它),则无法保证其接口保持不变。

试试像这样的程序 ifrename 这将允许您手动指定接口名称。它看起来主要是为了确保这一点 NIC0 始终与...相关联 eth0 但我相信你可以使用它来分配名称 external 和 dmz 接口而不是 eth0 等等。 Udev还允许您使用network.rules文件更改接口名称(请参阅 这里 例子)。

您应该小心记录这一点,因为它通常不会完成,但与@MichealHampton不同,我没有看到它的任何特殊问题。我个人在BSD安装中充分利用了接口的描述字段。


3
2017-09-05 22:52



在所有BSD上: -description 实际上从界面中取出描述, description 要么 descr 然后是引用文本将其放在界面上。此外,您可以轻松地重命名界面 name 命令 ifconfig。 - Chris S
@ChrisS:啊谢谢!编辑我的答案是正确的。 - kce
不幸的是ifrename在这里不起作用(我猜!),因为它使用MAC地址来区分接口和以太网的VLAN-IF继承它的MAC ....如果只有MAC可以用作区分器,则同样适用于udev。也许完整的设备路径? - Michuelnik
对于你的pull-replace-nic-part:atm它主要是保证,接口不会保持不变,因为$ most dists使用基于mac的动态学习的固定接口名称。 ( - > 70 - 持久net.rules到目前为止理解了udev,但是无法在那里获得VLAN接口的步骤.... - Michuelnik


我没有运气“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设备,但它甚至是ext0设备。 bond0.10永远不会存在。


3
2017-12-11 00:40





在debian你用 /etc/network/interfaces 配置您的网络接口。

请注意,您应该安装 vlan 包:

apt-get install vlan

man 5 interfaces

为了简化VLAN接口的配置,接口具有。名称中的(完整停止字符)配置为802.1q标记的虚拟LAN接口。

例如,接口eth0.1是具有eth0作为物理链路的虚拟接口,VLAN ID为1。

有关更多信息,请检查 man 5 vlan-interfaces。基本上,您可以为您的vlan界面指定任何名称,并使用 vlan-raw-device 将vlan与您的NIC关联。例如,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

1
2018-05-08 17:44





不确定这是否也适用于Debian,但是在Ubuntu(和Red Hat)中,这可以通过编辑/etc/udev/rules.d/persistent-net.rules(或类似的;我无法完成)轻松完成。校验)

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

  • 将已知语义分配给接口(例如'management0','front0','back0')
  • 具有可预测的名称使配置管理脚本等更容易运行(特别是防火墙规则)

你确实需要确保你的团队知道这一点。这不是问题,通常非常受欢迎,特别是当您在系统中有许多接口时(eth8在具有到SAN存储的冗余绑定链接的主机中并非不合理)

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

  • VLAN ID不是那么令人难忘,容易输错和查看。
  • 主机通常没有简单的方法来确定它所在的VLAN(如果有的话),或者它是否是本地VLAN,以及访问或中继端口(如果tcpdump用于CDP消息,有时可以从主机手动执行此操作)知道什么流量映射到哪个VLAN)。因此,该配置是基于信念的配置,其很容易变得无效。

0
2018-05-09 10:14





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

$ nmcli con在dev eno1 id 10之外添加类型vlan ifname


0
2018-01-31 13:12





所以这很好用。

在/ 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以及其他人在接口中man是以自己的方式做事的神奇钩子。


0
2017-12-01 04:38