第二回では、仮想マシンから外部ネットワークへの通信(North-South)について書きました。
今回は、仮想マシン間通信(East-West)について記載していきたいと思います。
East-West 通信
今回は、以下のネットワークトポロジのように、任意のルータ配下に2つのネットワークを作成し、
それぞれのサブネットに対して仮想マシンをぶら下げる構成を採用しています。
仮想マシン VM#4 は、compute02 ノードに、その他の仮想マシンは、compute01 ノードに配置しています。
同一サブネットの仮想マシン間の通信
まず、上のネットワークトポロジで青く塗られている領域の仮想マシン間通信について確認していきます。
この場合、仮想ルータは通らず、br-int を経由して直接宛先の仮想マシンへ通信を行います。
サブネットの異なる仮想マシン間の通信(同一ホスト)
次に、サブネットの異なる仮想マシン間で通信を行う場合について確認してきます。
このケースでは、以下のステップの通り、仮想ルータを経由し、VM#3へと接続します。
- まず、Subnet A に属する仮想ルータ(qrouter-***)のインターフェース(qr-***#1)へと向かいます。
- 仮想ルータ(qrouter-***)へ到達後、Src MAC が qr-***#2 の MAC に、Dst MAC が VM#3 の MAC となり、
Subnet B に属している VM#3 まで到達します。
サブネットの異なる仮想マシン間の通信(別ホスト)
最後に、別々の Compute Node に配置したサブネットの異なる仮想マシン間の通信について説明したいと思います。
このケースでは、主に以下のような特徴がうかがえます。
- 仮想マシンから出ていく側の通信は、まず、自身の Compute Node の仮想ルータへ向かう
- 上記の仕様により、Request と Reply の通信経路が異なる
- Compute Node 間の通信の際は、br-tun にて、Src MAC が、DVRの自ノードMACに書き換えられる