オープンソースソフトウエア「Lagopus」は、SDN(Software-Defined Networking)の中心的な技術である「OpenFlow」に準拠したソフトウエアスイッチだ。ところが、バージョンアップでソフトウエアルーターに生まれ変わるという。2016年12月9日に沖縄県那覇市で開催されたSDN関連の勉強会「Trema Day #10 in Okinawa」で、Lagopusの開発にかかわっているインターネットイニシアティブ(IIJ) ネットワーク本部 SDN開発部 ネットワーク基盤開発課 シニアエンジニアの沖勝氏が明らかにした。

新型Lagopusについて発表する沖氏
[画像のクリックで拡大表示]
新型Lagopusについて発表する沖氏

 従来のLagopusはOpenFlowスイッチであるため、データプレーンしか持たない。このため、ルーターとして動作させるには、レイヤー3(L3)の処理をOpenFlowコントローラー側に実装しなければならない。特に商用レベルのルーターとして利用できるようにするには、多くの機能を実装しなければならなくなる。そこで、L3処理をLagopusで行うようにすることで、ルーターとしても利用できるようにする。

 類似の機能を持つソフトウエアとしては、OSのカーネルが備えるIPスタックがある。ただ、カーネルのIPスタックは、レイヤー2(L2)からL3につながるようパスが固定されている。これに対し、新型LagopusではSDNの考え方を取り入れ、パケット処理機能を自由に組み合わせて接続できるようにするという。

 新型Lagopusでは、「VLAN」「ACL(Access Control List)」「MACアドレスルックアップ」といったパケット処理の各機能を分割し、それぞれをモジュールとして定義する。これらのモジュールを動的に組み込めるようにする。それぞれのモジュールは、Googleが公開しているRPC(Remote Procedure Call)フレームワーク「gRPC」で外部とやり取りできるようにする。これにより、gRPCに対応したプログラミング言語でもモジュールを利用できる。

 また、従来のLagopusはシングルプロセスで動作していたが、新型Lagopusはマルチプロセスになるという。データプレーンやデータストアなどのコンポーネントをそれぞれマイクロサービスとして用意。各プロセスが連携してLagopusとしての動作を実現する。

 新型Lagopusの公開時期は未定だが、2017年には公開する見通し。従来のLagopusと同様にオープンソースを想定している。なお、従来のLagopusの機能はOpenFlowモジュールを用意することで実現するという。