pktgenとパケットキャプチャとLinux kernel 4.4

Linuxにパケットジェネレータ機能を提供するpktgenは、非常に高速にパケット送信を行うことができるカーネルモジュールである。

pktgen自体については PCとpktgenで行くショートパケットワイヤレートの旅 を参照。

pktgenで送信中のパケットがtcpdumpで確認できないという話があったため、その説明のため簡単にコールスタックを追った結果を残しておく。

賢明な諸氏のことなので、図を見れば説明は不要なことと思う。

0105a_pktgen_tcpdump_001.png

Figure 1. Linux kernel 4.4におけるパケット送信時のコールスタック(一部省略)

more…

PCとpktgenとpgrxで行く遅延測定の旅

前回 、pktgenのパケット構造は基本的に以下の構造になることが分かった。

ここに入っているtv_secおよびtv_nsecを、受信側で比較して遅延測定ができたらいいよね?

というのが、この Open Source Traffic Analyzer : http://people.kth.se/~danieltt/pktgen/

はじめに

Open Source Traffic Analyzerは、pktgenと同様にカーネルモジュールを読み込むことで /proc に生えてきて、pktgen形式のパケットに対する統計情報を取得することができる。

現在サポートされているのは、ipv4/ipv6のパケットカウンタ、遅延、ジッタ、パケット間隔。

パッチ形式で配布されているので、必要な機能に対するパッチを当てて利用することになるだろう。

生えてくるのは、 /proc/net/pktgen/pgrx となり、pktgenモジュールの一機能として提供される。(従って、今後「Open Source Traffic Analyzer」についてはpgrxとして記載する)

ただ、メインラインに取り込まれているわけではないので、pgrx対応のpktgenモジュールを作り直すか …

more…

PCとpktgenで行くショートパケットワイヤレートの旅

冒頭

「ねぇ、秒速1,488,095フレームなんだって」
「え、なに?」

「1Gbpsで最小フレームを送信可能なフレームレート。秒速1,488,095フレーム」
「ふーん・・・」

そりゃあ「ふーん・・・」ってなるな?

このフレームレートに到達しなければ1Gbpsを処理できているとは言えない。

従って、1Gbpsを処理できているか試験するために、汎用PCでこのフレームレートに到達する必要がある。 (1,000,000,000 bit = 125MB, 125MB/(60+4+12+8) = 1,488,095として計算)

では本題に入ろう。

はじめに

pktgenは、Linuxのカーネルに搭載されたトラフィックジェネレータ。

いつぞやからメインラインにカーネルモジュールとして同梱されるようになったので、恐らく2.6.26以降辺りから使えるのではないかと思う。

使い方

さしあたり、構成はループバック構成とする。

つまりこうだ。

                                         eth4
Generator (Ubuntu Server 13 …
more…