NSX for vSphere の分散ファイアウォール(DFW)のログを利用して、
vRalize Log Insight(vRLI)で通信を可視化してみます。
今回は、インタラクティブ分析 利用してログを可視化してみます。
この投稿の環境は、このようになっています。
vRealize Log Insight と NSX DFW で通信の様子を可視化してみる。Part.1
それでは、「インタラクティブ分析」の画面を開きます。
既存のダッシュボードに、すでによさそうな情報をもつチャートがある場合は、
そのチャートの「インタラクティブ分析 で開く」ボタンから、
チャートを表示しているフィルタ設定が適用された分析画面を開くことができます。
今回はシンプルなフィルタ操作をするだけなので、
画面上部の「インタラクティブ分析」から開いてもかまいません。
DFW の通信についてのログは、ESXi の dfwpktlogs.log に出力されます。
インタラクティブ分析で DFW のログを解析するときは、
「フィルタの追加」で下記のフィルタを設定することで抽出できます。
- フィールドは「appname」
- 条件は「次を含む」で「dfwpktlogs」を入力する。
今回は pass のログだけ見るので、下記のフィルタも追加します。
- フィールドは「vmw_nsx_firewall_action」
- 条件は「次を含む」で「pass」を入力する。
そして対象の通信を探すためには、「text」として IP アドレスを検索することで抽出できます。
ログのテキスト全体からからIP アドレスの文字列を検索するので
送信元、送信先にかかわらず関係するログを抽出できます。
※ただし、今回に限っては分析対象にかかわるログしか表示されないので意味がないです。
ログを検索する期間は「カスタムの期間」を選択して、
任意の 開始 / 終了 時間を入力しておきます。
通信確認の対象とする VM 同士の通信を見てみます。
通信元、通信先の IP アドレスを、両方「10.1.30.*」にして検索してみます。
vRLI の NSX for vSphere コンテンツパックで利用可能になるフィールドには、
Edge Firewall のものと、Distributed Firewall のものがありますが、
今回は Edge Firewall を使用していないので「edge」とつかないフィールドをフィルタに利用しています。
たとえば下記のような感じです。
通信元をあらわす「src」には 2 つのフィールドがありますが、
vmw_nsx_edge_firewall_src ではなく、
vmw_nsx_firewall_src をフィルタに指定しておきます。
通信先(dst)のフィールドは、通信元よりも多く用意されています。
ここではまず「vmw_nsx_firewall_dst」を選択しておきます。
検索結果のグループ化の設定をします。
まずは、下記のようにして「適用」をクリックします。
- 時系列 を選択
- vmw_nsx_firewall_dst_ip_port を選択
- vmw_nsx_firewall_protocol を選択 ※これで tcp / udp が判別できます。
- vmw_nsx_firewall_src を選択
結果として、下記のようなチャートが表示されました。
フィルタ、グループ化 の設定により、対象の VM 同士で
どのような通信が発生しているか可視化できました。
※チャートの凡例は「宛先 IP/ポート番号, 元 IP, プロトコル」となっています。
ちょっと雑多な感じがしますが、
グループ化の条件を減らすことで、傾向を把握しやすくすることもできます。
- vmw_nsx_firewall_dst_port ※宛先はIPをなくしてポートだけにする。
- vmw_nsx_firewall_protocol
グループ化がを「適用」すると、通信のプロトコルとポート番号だけのサマリがわかります。
グループ化はそのままで、
対象 VM の IP 以外からの通信も含めたチャートを表示
(vmw_nsx_firewall_src フィールドによるフィルタを削除)してみました。
対象 VM 以外の アドレス(論理スイッチ外)からだと、
SSH(tcp, 22)や HTTP(tcp, 80)の通信があったことがわかります。
うまく利用すれば、ファイアウォール ルールの検討などにも役立ちそうです。
なお、ここでは vRealize Log Insight を利用してみましたが、こういった分析は
製品としては vRealize Network Insight のほうが向いていると思います。
Software-Defined Networking 向け vRealize Network Insight: VMware
ちなみに、今回のログは Docker Swarm を構成している VM の状況をログ取得してみました。
まず、Docker Swarm 構成前に、論理スイッチより外の踏み台サーバから SSH 接続をしています。
最初の Swarm クラスタ構成のタイミングで TCP 2377 番ポート、UDP 7946 番ポートの通信が発生しています。
コンテナを起動したところで TCP 80 番ポート、UDP 4789 番ポートの通信が発生している様子が見られます。
つづく。