WiresharkでRetransmissionが大量発生!トラブルを疑う前にまず確認すべきこと

Pcapファイルを開くとアラートがたくさん発生していてびっくりした、という経験はありませんか。実はこのケース、私もお客様先で何度か遭遇したことがあります。
その場合、ネットワークのトラブルを疑う前にまず確認すべきことがあります。今回は、その原因と対策について解説します。

Retransmissionが大量発生していた場合にまず確認すること

Pcapファイルを開くとRetransmissionが発生しているようにみえます。

Retransmissionの大量発生

その場合は、まずどのパケットにRetransmissionが発生しているかを調査します。すべてのパケットについて、もしくはネットワークの方向が同じもののみすべてRetransmissionが起こっていた場合は、本当に再送パケットなのかどうかを確認します。その際見るべきポイントはIPヘッダにあるIdentificationの値です。

IPヘッダに存在するIdentificationの値が、はじめのパケットとRetransmissionのパケットで同一の場合は、そのパケットは同一パケットであり、再送パケットではありません。

IP Identificationの比較

一般的にIdentificationの値は、IP固有の番号となっており、基本的には送信元と宛先アドレスが同一の場合、フラグメントパケットを除きパケットそれぞれで重複しないユニークな値となります。
IPヘッダ上のIdentificationの挙動、扱いについては、RFC6864 - 6.1. Updates to RFC791に記載があります。

なお、デフォルトゲートウェイの設定間違いというケースも考えられなくはないのですが、その場合はひたすら同じパケットが再送されるようになりますので今回のケースとは異なる現象が起こります。同じパケットで再送が繰り返され、TTLの値が減算し続ける場合は、デフォルトゲートウェイの設定を見直してみてください。

考えられる原因と対策

再送パケットではないとしたら、次に見直すべきはパケットを取得する環境です。
パケットキャプチャは、取得する機器上のNICで確認されたパケット(この場合はフレームと表現したほうがより正確かもしれません)が順番に保存、表示される仕組みになっています。つまり、ネットワーク上でパケット(フレーム)が複製されていた場合、当然パケットキャプチャ機器は同じパケット(フレーム)を複数キャプチャすることになります。では、どのような場合、そのようなことが起こるのでしょうか。

もっとも可能性がある原因は、SPAN/ポートミラーリングの設定です。SPAN/ポートミラーリングは、モニタしたいポートからパケット(フレーム)をコピーして転送する機能です。
SPANSPAN/ポートミラーリングで複数のポートからのトラフィックを同時に監視する場合、パケット(フレーム)が重複することがあります。よくあるケースとしては、監視するポートのboth(inとoutの両方)で設定した場合や、複数のポートを監視する設定でその複数の監視ポートを通過するトラフィックがあった場合などです。

その場合、以下の対策が有効です。

  1. SPAN/ミラーリング設定を見直し、重複しない設定を行う
  2. SPAN/ミラーリングではなく、TAPを使用する

1.は、監視するトラフィック対象とキャプチャするポイントにより、可能な場合と不可能な場合があります。
2.は、TAP vs SPAN どちらを使う?でも記載したとおり、TAPにはデメリットもありますが、環境が許されるのであればTAPを使用する対策は有効です。

SPANに接続される機器はパケットキャプチャだけではありません。たとえばFlowプローブやIDSなどでも重複したパケット(フレーム)が機器にカウントされる場合があります。そのような際は、同様にまずSPANの設定を見直すようにしましょう。

「SYNESIS」の重複パケット除去機能

当社で開発、販売しているパケットキャプチャ製品「SYNESIS」は、キャプチャ時に重複パケットを除去する機能を備えています。この機能を使えば、スイッチの設定変更やTAPの追加などの面倒なことをせず、そのままの環境でパケットキャプチャ、分析ができます。

SYNESISの重複パケット除去機能を有効にしてキャプチャを開始すると、100usec以内に受信したパケットで、MACヘッダからFCSを除くデータまでが一致したパケットを重複パケット(フレーム)と判断し、2つ目以降のパケットは保存しません。この機能は、環境に応じてユーザがキャプチャ毎に有効にするかどうかの設定が可能です。

パケットキャプチャ製品「SYNESIS」に興味がありましたら、以下よりお問い合わせください。

SYNESIS お問い合わせ

あとがき

今回は、パケットキャプチャ時に見かけるRetransmissionの大量発生について解説しました。パケットキャプチャは、トラブルが発生した際にトラブルシューティングとして行われることが多いです。ですので、たくさんのRetransmissionが検出されていると「実際に再送が行われているんだ」と納得してしまう人もいるかと思います。
パケットキャプチャをする前に知っておきたいことでも書きましたが、取得された環境やどのような手段でパケットを取得したか、などを把握しておく必要があります。
現地での作業時間が限られている、キャプチャの取り直しができない、などの場合は特に事前準備をしっかりし、適切で確実なパケットキャプチャを行うようにしましょう。

この記事がみなさまのパケットキャプチャ作業の参考になれば幸いです。

Englishi Contents of Engineer Notes