vDSでIPFIX(Netflow) の設定をしてみた件

 

背景

案件にて特定のノード間(多対多)のvSAN通信量を確認したいという相談があったため、

vSphere 標準の機能での調査方法としてNetflow/IPFIXに注目をした

 

IPFIX/Netflowとは

 

 

vSphere環境での利用

以下のドキュメントに記載のある通りNSXを用いなくとも、vDSがデフォルトでサポートしている

https://docs.vmware.com/jp/VMware-vSphere/7.0/com.vmware.vsphere.networking.doc/GUID-55FCEC92-74B9-4E5F-ACC0-4EA1C36F397A.html

 

ただし標準スイッチではサポートされない

Feature

Standard vSwitch

Distributed vSwitch

L2 forwarding

Yes

Yes

VLAN support

Yes

Yes

NIC teaming

Yes

Yes

Outbound traffic shaping

Yes

Yes

Inbound traffic shaping

No

Yes

Centralized management

No

Yes

PVLAN support

No

Yes

Netflow export support

No

Yes

Port mirroring

No

Yes

Multicast support

No

Yes

Traffic filtering

No

Yes

Network IO control

No

Yes

 

 

Netflow V10 (= IPFIX)をサポートしている。名称がややこしいが両者は同じものである。

IPFIXと書いたほうがよさそうな気もするがVMwareのドキュメントではNetflowと記載されていることが多い。

コレクタ側で明確にそれぞれで受信設定を区別している場合もあるので、迷った場合はとりあえずコレクタ側ではIPFIXの受信設定をしておくほうが無難と思われる。

 

 

 

vDS側での設定

設定画面は下記のようになっている




見ての通り宛先は1つしか設定できない。

コレクタのIPアドレスの項目は、Netflow/IPFIXのパケットを受け取るコレクタのIPアドレスを指定する。

コレクタが複数のインターフェースを持っている場合は、Netflow/IPFIXの受信設定をされているものを選ぶ必要がある(コレクタ側の仕様に依存する)

 

コレクタのポート番号もコレクタ側の仕様や設定に依存する。デフォルトで9996で待ち受けているコレクタもあるが、手動で設定するものもある。

コレクタ側がすでにインストール済み or どのポートを利用するのかが決まっている場合はそのポートを入力する。これからコレクタをインストール or 設定をする場合は後で設定すればよい。

 

スイッチIPアドレスについては Informationのアイコンにホバーすると以下の説明が現れる



 



これはvDSならではの設定である。

Netflowはスイッチのようなネットワークデバイスからコレクタに情報を送信することで分析を可能にすることを目的としているため、

対象となるネットワークデバイスの管理IPが送信元になるが、vDSの場合はスイッチ自体のIPアドレスというものが存在しないため、送信元となるIPを設定する必要がある。

vDSNetflowIPFIX)はUDP/IPを利用するため、IPレイヤの仕様の都合上、送信元IPにはなんらかのIPアドレスを入れる必要がある

便宜上の送信元IPアドレスという観点で考えると、vCenterIPアドレスを使ってくれればよさそうなものだが、

コレクタ側でどの装置からの情報なのかの管理にも利用されていると考えられるため、vCenterと被ってしまうのは都合が悪いことが多いと考えられる。

vCenterサーバ自体にはNetflowIPFIX)の機能はないため、その観点で被ってしまう、ということはないが、一般的にコレクタは単純にNetflow(IPFIX)だけをサポートしているわけではなく、Ping監視などといった複数のプロトコルを使って総合的に管理をしている場合がほとんどなため、コレクタ側でvCentervDSが同じものとして扱われるのは都合がわるい。

そのため、vCenterIPを使うような設定にはなっておらず、管理面から考えても個別のIPを割り当てるほうが好ましい。

 

とはいえ、(試してはいないが)既存のIPと被っていても仕様上はおそらく問題がない。(管理上は問題がありそうだが)

なぜならば、前述の通りvDSNetflowIPFIX)UDPを利用するためTCPのように相互接続をする必要がなく、送りっぱなしが基本となる。

つまり設定したスイッチIPアドレス宛にパケットが送られることはなく、仮にPingを打ったとしてもどこにも届くことはなくどこにも到達できない。もっといえばそれ以前にそもそもarpに応答がないためパケットを送ることすらない。

 

となるといったいどこから送信されているのか?という疑問が発生する。

vCenterからでしょ?と思った方は筆者と近い発想をしているが残念ながら不正解である。

 

どこから送信されているのかはパケットキャプチャを取ることで判明した。

コレクタに送信されているNetflow/IPFIXのフレームを確認すると送信元MAC AddressvDSに参加している各ホストの管理インターフェース(vmk)のものが利用されていた。(本環境は4ノードクラスタなので4つのMAC Addressが確認できた)

 

つまりvDSに参加するそれぞれのESXiホストが、スイッチIPアドレスを利用して各々コレクタに対して情報を送信しているのである

 

 

話がそれたがGUIの設定値の話に戻ると、vDSNetflow設定では詳細設定としてタイムアウトやサンプリング率の値を入力可能である。しかしながらドキュメントによるとオプションとなっており、かつ筆者自身が意味や効果をきちんと理解していないため解説できないが、とりあえずデフォルト値のままでも問題はない

 

 

分散ポートグループ/分散ポート側でのNetflow設定

vDSで設定しただけではコレクタにフロー情報は送信されない。

送信対象となる分散ポートグループ、または分散ポート単位でNetflowを有効化する必要がある

以下のドキュメントにある通りvSphere Clientから簡単に設定が可能である

分散ポートグループの場合は、設定の編集→監視→Netflowを有効にすればよい

 

分散ポート グループまたは分散ポートでの NetFlow 監視の管理 (vmware.com)




 

 

Netflow/IPFIX コレクタの準備

今回は無償で使えるツールとして以下を利用させていただいた

https://www.jtc-i.co.jp/product/prtg/free.html

 

Windowsサーバにインストールでき、かつ日本語対応も進んでいるという点で敷居は低い。

フリーにしてはできることが多く、小規模な監視であればこれで充分賄えそうな印象である。

製品版もあるのでドキュメントが充実しているのもありがたい。

以下の情報発信サイトは検証をする上でも利用させていただいた。

 

PRTG Network Monitor専門 情報発信サイト

https://prtg.jtc-i.co.jp/?c=919aa4e186533984-589f60b7b7ef9f74

 

 

 

フリー版のダウンロードについては下記のURLから可能。

https://www.jtc-i.co.jp/support/download/index_prtg.php

 

インストール手順と簡易マニュアルは以下。

https://www.jtc-i.co.jp/support/documents/guide/installationguide_prtg.pdf?c=919aa4e186533984-ff45afc4cb9816c9

https://www.jtc-i.co.jp/support/documents/guide/basicguide_prtg.pdf?c=919aa4e186533984-ff45afc4cb9816c9

 

 

Netflow/IPFIX コレクタのインストールと設定

インストール方法

何も難しいことはない。よくあるWindows用インストーラのように基本デフォルト値でポチポチと進めていけば直観的に完了する

 

 

設定方法

Netflow(IPFIX)の受信設定については直観的にはわからなかったので、慣れていない人はドキュメントを読まないと分からないと思われる。

簡易マニュアルに加えて以下の資料(xFlowセンサー紹介資料)も参照すると分かりやすい

https://prtg.jtc-i.co.jp/tech-info/sensor-intro/1735/

 

 

Netflowコレクタによっては、インストール時に対話式でNetflowの待ち受けポートを指定し、vDS側で送信設定をすればコレクタ側のGUIvDSに対応するエントリが出現し、分析が開始できるものもあるが、今回の製品はそういうタイプではない。

前述の簡易ドキュメントの「監視登録」のセクションをご参照いただくと分かる通り、最低でも以下の2ステップを実施する必要がある。

①デバイスの追加

②センサーの追加

 

 

デバイスの追加

vDSを監視対象デバイスとして登録するステップである。

この製品には自動検出の仕組みもあるため、環境内のデバイスをある程度自動的に登録してくれるが、

vDSは前述の通りそもそも管理用のIPを持たないため自動で検出されることはない。

そのため、手動で登録が必要である。

具体的な追加方法はある程度直観的にも実施可能であり、ドキュメントにも丁寧に記載があるのでこの記事では省く。

(上記簡易マニュアルの”デバイスの追加”の項目を参照)

とりあえず検証目的で受信設定をしたいだけであればグループやその他の詳細設定は適当で問題はない。

 

センサーの追加

このコレクタでは、登録された監視対象デバイスに対して個別のセンサーを設定することで監視が可能になる仕様となっている。

そして、Netflow/IPFIXはセンサーの一つ、という形で監視対象デバイスに対して設定が可能である。

そのため、センサーの追加でNetflow/IPFIXを追加しない限り、GUIをくまなく探してもNetflow/IPFIXの設定項目は出てこない。

そこまで理解できれば、あとは先ほど作成したデバイスを選択した状態でセンサーの追加ボタンからNetflow/IPFIXのセンサーを追加すればよい

 

 

 

結果の確認

コレクタの準備とvDS側の設定が完了したらGUIから結果を確認する。

もし期待通りに受信できていない場合は、Firewallの設定を確認したり、ネットワークキャプチャでトラブルシューティングをすればよい。

 

うまくいっている場合は以下のように設定したポートグループ内でのフロー統計が確認できる

(下図はvSANクラスタにおける各ホスト間のvSANトラフィックの統計情報)



 

 

その他の無償で使えるNetflowコレクタ

今回はNetflow コレクタ自体が目的ではなかったため、そのほかのコレクタは試していないが、

ほかにも無償で使えるツールがあるようなので次回以降はほかのコレクタも試してみたい。

 

参考: https://designetwork.daichi703n.com/entry/2016/03/21/NetFlow-Collector

 

 

 

 

コメント

このブログの人気の投稿

vSwitchにSTPが不要な理由

ESXi に DNS サーバを何個まで登録できるか

NTPと同期してくれないときのトラブルシューティング