1 min read

VMのMACとDHCPのMACが違う(解決)

環境

  • ホスト: ESXi 6.0u3
  • ゲスト: Debian 10 (buster)
  • DHCP Server: RTX1200

解決策

$ diff /etc/dhcp/dhclient.conf.bak /etc/dhcp/dhclient.conf
21a22
> send dhcp-client-identifier = hardware;

これでRTX1200のDHCP鯖で違うMACの認識にならない。(RFC2131準拠になるらしい)

IP固定する場合、RTX1200側では
dhcp scope bind 1 10.0.0.150 00:0c:29:7a:a6:23
と設定していたのを
dhcp scope bind 1 10.0.0.150 ethernet 00:0c:29:7a:a6:23
とする。(ethernetが必要)

しかしこれでもservice networking restartrebootでちゃんとIPが割り当てられないことがある。
一旦RTX1200側で予約以外にIPを発行しないように制限する。
dhcp scope lease type 1 bind-only 1はDHCPのスコープID
VMでservice networking restartまたはreboot
そしたら正常に取得される。
以降bind-onlyの設定を削除してもちゃんと取得されるので、先頭にnoをつけて設定を削除してOK。

busterにしたらDockerが死んだ

$ diff docker.service docker.service.bak 
14c14
< ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -s overlay2
---
> ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

参考

以下問題提起

なんで?

例1

  • ゲストのDebianのMAC: 00:0c:29:e0:97:a7 (ESXi上でもこう認識されている)
  • DHCPで認識されたMAC: 29:e0:97:a7:00:01

例2

  • ゲストのDebianのMAC: 00:0c:29:7a:a6:23 (ESXi上でもこう認識されている)
  • DHCPで認識されたMAC: 29:7a:a6:23:00:01

規則性

先頭の00:0cが切られて最後に00:01が追加されたMACがDHCPで認識されているということはわかる。

dhclient

sudo dhclient -r ens192 && sudo dhclient ens192

をすればDHCP鯖で正しいMACで認識される。
しかしこれは永続的なものではなく、リース期間が終わって再取得されると元に戻るし、再起動しても元に戻る。

結局どうすればいいの

Debian9まではこんなことなかった。
10(buster)をクリーンインストールしても9からアップグレードしても同じ現象が起こる。

おしえて