设备 eth0 的 MAC 地址与预期不同

设备 eth0 的 MAC 地址与预期不同

我有一台运行 CentOS 5.x 的 HP Proliant 460c 刀片服务器。出于某种原因,CentOS 认为 ETH0 的 MAC 地址是某个地址 (18:a9:05:71:xx:xc),但我在板载管理器上根本找不到该 MAC。事实上,如果我使用板载管理器中显示的 MAC 地址并尝试将其硬编码到网卡 (在 /etc/sysconfig/network-script/ifcfg-eth0 下),我会收到错误:

设备 eth0 的 MAC 地址与预期不同。

在哪里可以明确确认系统在 MAC 地址上看到的内容? ifconfig -a 显示“不正确”的。


在 CenTOS 主机上,我在 ifconfig 结果中看到了这一点(稍作修改以保护无辜者):

eth0 HW 18:a9:05:71:xx:xc
eth0:0 HW 18:a9:05:71:xx:xc
eth1 HW 18:A9:05:71:xx:xd  
eth1:0 HW 18:A9:05:71:xx:xd
eth2 HW F4:CE:46:8X:XX:40
eth3 HW F4:CE:46:8X:XX:44

我不确定 18:a9 MAC 地址来自哪里。

当我检查属于服务器的设备托架的端口映射时,我看到:

Mezzanine Device Port: ENET1  
Device ID: d4:85:64:49:xx:x8

Mezzanine Device Port: iSCSI Port 1  
Device ID: F5:CE:46:83:xx:x1

Mezzanine Device Port: ENET2  
Device ID: d4:85:64:49:xx:xc

Mezzanine Device Port: ISCSI Port 2   
Device ID: F5:CE:46:xx:xx:x1

我也看到了

Mezzanine Device Port: Port 1  
Device ID: d4:85:64:xx:xx:be

Mezzanine Device Port: Port 2   
Device ID: d4:85:64:xx:xx:bf

请注意,它们都不属于 CentOS 认为应该存在的 MAC。我还完全重新安装了 CentOS,但问题仍然存在。因此,系统上的某些东西似乎告诉 CentOS 应该使用 MAC,但我不确定在哪里。

答案1

这可能是 HP 刀片机箱设置所特有的。既然您提到这是刀片服务器,您知道刀片机箱是否安装了 HP Virtual Connect 模块吗?这些模块通常用于代替直通以太网上行链路,以帮助整合和虚拟化刀片网络。

如果您有 Virtual Connect 模块,请检查 Virtual Connect Manager 中的服务器配置文件。有选项可以使用 Virtual Connect 管理服务器 MAC 地址。请参阅虚拟连接安装指南有关该功能的解释:

每个服务器刀片以太网 NIC 都附带一个出厂默认 MAC 地址。MAC 地址是一个 48 位数字,用于向网络上的其他设备唯一标识以太网接口。虽然硬件附带默认 MAC 地址,但 Virtual Connect 可以分配 MAC 地址来覆盖出厂默认 MAC 地址,同时服务器仍保留在该 Virtual Connect 机箱中。

发布的其他答案当然适用于物理机架/塔式服务器中的多个 NICS,但 HP 刀片解决方案是一个非常特殊的情况。

答案2

通常,这是由于udev

消除/etc/udev/rules.d/70-persistent-net.rules

然后卸载并加载以太网驱动程序(模块),或重新启动。您可以通过尝试以下命令来找到驱动程序名称

dmesg | grep 'Ethernet driver'
grep 'Ethernet driver' /var/log/dmesg
grep eth0 /etc/modules.conf

然后当你有了模块名称(例如e1000e)时,只需运行,

modprobe -r e1000e
modprobe e1000e
ifdown eth0
ifdown eth0 (again!)
ifup eth0

这应该会提示udev您重新检测您的 NIC 和 mac 地址。您可能需要更新内容以/etc/sysconfig/network-scripts/ifcfg-eth0适应 mac 地址。

答案3

从我的文档中复制:

  • 操作系统中存储此信息的部分位于 udev 配置中。编辑此配置:vi /etc/udev/rules.d/70-persistent-net.rules

  • 找到与旧 MAC 地址相关的行(即不是你刚记下的那个)并将其删除

  • 与新设备相对应的行可能提到了eth1而不是eth0。将其替换为eth0

  • 重新启动(使新设置生效的最简单方法)

  • 如果您尝试使用 启动 eth0 ifup,它会抱怨 MAC 地址不是预期的。惊喜!MAC 地址也存储在设备的网络脚本中。编辑网络脚本: vi /etc/sysconfig/network-scripts/ifcfg-eth0

  • 更改该HWADDR行以反映正确的 MAC 地址

  • 在这里,设置一个有效的 IP 地址。nmap如果你不确定有什么可用的,请使用

  • 现在你可以调出界面:ifup eth0

  • 不要忘记更新:yum update

相关内容