レプリケートされたLinux VMが同じIPで競合するのはなぜですか?

レプリケートされたLinux VMが同じIPで競合するのはなぜですか?

Ubuntu 17.10テンプレートから2つのvSphere仮想マシンを複製しました。起動時に、彼らはすべて同じIPを要求し、それを置いて競います(IPが2つの間で切り替えられると、SSH接続は失われます)。

両方のシステムのホスト名とMACアドレスが異なります。dhclient2つの別々のIPが正しく宣言されましたが、使用されているリゾルバーはですsystemd-networkd

答え1

systemd-networkdさまざまな方法でDUIDを作成しますdhclientdhclient デフォルトではリンクレイヤアドレスを使用同時にsystemd-networkd使用コンテンツ/etc/machine-id。仮想マシンは複製されているため、IPは同じで、machine-idDHCPサーバーは両方に対して同じIPを返します。

変更するには、に従って新しいものを作成する必要があります/etc/machine-id/etc/machine-idを変更できますか?、最良の方法は削除して/etc/machine-id再起動することです。ほとんどのシステムでは、ブートプロセスは/etc/machine-id自動的に新しいプロセスを作成します。追加情報を提供してくれたJdeBPとAndy Fraleyに感謝します。

答え2

ネットワークの計画と構成はどうですか?次のように使用できるオプションがありますdhcp-configuration(ソース:ネットワーク計画の例):

network:
  version: 2
  ethernets:
    enp3s0:
      dhcp4: yes
      dhcp-identifier: mac

デフォルトでは machine-id を使用しますが、この機能を変更すると、そうしないように「強制」できます。

から抜粋マンページ/ネットワーク計画、より多くの洞察力を提供します。

       dhcp-identifier (scalar)
              When  set  to `mac'; pass that setting over to systemd-networkd to use the device's
              MAC address as a unique identifier rather than a RFC4361-compliant Client ID.  This
              has no effect when NetworkManager is used as a renderer.

関連情報