仮想化ホスト (VSphere または SCVVM のいずれか) には、1 Gbps の NIC が 2 つと 10 Gbps の NIC が 2 つ、合計 4 つの NIC があります。このマシンは、一意の名前 (vSwitch0 や vSwitch1 など) を持つ 2 つの vSwitch 上で VM をホストします。1 つは 1 Gbps の NIC 上にあり、もう 1 つは 10 Gbps の NIC 上にあります。
この VM は、インポート VM 定義と空の仮想ディスクを作成し、OS をインストールし、その他のソフトウェアをインストールするなど、長い PowerShell プロセスを通じて自動的に生成されます。
問題は、ゲスト OS (Server 2012 R2) では、ネットワーク アダプタが単に「イーサネット アダプタ」および「イーサネット アダプタ 1」とラベル付けされていることです。どれが「vSwitch0」または「vSwitch1」にあるかわかりません。各アダプタには、接続されている仮想スイッチに基づいて非常に具体的な IP が必要です。
何かアイデアはありますか? ゲスト OS を構成する PowerShell スクリプトでこれを何らかの方法で構成する必要があります。
前もって感謝します!
答え1
これを実行する最も簡単な方法は、VM 構成から各ネットワーク アダプタの MAC アドレスを何らかの方法で抽出し、それを VM 内の NIC と照合することです。
必ずしもそうする必要はありませんセットMACアドレス - カスタムアドレスを指定しない場合、vSphereは自動的にMACアドレスを割り当てます(割り当ては、すでに使用されているアドレスを再割り当てしないようにするほどインテリジェントなので、競合を心配する必要はありません)。その後、VMの構成を照会できます。後作成された NIC を確認し、これを OS に表示される NIC と照合します。例:
まず、vSphere 経由で VM 構成を照会します。
- NICAvSwitch0に接続され、MACアドレスを持つ
00:56:3f:00:21:12
- NICBvSwitch1に接続され、MACアドレスを持つ
00:56:3f:12:32:4a
次に、作成後にゲスト OS 内に存在する NIC を照会します。
- イーサネットアダプタMACアドレスを持っている
00:56:3f:12:32:4a
のでNICBそして、vスイッチ1 - イーサネットアダプタ 1MACアドレスを持っている
00:56:3f:00:21:12
のでNICAそして、vスイッチ0
これをプログラム的に実行できるかもしれませんが、vSphere PowerShell CLI に精通していないため、確実にはわかりません。
答え2
デュアルホームの仮想マシンでこの問題に対処した方法は、1 つのネットワークに DHCP サーバーを配置し、DHCP で割り当てられた IP アドレスを取得する vNIC が DHCP サーバーがあるネットワークに接続されていることを確認することです。APIPA アドレスを自身に割り当てる NIC は、他のネットワークに接続されます。これは粗雑ですが機能します。この目的のためだけに DHCP サーバーをセットアップしたくないかもしれませんが、私の場合は DHCP サーバーを使用しているため、各 vNIC がどのネットワークに接続されているかを識別できるという点で幸運です。