JPNIC Blog JPNIC

ユーザーランドでパケット処理をプログラミング ~第6回 IW2016注目プログラム紹介~

event_team 

Internet Weekのセッション紹介です。担当は本イベントの実行委員を務めている法林浩之(日本UNIXユーザ会)です。

今回ご紹介するのは、12月1日(木)に行われるチュートリアル「実践! netmapとDPDKによるパケット処理プログラミング」です。このプログラムを担当した吉野純平氏(日本ネットワーク・オペレーターズ・グループ(JANOG))に見どころをうかがいました。


法林: Internet WeekのWebサイトに載っているこのプログラムの概要を見ると、「自分でパケットを作って送りたい衝動にかられることがあります」とか書いてあるんですが、本当にそんなことあるんですか?

吉野: あります!大規模なサービスを運用していると、トラブルの再現試験や機器の性能測定、パケットを独自に処理したい等、そういう必要に迫られます。でも、それをアプライアンスでやろうとするとまず値段が高いし、しかも買ったからといって要件を満たしてくれるかというとそうでもないんですよ。それだったら自分でパケット処理を実装した方が、安価で要件に合うものが手に入るわけです。

法林: なるほど。そこで今回のプログラムのような需要が出てくるわけですね。

吉野: そうです。でも、実際にやってみると、いわゆる学習曲線の最初の部分がとにかくつらいんです。例えば環境設定が難しいとか、DPDKに至ってはコンパイルするだけでも大変なんです。そこで、そのあたりのつらい部分をサポートしたいという思いで、このプログラムを企画しました。

法林: このプログラムではnetmapとDPDKを取り上げていますが、これらのフレームワークを選択された理由はありますか?

吉野: 最近はLinuxカーネルでもネットワーク関連の機能拡張がいろいろ出ているんですが、既にいくつもの活用例があり、情報が得やすいものをと考え選びました。

法林: こういうプログラムは他のイベントでもよく行われているんですか?

吉野: カーネル系の勉強会で発表されていそうです。ネットワーク運用や構築されている方にも広がることを期待しています。

法林: 実際のところ、どんな人に来てほしいんですか?

吉野: 高速なパケット処理をしたいんだけど何をやったらいいかわからない人ですね。もちろん、実際に手がけている人も歓迎です。そして何よりも、ベンダーからお仕着せのブラックボックスを買って闇雲にパケットを処理するよりも、自分の受けている攻撃をわかった上で処理を作った方がよいこと、そしてそのための道具もあるんだよということを、ネットワークエンジニアの人たちに伝えたいですね。

法林: このプログラムに参加することで、パケット処理の本質を見抜くことができそうですね。期待しています。


T16 実践! netmapとDPDKによるパケット処理プログラミング プログラム概要

日時 2016年12月1日(木)16:15~18:45
場所 3F Room3
参加料金 事前 5,500円、当日 8,000円
URL https://internetweek.jp/program/t16/
概要 最近になって、ユーザーランドのプログラムによって高速にパケット処理を行うようなフレームワークが充実してきました。 例えば「とにかく大量のパケットを送受信しなければならないプログラム」や「受信したパケットのあるビット列を見て送信先を切り替えるようなプログラム」を、カーネルプログラミングをすることなく、ユーザーランドのプログラムで高速に実現することができるようになっています。本プログラムでは、このようなパケット処理を行うためのフレームワークとしてnetmapとDPDKを例に取り上げ、実際にそれぞれを用いたプログラムを開発されているお2人から、これらのフレームワークを用いる際のコツや注意点を説明していただきます。
内容 16:15~16:35 導入
講演者:
 吉野 純平(株式会社ミクシィ)
パケットを作って送りたい。そんな衝動にかられることが多いと思います。従来ならtun/tapデバイスの活用が手段の一つだったと思います。導入としてtun/tapを使った時の開発を振り返りたいと思います。

16:35~17:25 netmapによる実践パケット処理プログラミング
講演者:
 清水 了(株式会社インターネットイニシアティブ)
netmapとはNIC (Network Interface Controller)とユーザーランドプログラムとの間で高速/軽量にパケットを受け渡しするためのAPIです。既存のネットワークAPIはなぜ遅いのか、netmapがどのようにして高速なパケット処理を実現しているのかを解説するとともに、実際のnetmapプログラムを例に、netmap APIの使い方や、その応用についてを解説します。

17:35~18:25 作って覚えるDPDKプログラミング入門
講演者:
 沖 勝(株式会社インターネットイニシアティブ)
DPDKはDataPlane Development Kitの略で、インテルによって開発された、高速パケット処理フレームワークです。
DPDKの応用例の紹介とともに、DPDKが従来のソケットプログラミングによるパケット処理と比較してどのような違いがあるか、および利用に関する前提条件や制約などについて解説します。また、簡単なサンプルプログラムを例にとりDPDKを使ったプログラムの書き方について解説します。

18:25~18:45 まとめ
講演者:
 吉野 純平(株式会社ミクシィ)

対象者
  • これからパケット処理をするプログラムを書こうと思っている方
  • すでにパケット処理をするプログラムを書いているが遅くて困っている方
  • 以前netmapやDPDKを使ったプログラムを書こうとして挫折した方
  • なんとなくnetmapやDPDKに興味がある方