2009年10月12日月曜日

仮想 MAC アドレスについての考察

情報ネットワーク科 2 年の小澤泰雅 (おざわたいが) です。

http://system-design-club.blogspot.com/2009/10/mac.html
前回出た疑問について調べてみました。



ホスト OS から見る仮想 MAC アドレスと、ゲスト OS から見る MAC アドレスが違うのは何故か?

まず、本当に違うのかどうか確かめてみました。

(ホスト OS - 仮想 NIC1)

(ホスト OS - 仮想 NIC2)

(ホスト OS - 物理 NIC)

(ゲスト OS)

違うことは確かなようです。
ホスト OS の物理 NIC は 00-C0-9F-**...、仮想 NIC は 00-50-56-**...、ゲスト OS は 00-0C-29-**...となっています。
特に、ホスト OS の仮想 NIC とゲスト OS のベンダー ID が違うのは意外です。



なぜ MAC アドレスが違うのか?

ここに答えが載っていました。

「Securing Virtual Machines and the Host」という項に、『Virtual switch』という記述があります。

つまり、ホスト OS から見える仮想 NIC の MAC アドレスは、正確には『仮想 NIC ではなく、仮想スイッチの MAC アドレス』であることがわかります。

また仮想 NIC であるなら、ホスト OS から見える仮想 NIC は『DHCP enabled』が『ON』になっていなくてはならないはずです。


また、VMWare Server には『Manage Virtual Networks』というメニューがあり、その中には 3 つ仮想スイッチが並んでいます。



インストールした直後はこの設定が何のことかわからなかったのですが、先ほどの仮想スイッチの概念を踏まえると、上から


「ホスト OS 上の物理 NIC に接続された仮想スイッチに、仮想 LAN ケーブルを接続してネットワークに直接参加する」

「ホスト OS のプライベートネットワークに参加する (ホスト OS とゲスト OS で構成されるLAN)」

「ホスト OS の IP アドレスを使用し、NAT でネットワークに参加する」


という設定項目であることがわかりました。


また、ベンダー ID が異なるのは、

明示的に設定された MAC アドレス (仮想スイッチ) については『00-50-56

自動生成された MAC アドレス (ゲスト OS) については『00-0C-29

として使い分けされているようです。




(追記)

仮想インターフェースについてわかりやすい図が置いてあります。

http://kaede.blog.abk.nu/vmnet


『00-0C-29』についてはVMWare公式に載っていました。

http://www.vmware.com/support/esx21/doc/esx21admin_MACaddress.html

2 件のコメント:

  1. 調査ありがとう。
    2点確認させてください。
    ・ゲストOS「00-0C-29」はVM特有のものでしょうか?他の仮想化ソフトでも、何になるか調査したいですね。
    ・前回2つの仮想インターフェースがあったといいましたが、これはゲストOS用インターフェースと仮想スイッチ用インターフェースで2つという認識でいいでしょうか?

    わかりやすいまとめ方ありがとう。
    早く資産管理調査部隊の結果をみたいですね。

    返信削除
  2. > ・ゲストOS「00-0C-29」はVM特有のものでしょうか?

    VMWare特有のMACアドレスです。
    ブログを書いたあとに見つけましたが、VMWare公式に以下のようなページがありました。
    http://www.vmware.com/support/esx21/doc/esx21admin_MACaddress.html

    原文: The VMware OUI for automatically generated MAC addresses is
    00:0C:29. Thus the first three bytes of the MAC address that is
    automatically generated for each virtual network adapter have this
    value. ESX Server then uses a MAC address generation algorithm to
    produce the other three bytes. The algorithm guarantees unique MAC
    addresses within a machine and attempts to provide unique MAC
    addresses between ESX Server machines.

    訳文(適当): VMWareは固有のMACアドレスとして00:0C:29を自動的に生成します。仮想ネットワークアダプタの最初の3バイトはこの値が使用されます。他の3バイトは、アルゴリズムを使用して被らないように保証します。

    > ・前回2つの仮想インターフェースがあったといいましたが、これはゲストOS用インターフェースと仮想スイッチ用インターフェースで2つという認識でいいでしょうか?

    そうです。
    私のブログの記事で言うと、正確には『Host only network (閉じたプライベートLAN)
    用のvmnet1』と『NAT構成用のvmnet8』の2つです。
    図にした物が以下にありました。わかりやすいので見てみてください。
    http://kaede.blog.abk.nu/vmnet

    返信削除