2012-09-26 11 views
5

LinuxにRDMAチャネル経由のトラフィックをキャプチャするためのtcpdumpのようなユーティリティはありますか? (Infiniband/RoCE/iWARP)RDMAでのパケットキャプチャ?

+0

この問題を最終的にどのように解決しますか? – Djvu

+1

@kliteynが提案しているように、ibdumpは私のために働いていました。どんな種類のパケットを探していますか? RMDA_WRITE_WITH_IMMIDIATEを実行していて、すべてのパケットを見ることができました。 – dhavale

+1

私は、RDMAパケットがネットワークに出ているかどうかを正当化したいだけです。しかし、私がibdumpを使うと、ibdumpによって示された2パケットのように、ほんの少しのパケットしか捕捉できませんでした。私は多くのデータを送信します。私はまた、ibdumpによってキャプチャされたパケットの意味を疑問に思っています。それは接続設定のためのものであり、データの送信は含まれていませんか? – Djvu

答えて

7

旧スレッド、まだ:

ローランドが指摘したように、エンドポイントは、最初の握手をした後、トラフィックはメモリに直接ネットワークカード(HCA)を通過するため、RDMAのトラフィックを盗聴することは、注意が必要です。 専用HWスニッファを有線経由でスニッファーしないでこのトラフィックを傍受する唯一の方法は、ネットワークカードにベンダー固有のフックを付けることと、これらのフックを使用するSWツールです。

メラノックスHCAをお持ちの場合はyou can use the "ibdump" toolです。このツールは、Mellanox OFEDパッケージの一部です。

他のベンダのHWがある場合は、そのベンダに問い合わせる必要があります。すべてのRDMA対応デバイスに対してオープンソースのパケットスニファが見つかりません。

+0

あなたの答えは最高のものだと思います。私は各ベンダーがHCAでのパケットキャプチャに利用できるようにする必要があることを知りました。私は現在、Mellanox HCAだけを扱っています。あなたは正しいです、 "ibdump"はこれに対する答えです。私は今それを試して、キャプチャを行います。しかし、私はそれがRDMA操作ヘッダだけを記録し、ペイロード自体は記録しないことを知りました。私はデフォルトで振る舞いがあるかどうかわからない、あるいは私のパッケージをアップグレードする必要がある。しかし本質的には、 "ibdump"が動作し、私が質問したときに私が探していたものです。ありがとうございました! – dhavale

+0

@kliteynしかし、なぜibdumpでキャプチャされたパケットが少ないのか、私はたくさんのパケットを送信しますが、パケットを少ししかキャプチャしませんでした。 – Djvu

3

一般的に、 RDMAの主な特性の1つは、すべてのネットワーク処理がCPUをまったく伴わずにアダプタ上で行われることです。通常、作業要求はシステムコールなしでユーザー空間からアダプタに直接キューイングされます。だから、スニッファがトラフィックを得るためにどこにも繋がっていない。

これは、iWARPまたはIBoE(別名RoCE)のイーサネットプロトコルでは、接続の途中でシステムを接続し、ソフトウェア(Linuxブリッジモジュールなど)で転送するように設定してからこのシステムを通過するRDMAトラフィックをキャプチャするには、tcpdumpまたはwiresharkを実行します。 WiresharkはiWARPとIBoEのためのディセプタを持っています。

ネイティブのInfiniBandについては、理論上、同様のものを作成して(トラフィックをキャプチャして転送するアダプタを設定することはできますが)、基本的なパケットスニッフィングを行うために必要なファームウェアやドライバ作業を行った人はいません。

+0

あなたの入力のためのローランドありがとう!私は、Linuxブリッジを使って探知してみましょう。私は、パケットがユーザー空間から直接キューに入れられていることを理解しています。カーネルからib_post_send()を使用して作業要求をキューに入れているので、実装内にパケットが他のノードに送信されたことを知るための場所があると考えました。ファームウェアのサポートなしでこれが可能かどうかは分かりません。この質問の主な理由は、受信者にデータが表示されない場合、どのRNICが障害、送信者、または受信者であるかを判断する方法が必要な場合です。 – dhavale

2

ChelsioのT4デバイスは、デバイスのNICキューの1つに入出力のオフロードパケットを複製できるようにするパケットトレース機能をサポートしています。次に、tcpdumpなどのethXインターフェイスを使用して、RDMAまたはTOEのパケットを確認することができます。

+0

スティーブありがとう!似たようなものをサポートしていれば、ハードウェアベンダー(Mellanox)に確認します。 – dhavale

0

Wiresharkが可能です。しかし問題は、観測サーバが必要なことです。ミラー機能を有効にすると、オブザーバでROCEポケットを受け取ることができます。

関連する問題