我有一个 Linux 系统(Slackware Linux 13.0),有两个网络接口。我们称它们为 NIC0 和 NIC1
我的目标是让 NIC0 在系统中显示为 eth0。
我知道这可以通过将网络别名映射到网络接口的 MAC 地址的 udev 规则来实现。在 Slackware Linux 中,文件/etc/udev/rules.d/70-persistent-net.rules包含这样的规则。
我的问题中最棘手的部分是我需要伪造 NIC0 的 MAC 地址。我知道我可以使用以下命令动态更改网络接口的 MAC 地址:
ifconfig eth0 hw ether <new MAC address>
你看到问题了吗?这假设网络接口已经设置好了。
所以我的问题是:如果我有针对 NIC1 的 udev 规则(该规则将作为 eth1 启动,并具有其原始 MAC 地址),系统是否足以默认将另一个网络接口(NIC0)作为 eth0?这样,我可以在 udev 机制完成并启动网络别名后更改其 MAC 地址。
答案1
我使用 Slackware 10 作为参考,因此配置文件可能会略有不同。
/etc/rc.d/rc.inet1
是网络接口的初始化脚本,我从这里开始自定义任何启动时间网络配置。
看起来这个 init 脚本没有任何指定硬件地址的逻辑。但是,简单修改一下就可以启用此功能。
就您的具体问题而言,我想您是在问在 udev 中将 NIC1 指定为 eth1 是否会导致 NIC0 默认为 eth0?如果是,那么很有可能,但我建议测试一下。否则,请澄清一下。