Weekのセッション紹介です。担当は本イベントの実行委員を務めている法林浩之(日本UNIXユーザ会)です。netmapとDPDKによるパケット処理プログラミング」です。このプログラムを担当した吉野純平氏(日本ネットワーク・オペレーターズ・グループ(JANOG))に見どころをうかがいました。あります!大規模なサービスを運用していると、トラブルの再現試験や機器の性能測定、パケットを独自に処理したい等、そういう必要に迫られます。それをアプライアンスでやろうとするとまず値段が高いし、しかも買ったからといって要件を満たしてくれるかというとそうでもないんですよ。それだったら自分でパケット処理を実装した方が、安価で要件に合うものが手に入るわけです。そこで今回のプログラムのような需要が出てくるわけですね。実際にやってみると、いわゆる学習曲線の最初の部分がとにかくつらいんです。環境設定が難しいとか、DPDKに至ってはコンパイルするだけでも大変なんです。そこで、そのあたりのつらい部分をサポートしたいという思いで、このプログラムを企画しました。最近はLinuxカーネルでもネットワーク関連の機能拡張がいろいろ出ているんですが、既にいくつもの活用例があり、情報が得やすいものをと考え選びました。カーネル系の勉強会で発表されていそうです。ネットワーク運用や構築されている方にも広がることを期待しています。高速なパケット処理をしたいんだけど何をやったらいいかわからない人ですね。実際に手がけている人も歓迎です。何よりも、ベンダーからお仕着せのブラックボックスを買って闇雲にパケットを処理するよりも、自分の受けている攻撃をわかった上で処理を作った方がよいこと、そしてそのための道具もあるんだよということを、ネットワークエンジニアの人たちに伝えたいですね。このプログラムに参加することで、パケット処理の本質を見抜くことができそうですね。最近になって、ユーザーランドのプログラムによって高速にパケット処理を行うようなフレームワークが充実してきました。「とにかく大量のパケットを送受信しなければならないプログラム」や「受信したパケットのあるビット列を見て送信先を切り替えるようなプログラム」を、カーネルプログラミングをすることなく、ユーザーランドのプログラムで高速に実現することができるようになっています。本プログラムでは、このようなパケット処理を行うためのフレームワークとしてnetmapとDPDKを例に取り上げ、実際にそれぞれを用いたプログラムを開発されているお2人から、これらのフレームワークを用いる際のコツや注意点を説明していただきます。純平(株式会社ミクシィ)パケットを作って送りたい。そんな衝動にかられることが多いと思います。従来ならtun/tapデバイスの活用が手段の一つだったと思います。導入としてtun/tapを使った時の開発を振り返りたいと思います。Controller)とユーザーランドプログラムとの間で高速/軽量にパケットを受け渡しするためのAPIです。APIの使い方や、その応用についてを解説します。Kitの略で、インテルによって開発された、高速パケット処理フレームワークです。DPDKの応用例の紹介とともに、DPDKが従来のソケットプログラミングによるパケット処理と比較してどのような違いがあるか、および利用に関する前提条件や制約などについて解説します。簡単なサンプルプログラムを例にとりDPDKを使ったプログラムの書き方について解説します。