この記事は Nicolas Vibert 氏のブログ Port Mirroring on VMware Cloud on AWS の翻訳です。 翻訳の一覧はこちら

この短いブログ記事では、VMware Cloud on AWS でポートミラーリングを設定する方法を紹介します。

ポートミラーリングとは、仮想スイッチや物理スイッチ上の機能で、あるポートからすべてのパケットをキャプチャして宛先デバイスに送信することができます。

一般的には以下のようなユースケースで使用されます。

  • トラフィックを高度なファイアウォール(IPS / IDS)にコピーしてトラフィックを検査します。
  • ボイスレコーダー(顧客との会話を録音するために「コールセンター」でよく使用されます)に音声トラフィックをコピーします。
  • そして最後に、主にトラブルシューティングに使用します。パケットロスやアプリケーションの問題を把握するために、パケットキャプチャソフト「Wireshark」にトラフィックをミラーリングすることがよくあります。

ポートミラーリングでは、ユーザーは常に以下のことを決めなければなりません。

  • どのトラフィックを監視するか(「ソース」)
  • どの方向か(「ソース」へのトラフィック、「ソース」からのトラフィック、またはその両方)
  • 監視したパケットをどこへ送信したいか (ローカル、または、リモートの監視デバイス)

ポートミラーリング セッションには異なるタイプがあります。ローカル スイッチ ポート アナライザ(SPAN)、リモート SPAN(RSPAN)、カプセル化されたリモート SPAN (ERSPAN)です。

VMware Cloud on AWSでは、ERSPAN を活用しています。

  1. 仮想ポートから出入りするトラフィックをコピーします。
  2. トラフィックを GRE (Generic Routing Encapsulation) パケットにカプセル化します。
  3. 送信先のデバイスに GRE パケットを送信します(通常は、Wireshark、より高度なネットワーク パケット アナライザー、またはセキュリティ解析用の IDS/IPS を実行しているマシンとなります)。

現在、VMware Cloud on AWS のユーザーは、1 つまたは複数の仮想マシンをソースとして選択することができます。仮想マシンを選択すると、その仮想マシンのすべての仮想 NIC がポートミラーリング セッションに選択されます(単一の仮想 NIC を選択することはできません - すべての仮想 NIC が監視されます)。

ポートミラーリングは、VMware Cloud on AWS コンソールで作成するか、API を使用して作成することができます。

その前に、ESXi ホストから宛先デバイスへのトラフィックを許可する必要があります。以下の例では、トラフィックをミラーリングして Wireshark を実行している仮想マシンへ送信します。

VMC コンソールで、「ネットワークとセキュリティ」/「セキュリティ」/「ゲートウェイ ファイアウォール」/「管理ゲートウェイ」 をクリックします。

SDDC 内の ESXi ホストから Wireshark への通信を許可する Wireshark という名前のルールを作成します。このルールは、ポートミラーリング トラフィックを ESXi ホストから直接 Wireshark に送信できるようにするために必要です。

172.30.120.0/24(以前のブログで作成した)上の Web VM へのトラフィックを監視し、Web VM へのすべてのトラフィックを 192.168.1.134 を持ち WireShark が動作している仮想マシンへコピーします。

VMware Cloud on AWS コンソール上で、ミラーリング セッションを作成します。

すべての人にとって直感的ではないかもしれませんので、ここでは簡潔に説明します:

  • Ingress は、仮想マシンから論理ネットワークへのアウトバウンド ネットワーク トラフィックです。
  • Egress は、論理ネットワークから仮想マシンへのインバウンド ネットワーク トラフィックです。

WebFarm(172.30.120.0/24セグメント上で実行されているWebサーバを含む、事前に定義したグループ)へのトラフィックを確認したいので、Egressを選択します。WebFarm は 172.30.120.0/24 のセグメント上で実行されている Web サーバを含む事前に定義したグループになります。

Wireshark VM 上でトラフィックのキャプチャを開始すると、トラフィックが Wireshark 上にコピーされているのがわかります。以下は Wireshark からの出力です。

  • 外部ヘッダの送信元 IP は 10.56.32.4(ESXi ホスト)、宛先 IP は 192.168.1.134(Wireshark VM)で、GRE を使用しています。
  • 内部のヘッダの送信元 IP は 172.31.26.221(接続された VPC の Elastic Load-Balancer から ENI を経由して Web サーバへ向かうトラフィック)、宛先 IP は 172.30.120.18(私の Web サーバの 1 つ)で、宛先ポートは 80(HTTP)です。

信じられないくらいかんたんにセットアップできました。VMware Cloud on AWS 内のトラフィックを数分で完全に可視化することができました。

ご愛読ありがとうございました。VMware Cloud on AWS の詳細については nicovibert.com をご覧ください。