vDSでIPFIX(Netflow) の設定をしてみた件
背景
案件にて特定のノード間(多対多)のvSAN通信量を確認したいという相談があったため、
vSphere 標準の機能での調査方法としてNetflow/IPFIXに注目をした
IPFIX/Netflowとは
vSphere環境での利用
以下のドキュメントに記載のある通りNSXを用いなくとも、vDSがデフォルトでサポートしている
ただし標準スイッチではサポートされない
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を設定する必要がある。
vDSのNetflow(IPFIX)はUDP/IPを利用するため、IPレイヤの仕様の都合上、送信元IPにはなんらかのIPアドレスを入れる必要がある
便宜上の送信元IPアドレスという観点で考えると、vCenterのIPアドレスを使ってくれればよさそうなものだが、
コレクタ側でどの装置からの情報なのかの管理にも利用されていると考えられるため、vCenterと被ってしまうのは都合が悪いことが多いと考えられる。
vCenterサーバ自体にはNetflow(IPFIX)の機能はないため、その観点で被ってしまう、ということはないが、一般的にコレクタは単純にNetflow(IPFIX)だけをサポートしているわけではなく、Ping監視などといった複数のプロトコルを使って総合的に管理をしている場合がほとんどなため、コレクタ側でvCenterとvDSが同じものとして扱われるのは都合がわるい。
そのため、vCenterのIPを使うような設定にはなっておらず、管理面から考えても個別のIPを割り当てるほうが好ましい。
とはいえ、(試してはいないが)既存のIPと被っていても仕様上はおそらく問題がない。(管理上は問題がありそうだが)
なぜならば、前述の通りvDSのNetflow(IPFIX)はUDPを利用するためTCPのように相互接続をする必要がなく、送りっぱなしが基本となる。
つまり設定したスイッチIPアドレス宛にパケットが送られることはなく、仮にPingを打ったとしてもどこにも届くことはなくどこにも到達できない。もっといえばそれ以前にそもそもarpに応答がないためパケットを送ることすらない。
となるといったいどこから送信されているのか?という疑問が発生する。
vCenterからでしょ?と思った方は筆者と近い発想をしているが残念ながら不正解である。
どこから送信されているのかはパケットキャプチャを取ることで判明した。
コレクタに送信されているNetflow/IPFIXのフレームを確認すると送信元MAC AddressはvDSに参加している各ホストの管理インターフェース(vmk)のものが利用されていた。(本環境は4ノードクラスタなので4つのMAC Addressが確認できた)
つまりvDSに参加するそれぞれのESXiホストが、スイッチIPアドレスを利用して各々コレクタに対して情報を送信しているのである
話がそれたがGUIの設定値の話に戻ると、vDSのNetflow設定では詳細設定としてタイムアウトやサンプリング率の値を入力可能である。しかしながらドキュメントによるとオプションとなっており、かつ筆者自身が意味や効果をきちんと理解していないため解説できないが、とりあえずデフォルト値のままでも問題はない
分散ポートグループ/分散ポート側での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
インストール手順と簡易マニュアルは以下。
Netflow/IPFIX コレクタのインストールと設定
インストール方法
何も難しいことはない。よくあるWindows用インストーラのように基本デフォルト値でポチポチと進めていけば直観的に完了する
設定方法
Netflow(IPFIX)の受信設定については直観的にはわからなかったので、慣れていない人はドキュメントを読まないと分からないと思われる。
簡易マニュアルに加えて以下の資料(xFlowセンサー紹介資料)も参照すると分かりやすい
https://prtg.jtc-i.co.jp/tech-info/sensor-intro/1735/
Netflowコレクタによっては、インストール時に対話式でNetflowの待ち受けポートを指定し、vDS側で送信設定をすればコレクタ側のGUIにvDSに対応するエントリが出現し、分析が開始できるものもあるが、今回の製品はそういうタイプではない。
前述の簡易ドキュメントの「監視登録」のセクションをご参照いただくと分かる通り、最低でも以下の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
コメント
コメントを投稿