NICが1枚だけ刺さったマシンに仮想化で複数の仮想マシンを作成した場合、それらの仮想マシンは外部からどう見えるんだろう?と謎だった。
NICが1枚ということはMACアドレスは一つな筈だから。
Xenの場合はどうも、
1.仮想マシンがそれぞれ固有の仮想MACアドレス、仮想IPアドレスを持ち、
2.現実のNICはプロミスキャスモードで動かし、よってNICは全部のEtherパケットをDomain0のOSに渡し、
3.Domain0が受信した電文をMACアドレス毎に各DomainUな仮想マシンに振り分け?あるいは全部のDomainUが全部のパケットを受信?この辺は謎。
4.とにかく対応する仮想MACアドレスと仮想IPアドレスを持つ仮想マシンが、ARPリクエストにリプライしたり普通のIPパケットを扱ったり
な模様。何となくイメージはできた。現実のNICMACアドレスは使わない?
ちなみに仮想マシンの仮想MACアドレスはどうやって決めるのだろうか?NICのはハードメーカーが全宇宙的に一意を保証してるけど仮想MACアドレスだと何でも設定できそうでカブる事もありそう。MACアドレスかぶると非常にまずい事になるのは言うまでも無い。
あとプロミスキャスモードだと(当たり前だが)関係ないパケットまで上がってきちゃって能率がどうなんだろう?