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

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

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

该软件的供应商已经在另一台计算机上修复了此问题,我想了解他们是如何做到这一点的。他们创建了某种别名,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

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

答案1

这可能是使用该macvlan功能完成的。它允许在现有硬件接口之上添加虚拟以太网接口。对于你的情况,可以这样做:

ip link add link ens1 name eth0 type macvlan

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

答案2

您可以使用 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:xx您的 NIC 的 MAC 地址在哪里。

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

可预测的网络接口名称了解有关为何发生此更改的更多信息。

相关内容