はじめに
BIG-IPでは、パケットキャプチャにtcpdumpが使用できます。このtcpdumpの使い方は一般的な(Linuxサーバなどで動作する)tcpdumpとほぼ同じですが、一部BIG-IP固有の機能があります。
どれもAskF5に記載されていることなので、詳細は末尾の「参考URL」のリンク先を参照してください。
tcpdumpのオプション
-i interface名
例:tcpdump -i 1.1
「-i」は、キャプチャ対象インタフェースを指定します。tcpdumpとしてはとても一般的な使い方ですが、BIG-IPではあまり使用されないと思います。
-i vlan名
例:tcpdump -i internal
BIG-IPでは、-i の引数としてVLANを指定することができます。インタフェース名よりもこの使い方の方がBIG-IPでは一般的かと思います。
-i 0.0
例:tcpdump -i 0.0
0.0というインタフェースを指定すると、TMM上の全インタフェース(全VLAN)をキャプチャします。便利ですがキャプチャデータが非常に大きくなるので、フィルタなどで対象を絞ることが推奨されます。
-i eth0
例:tcpdump -i eth0
Management Portをキャプチャします。
-i interface名|vlan名:nnn
例:tcpdump -i internal:nnn
-iで指定するインタフェース名に「:n」をつけると、パケットデータ内にBIG-IP固有の情報、例えば、そのパケットを処理したTMMの番号や、Virtual Serverの名前などが追加されます。nの数が増えるに従って、さらに様々な内部情報が付加されます。nの数は最大3つまでです。
その他
-s 0
一般的なtcpdumpにもありますが、-sは、取得する1パケットあたりのサイズを指定するオプションで、デフォルトでは先頭96byteしか保存されません。
-s 0と、0を指定することで、サイズが無制限になり、パケットの全データが保存されます。これがないと必要な情報が取れなかったりします。
パケットキャプチャデータの先頭に含まれてる情報
BIG-IPで取得したパケットキャプチャの先頭1パケット目には、機器の型番やホスト名、バージョン、tcpdumpを実行した際の引数などが保存されています。キャプチャデータをWiresharkに読み込ませると確認できます。
WiresharkでF5 Wireshark Pluginを有効にする
BIG-IPのtcpdumpで"-i"オプションに":nnn"を付与した場合、BIG-IP固有の拡張情報が含まれるのは上記に書いた通りです。
それらの情報をWiresharkで表示できると、BIG-IPのトラブルシュートの際にとても役に立ちます。
このためには、Wiresharkにこのデータを解析するためのPluginを追加する必要があります。
以前は、DevCentralからPluginをダウンロードし、WiresharkのPluginsディレクトリに保存するなどの手間が必要でしたが、Wireshark 2.6からは、標準でF5 Wireshark Pluginが含まれるようになりました。(素晴らしい!)
詳細は以下の、DevCentralのページを参照してください。
DevCentral:F5 Wireshark Plugin
このPluginは、標準状態では無効になっているので、設定を変更して有効にする必要があります。
F5 Wireshark Pluginを有効にする
- Wiresharkのメニューより"Analyze - Enabled Protocols"を選択
- "F5 Ethernet Trailer" に含まれている "f5ethertrailer"にチェックを入れ、OKを押す。

これでPluginを有効にできます。
F5 Wireshark Pluginの有無でどう変わるか
以下は、BIG-IPで取得したあるパケットキャプチャファイルを、Plugin有効/無効、それぞれのパターンのWiresharkで開いた時の画面例です。
- Plugin無効

一般的なWiresharkの情報が表示されています。BIG-IPのtcpdumpでは、先頭にtcpdump実行時の引数が載ります。
- Plugin有効

元々の情報に加えて、上部のパケットリストのウインドウに、各パケットについて、通信の方向(IN/OUT)、それに、どのtmmで処理したのか、といった情報が載ってることがわかります。
また、真ん中のウィンドウには、F5 Ether Trailer Protolという情報が追加表示されています。ここは"Low Details", "Medium Details", "High Details"とさらにドリルダウンが可能になっています。
ドリルダウンするとそこには様々な情報が含まれています。例えば、Medium Detailsに含まれる、Flow IDやPeer IDは、BIG-IPがフルプロキシ(クライアントサイドとサーバサイドで、異なるTCPセッション)で動作している際に、通信を追いかける上でとても有用です。