web-dev-qa-db-ja.com

デバイスeth0のMACアドレスが予想と異なります

CentOS 5.xを実行するHP Proliant 460cブレードサーバーを持っています。何らかの理由で、CentOSはETH0のMACアドレスを何か(18:a9:05:71:xx:xc)と見なしていますが、オンボード管理者でそのMACを見つけることができません。実際、オンボード管理者に表示されるMACアドレスを使用してそれをNIC(/ 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を使用するように指示しているようですが、どこにあるのかわかりません。

3
Mike B

これは、HPブレードシャーシのセットアップに固有の機能です。これはブレードサーバーであるとのことですが、ブレードシャーシにHP Virtual Connectモジュールがインストールされているかどうかはわかりますか?これらは、パススルーイーサネットアップリンクの代わりによく使用され、ブレードネットワークの統合と仮想化に役立ちます。

Virtual Connectモジュールがある場合は、Virtual Connect Managerでサーバープロファイルを確認してください。 Virtual Connectを使用してサーバーのMACアドレスを管理するオプションがあります。機能の説明については、 Virtual Connectインストールガイド の64ページを参照してください。

各サーバーブレードイーサネットNICは工場出荷時のデフォルトMACアドレスで出荷されます。MACアドレスは、他のデバイスへのイーサネットインターフェイスを一意に識別する48ビットの番号ですハードウェアはデフォルトのMACアドレスで出荷されますが、サーバーがそのVirtual Connectエンクロージャーに残っている間、バーチャルコネクトは工場出荷時のデフォルトMACアドレスを上書きするMACアドレスを割り当てることができます。

掲載されている他の回答は確かに物理ラック/タワーサーバーの複数のNICSに適用されますが、HPブレードソリューションは非常に特殊なケースです。

4
ewwhite

通常、これは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

NICおよびMACアドレスを再検出するためにudevを要求する必要があります。Macアドレスに合わせて/etc/sysconfig/network-scripts/ifcfg-eth0の内容を更新する必要がある場合があります。

私のドキュメントからコピー:

  • これを格納するOSの部分は、udev構成にあります。この構成を編集:vi /etc/udev/rules.d/70-persistent-net.rules

  • 古いMACアドレス(メモしたばかりのアドレスではない)に関連する行を見つけて削除します。

  • 新しいデバイスに対応する行には、おそらくeth1ではなくeth0と記載されています。 eth0に置き換えます。

  • 再起動(新しい設定を有効にする最も簡単な方法)

  • ifupを使用してeth0を起動しようとすると、MACアドレスが予期したものではないというメッセージが表示されます。驚き! MACアドレスは、デバイスのネットワークスクリプトにも保存されます。ネットワークスクリプトを編集します:vi /etc/sysconfig/network-scripts/ifcfg-eth0

  • 正しいMACアドレスを反映するようにHWADDR行を変更します

  • ここにいる間に、有効なIPアドレスを設定します。何が利用可能かわからない場合はnmapを使用してください

  • これでインターフェイスを起動できます:ifup eth0

  • 更新することを忘れないでください:yum update

3
Joel E Salas