如何为网络设备创建别名?


13

我正在尝试运行一个使用许可证管理器的特定软件,该软件还没有注意到较新的Linux发行版不再命名其网络设备eth0。它正在尝试验证MAC地址,但是由于ens1在Centos 7上调用了我的NIC,因此无法正常工作。

该软件的供应商已将此问题固定在另一台计算机上,我想了解他们是如何做到的。他们为其创建了某种别名,ens1以便许可证管理器可以eth0再次查找。

如果我这样做ifconfig -a,别名根本不会显示,但是在显式调用时可见ifconfig eth0。使用该ip link命令可以看到以下内容:

eth0@ens1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
link/ether [mac address] brd ff:ff:ff:ff:ff:ff

他们在这里究竟做了什么?如何在另一台计算机上重新创建这种别名?


2
他们可能使用了ip link set ens1 name eth0@ens1吗?我怀疑这样的重启是否会成功,但是也许您可以更改DEVICE线路ifcfg-ens1或进行其他更改?您可以同时在列表中看到eth0@ens1和,也可以仅看到新名称吗?ens1ip link
Eric Renouf

1
我刚刚在VM中进行了测试-也ip link set ens1 name eth0@ens1显示了新名称ifconfig -a。并在您运行时ip link set ens1 alias eth0显示alias eth0在单独的行上ip link
cas 2015年

Answers:


5

这可能是使用该macvlan功能完成的。它允许在现有硬件接口之上添加虚拟以太网接口。就您而言,可以这样完成:

ip link add link ens1 name eth0 type macvlan

默认情况下,新接口将获得一个随机选择的本地管理的单播MAC地址。或者,您可以使用指定MAC地址address <MAC>


1

您可以使用udev规则将NIC重命名为旧eth0样式。

例如,编辑/etc/udev/rules.d/70-persistent-net.rules一条这样的行:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

xx:xx:xx:xx:xx:xxNIC的MAC地址在哪里。

您还必须更新任何网络配置,以便它使用eth0名称而不是ens1

有关为什么会发生此更改的更多信息,请参见可预测的网络接口名称


2
我想避免完全重命名接口,并且我也很好奇它们实现别名的方式。
2015年

1
我以前从未见过该eth0@ens1表格,因此对其进行谷歌搜索只会显示您的问题。你试过了grep -r eth0 /etc吗?如果找到它,请发帖,因为我也很好奇。
cas 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.