SDN の研究開発
2014-12-14 by Daisuke Kotaniこの記事は SDN Advent Calendar 2014 の14日目の記事です。
ある日、@yyasuda 先生から
おっ。小谷くん Advent Calendar よろしくねー。(^_^)
というメッセージがfacebookで飛んできたので、OpenFlow や SDN に関する研究開発について書いてみようと思います。
博士取得を目指して大学で一応SDN関係の研究している身分なので、SDN 関連の研究を追っかけるのは日常茶飯事なわけですが、大きく分けて2種類の研究があると感じています。 一つは、SDN の platform に関する研究、もう一つは SDN を使った研究。以降、いくつか紹介します。
SDN の platform 自体に関する研究
OpenFlow の最初の論文 が2008年に発表されて6年、2011年後半になぜかブームになってから3年経過していますが、未だに様々なトピックが議論されています。 OpenFlow のモデルと SDN は厳密には違いますが、OpenFlow のモデルを意識していそうなものが多いです。
例えば、コントローラの構成に関する研究。OSSとして公開されている Controller や Controller Framework としては Trema や Ryu、NOX/POX、Floodlight は有名どころだと思います。他にも、耐障害性やレスポンスタイムの観点からコントローラをどのように配置すべきか(Heller, et al. 2012, Ros, et al. 2014)、ネットワーク自体をプログラミングするためのDSL (frenetic/Pyretic, Maple)、コントローラ自体の耐障害性と処理性能を上げるための分散コントローラ (ONIX, HyperFlow, ONOS, ElastiCon)などがあります。また、Participatory Networking のようなリソース管理やヘッダー空間管理、VeriFlowやHeader Space Analysisのような検証も重要です (ここに出した例は Flow Entry の検証ですが、コントローラ自体のモデル検査のような話もあります)。
最近、従来のネットワーク機器との関係を扱っているものが増えてきました。ほとんどのネットワークは従来のネットワーク機器にたくさん投資をしているので、一気には入れ替えられないという、ずーっと前から違う文脈でよく聞くような背景があります。 最近だと HotSDN '14 で発表されたClosedFlow, 少し前からいろんなところで発表されているものには Panopticon があります。
もちろん、研究や実験目的で作られた OpenFlow をいろんな場面で使おうとすると課題はあるので、OpenFlow 自体の研究もされています (僕もやってます (^^;)。
今後 SDN が一般的になっていくのか衰退していくのか、まだ分からないですが、どちらに進んでも将来的に使えそうだなぁと思っている話題は、ネットワークの設定変更やUpdateの話。OpenFlow だとフローエントリ、OpenFlow でない場合でも ACL や経由する Middlebox (Firewall や IDS など) などポリシーを変更するという場面は多々あると思います。SIGCOMM 2012 の Reitblatt, et al. で Per Packet Consistency というのが述べられていて、全てのパケットは古いポリシーか新しいポリシーのどちらか一方で処理される (あるパケットが古いポリシーと新しいポリシーが混ざったもので処理されることはない) という考え方が発表されています。また、zUpdateでは、特にデータセンターのネットワークの設定変更時 (スイッチの追加, 削除, TEの設定の変更など) に、どういう手順で変更すると zero-loss で設定変更できるかというトピックを扱っています。
この方向の研究は、HotSDN やトップカンファレンスで未だによく出てくる話題であり、しばらく続きそうだと感じています。
SDN の Application に関する研究
SDN を使ってこんな問題に挑戦しました、という話もかなりたくさんされています。
OpenFlow が出てきた頃には、OpenFlow の優位性を主張するために、いろんな論文が出ました。例えば、Load Balancingであったり、DDoS検知であったり、マルチキャストの管理があったりします (3つ目は手前味噌ですが)。スイッチの数だけVMを動かして、その中で経路制御プログラムを動かして、結果をOpenFlowスイッチに反映するRouteFlowってのも懐かしいです。
この手の研究で難しいのは、SDN は control plane を集中制御して、かつ programmability を与えるものなので、「プログラム書けばそれぐらい普通にできるやん、単に実装しただけやん」と言われかねないところ。そこにうまく反論できればこの種の研究は続いていくと思いますが、HotSDNのプログラムを見ても分かる通り、この手の話題はSDNの文脈では減っていく、つまり SDN の Application としての研究は減っていくだろうと思います (SDNは前面に出さない方向に進むんじゃないかと)。
今後の SDN 関連の研究はどうなるのか
個人的には platform に関する研究にどんどんシフトすると思います。集中制御する上での課題はまだまだ克服されていませんし、広域ネットワークをソフトウェアで制御するには (Google や Microsoft の事例はあれど) まだまだ課題がありそうな気がしています。O3プロジェクトっていうのは進んでますが、OpenFlowのモデルを使うのがよいのかどうかというのも含めてまだまだだなぁ...と思います。
ただ、Future Internet Research という文脈では、そろそろ SDN では解決できない問題を探して、それを解決するアイデアが出てくるといいなぁとぼんやり考えています。SDN はレッドオーシャンに近いですし。
Tweet