我有一台运行 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