双网卡主板上的 MAC 地址

双网卡主板上的 MAC 地址

这是一个奇怪的问题。

我们有许多配备双网卡主板的设备。有些是 Realtek 网卡,质量很差。有些是 Intel e1000,质量不错。

我刚刚注意到有两台机器,一台是英特尔网卡,一台是 Realtek,当我将一台机器的 MAC 地址放入dhcpd.conf我们的 DHCP 服务器上的文件中,以使其通过 PXE 启动机器进入重建环境时,最初一切都很好。

服务器获得 DHCP 分配,PXE 启动进入 Ubuntu 预置环境。

在一两台机器上,它到达 Ubuntu 的 DHCP 网络配置,并失败。如果我打开 busybox shell(在tty2安装机器上),然后运行ip link,我可以看到 UP 标志已设置在其他网卡。

这是一些东西。

  host xeon16-ghz240-gb48-node1 {
        hardware ethernet BC:AE:C5:07:1F:18;
        filename "pxelinux.0";
        next-server 192.168.123.80;
  }

这就是dhcpd.conf

恶意机器上的 ip link 是这样的。 ip 链接输出

实际只连接了一个 NIC(故意的)。

如您所见,dhcpd 配置中的 NIC 未标记为 UP,并且 UP 的链接不是 DHCP 中的链接。

到目前为止,我已经在两个品牌的双 NIC 配置上看到过这种情况。

有人知道 1) 是什么原因造成的,以及 b) 我们能做什么吗?

答案1

做任何事情总有多种方法:)

解决方案 1

每种主板各有一个吗?

ethtool -i eth0将支持 Realtek 卡的任何模块 ( ) 列入黑名单。

Ubuntu支持 module_name.blacklist=yes在启动时将其列入黑名单,您应该能够在预置环境中更改 modprobe 选项,以便它以后不会被探测。


解决方案 2

让我重新表述一下这个问题:

我们的主板有两个 NIC,我们希望无论插入哪个接口,它们都能正常工作。我们无法始终确定将插入哪个接口(从操作系统的角度来看)。

设置绑定!使用主动-被动配置 ( mode=active-backup miimon=100),将两个接口都设为从属接口。这样,无论插入哪个接口,它都会正常工作。


解决方案 3

主板是否足够一致,以至于网卡总是出现在相同的 PCI ID 上?使用 udev 规则始终将特定 PCI 地址上的卡分配给 eth0,将另一个地址上的卡分配给 eth1。

请注意,您可以有两个不同的 udev 规则将设备分配给 eth0 - 这使您可以同时处理 Realtek 和 e1000 的情况。

答案2

您可以尝试添加 PXELINUXIPAPPEND 2pxelinux.cfg 文件中的选项来告诉 init 脚本使用执行 PXE 引导的接口:

/var/lib/tftpboot/pxelinux.cfg/默认

LABEL linux
   KERNEL /ubuntu/casper/vmlinuz 
   APPEND initrd=/ubuntu/casper/initrd.gz root=/dev/nfs boot=casper netboot=nfs nfsroot=192.168.1.1:/var/lib/tftpboot/ubuntu --
   IPAPPEND 2

看: http://www.syslinux.org/wiki/index.php/SYSLINUX#IPAPPEND_flag_val_.5BPXELINUX_only.5D

相关内容