NIC カードを交換しても vmk0 管理ネットワークの MAC アドレスが更新されないか、vmkernel に重複する MAC アドレスが存在する
search cancel

NIC カードを交換しても vmk0 管理ネットワークの MAC アドレスが更新されないか、vmkernel に重複する MAC アドレスが存在する

book

Article ID: 336902

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

 

  • NIC に新しい MAC アドレスを割り当てるか、MAC アドレスを置換した後、コマンド ラインから esxcfg-vmknic –l コマンドを実行しても、vmk0 管理ネットワークの MAC アドレスが更新されないことがあります。ESXi ホストのデフォルトの設定は、「新しいハードウェア MAC アドレスを選択しない」になっています。
  • ESXi ホストで、管理ネットワークにアクセスできません。
  • vmkernel に対して ping できません。
  • 再構築済みの廃止された ESXi 物理サーバに対して ping できません。
  • 状況によっては、ESXi vmkernel が、異なる物理サーバ上の以前の ESXi インストール環境の MAC アドレスを保持しているため、ネットワーク上に重複する MAC アドレスが現れることがあります。
  • 以前のサーバへの最初のインストール時に、vmkernel vmk0 インターフェイスで、いずれかの vmknic インターフェイスに割り当てられた物理サーバの MAC アドレスが使用され、ランダムなアドレス 00:50:56::XX:XX:XX が使用されません。
  • インストール環境の USB またはローカル ディスクが別のサーバに移動またはコピー(LUN の場合)された場合にサーバを廃止すると、新しいサーバの vmkernel vmk0 インターフェイスで、以前のサーバの物理 MAC アドレスがそのまま使用されます。



Symptoms:
免責事項:これは英文の記事「vmk0 management network MAC address is not updated when NIC card is replaced or vmkernel has duplicate MAC address」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

Environment

VMware vSphere ESXi 7.0.x
VMware vSphere ESXi 8.0.x

Resolution

重複する MAC アドレス

すべての物理 NIC の物理 MAC アドレスとそのリンク ステータス、既存の vSwitch の構成、現在の vmkernel インターフェイスの構成をチェックして確認します。ESXi では、次のコマンドを使用します。

# esxcfg-nics -l
# esxcfg-vswitch -l
# esxcfg-vmknic -l

MAC アドレスが重複していることが分かったら、vmkernel インターフェイスをいったん削除してから再作成して、MAC アドレスを変更する必要があります。
 
ポート グループから vmknic を削除するには、次のコマンドを使用します。

# esxcfg-vmknic -d -p pgName

または

# esxcfg-vmknic -d pgName

ポート グループに vmknic を追加するには、次のコマンドを実行します。

# esxcfg-vmknic -a -i DHCP -p pgName

または

# esxcfg-vmknic -a -i x.x.x.x -n 255.255.255.0 pgName
 
回避策
 
この問題を回避するには、ESXi ホスト上で、MAC アドレスを手動で構成します。
  1. トラブルシューティング用コンソールで、次のコマンドを実行します。

    esxcfg-advcfg -s 1 /Net/FollowHardwareMac

  2. ESXi サーバを再起動します。


追加情報

ESXi 7.xでのホストの再起動後に /Net/FollowHardwareMac オプションがの通りの挙動とならない場合は、 ESXi ホストの configstore で vmk0 の mac_mode が PNIC_BASED に設定されていることを確認してください。

configstoreを確認して適切に更新する手順は次のとおりです。
1)現在の configstore vmknic 設定をエクスポートします。
  #configstorecli config current get -c esx -g network -k vmknics >> / tmp / My-Net。json
2)既存の "mac" 行を削除し、vmk0 に対する "mac_mode" および "nic" 設定を変更します。
  #vi /tmp/My-Net.json   <---- "mac" 行を削除し、以下の2行を追加/変更します。 
   "mac_mode": "PNIC_BASED",
   "nic": "vmnic0",
  # cat /tmp/My-Net.json(検証)

例: 
[root@vESXi70-2:~] cat /tmp/My-Net.json
[
  {
   "device": "vmk0",
   "enabled": true,
   "enabled_services": {
     "management": true
   },
   "ip": {
     "dhcp": false,
     "dhcp_dns": false,
     "ipv4_address": "10.0.xx.yy",
     "ipv4_subnet_mask": "255.255.255.0",
     "ipv6": {
      "auto_configuration_enabled": true,
      "dhcp": false,
      "dhcp_dns": false
     },
     "ipv6_enabled": true
   },
   "ip_route_default_gateway": "10.0.xx.yy",
   "ip_route_ip_v6_default_gateway": "::",
   "mac_mode": "PNIC_BASED", <------------------ この行を変更
   "nic": "vmnic0",              <------------------ この行を変更
   "net_stack_instance_key": "defaultTcpipStack",
   "port_connection_type": "VSS_PORT_GROUP",
   "port_group": "VMkernel",
   "tso_mss": 0
  }
]
3) Config-storeのバックアップコピーを作成します。 
# cp /tmp/My-Net.json /My-Net.json
4) /tmp/My-Net.json に加えられた変更を configstore にインポートします。
# configstorecli config current set -c esx -g network -k vmknics -infile /tmp/My-Net.json
5) configstoreに加えられた変更を確認します。
# configstorecli config current get -c esx -g network -k vmknics

重複する IP アドレスを監視するアラームの作成:この方法は、重複する MAC アドレスを警告する場合にも適用できます。

ESXi では、重複アドレスの監視結果を VMkernel ログに出力するだけでなく、/var/log/vobd.log ファイル(VMkernel Observation の略)にも記録します。この監視結果はエラー発生時にエラーを特定する重要な情報を提供するだけでなく、通常、トラブルシューティングにも使用されます。ここでは、IP アドレスが重複しているために、ESXi ホストへのネットワーク接続が途切れるケースを考えてみます。VOB を利用することにより、特定の VOB エントリが検出されたとき、vCenter アラームを作成できます。

ESXi ホストの重複する IP アドレスが検出されたときも、まったく同じように処理できます。まず、/var/log/vobd.log ファイルを確認して VOB ID を特定します(重複 IP アドレスまたは重複 MAC アドレスがないかどうか)。

YYYY-01-21T15:02:07.513Z: [netCorrelator] 917174784727us: [esx.problem.net.vmknic.ip.duplicate] Duplicate IP address detected for xx.xx.xx.xx on interface vmk0, current owner being xx:xx:xx:xx:xx:xx

  • この例の VOB ID は、esx.problem.net.vmknic.ip.duplicate (IP アドレスが重複している場合)、あるいは VmMacConflictEvent または VmStaticMacConflictEvent (MAC アドレスが競合している場合)であり、これが vCenter アラームのトリガーに使用されます。
  • 前述のログの引用は単なる例です。日付、時間、および環境変数は、環境によって異なる場合があります。

アラームを作成するには、次の手順を実行します。
  1. 新しいアラームを作成し、名前を指定します。監視タイプにはホストを指定し、特定のイベントを監視します。
  2. 上記で特定した VOB ID をコピーして、アラームのトリガーとして指定します。
  3. 電子メールによる通知を受け取る場合、または SNMP トラップを送信する場合は、追加のアクションを設定するか、[次へ] をクリックします(ユーザー インターフェイスに vCenter Server アラートが表示されます)。
  4. アラームのトリガーを確認するには、ESXi ホストの IP アドレス/MAC アドレスを持つテスト仮想マシンとして、この仮想マシンを割り当てます。アラームがタスク/イベントに表示されるようになります。



Additional Information