ネットワークサービスを支えるossへの取り組み -...

5
NTT技術ジャーナル 2017.12 15 IoT/AI/SDx時代を支えるOSSへの取り組み ネットワークサービスを支える OSS ベンダ専用のハードウェア ・ ソフト ウェアによる一体構成が中心であった ネットワーク装置の世界においても近 年急速にオープン化が進んでいます. 最近ではITインフラだけでなく,ネッ トワークインフラでもオープンソース ソフトウェア(OSS)の活用が進め られており,今後はコモデティ化した ハードウェアにOSSや自前のソフト ウェアを組み合わせ,必要なサービス を迅速に開発する「ホワイトボックス スイッチ」の考え方が主流になると考 えられています.NTTではネットワー クインフラ分野において,効率的で自 由度の高いシステム開発手法を確立す るために,要件やプログラムコード自 体の提案をリードしていく必要がある と考えています.その実現のために, クラウドインフラを実現する代表的 OSSであるOpenStack,SDN(Soft- ware Defined Networking)技術の標 準化を進めるONF(Open Networking Foundation),NFV(Network Functions Virtualization)の要件を関連するOSS が満たすようコーディネートや検証を進 めるOPNFV(Open Platform for Net- work Functions Virtualization)などの さまざまなオープンコミュニティでの 議論を通して,通信事業者の要件を反 映したり,研究所が開発したプロダク トのOSS化を進めています.本稿で は,その中でもネットワークサービス を支えるOSSとして研究所が積極的 に 取 り 組 ん で い る,「Blazar」 「Lagopus」「GoBGP」の 3 つのOSS への取り組みを紹介します. Blazar Blazar (1) はOpenStackにおけるコン ピュートなどのリソースの「予約」を 扱うプロジェクトです.限られたリ ソースの使用権を予約管理したり,高 優先サービス用の予備リソースを確保 したりするようなユースケースを想定 しています. 活動にあたってはNTTソフトウェ アイノベーションセンタ(SIC)と NTTネットワークサービスシステム 研 究 所(NS研 ) で タ ッ グ を 組 み, SICの強みであるOpenStackを含む豊 富なOSS活動の知見と,NS研の強み である事業導入を見据えたネットワー クサービスの研究開発や実用化に関 する知見を連携させて,俊敏かつ着実 に成果を創出できるように推進してい ます. ■Blazarの取り組み OpenStackのリソース予約サービス として2013年にBlazar(旧称:Climate) プロジェクトが発足し,2014年に初 期リリース(Icehouse版)が行われま した.2016年からOPNFVでリソース 予約の要件を実現するPromise (2) OSSを探していたNTT研究所員が Blazarに着目しコントリビュータ(貢 献者)として参加しました.その後, BlazarのPTL (Project Team Lead: プロジェクトの責任者)やコアレ ビューアに就任することによって, NTTが中心となってプロジェクトを 推進する現在の体制となりました. 2017年 3 月には当時のOpenStackの 最新リリース「Ocata」に合わせ,約 3 年ぶりにBlazarをリリースしました (3) このリリースでは,OpenStack (Ocata) 環境において,コンピュートリソース をホストと呼ばれる単位で予約管理で きます.その後,インスタンスと呼ば れるより細かい単位での予約や, Blazarをより使いやすくするための ダッシュボードなどの新機能を追加 し,2017年 8 月にはOpenStackの最新 リリース「Pike」に合わせて最新の Blazarをリリースしました. Blazar Lagopus GoBGP ネットワークサービスを支えるOSSへの取り組み オープンソースソフトウェア(OSS)活用の重要性が増す中,技 術力や競争力をより強化するためにNTT研究所ではOSSを利用する だけでなく,通信事業者の要件やその実現のためのプログラムコー ドを提供することで,コミュニティや社会に貢献し信頼やフィード バックを得る必要があると考えています.本稿では,その中でもネッ トワークサービスを支えるOSSとしてNTT研究所が積極的に取り組 んでいる,「Blazar」「Lagopus」「GoBGP」の3つのOSSの取り組み について紹介します. /室 まさひと /小 こばやし ひろあき たかはし ひろかず /日 /加 じゅんや とものり /石 わたる NTTネットワークサービスシステム研究所 †1 NTTソフトウェアイノベーションセンタ †2 NTT未来ねっと研究所 †3 †1 †2 †1 †3 †3 †2 †2 †2

Upload: others

Post on 26-Jan-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

  • NTT技術ジャーナル 2017.12 15

    特集

    IoT/AI/SDx時代を支えるOSSへの取り組み

    ネットワークサービスを支えるOSS

    ベンダ専用のハードウェア ・ ソフトウェアによる一体構成が中心であったネットワーク装置の世界においても近年急速にオープン化が進んでいます.最近ではITインフラだけでなく,ネットワークインフラでもオープンソースソフトウェア(OSS)の活用が進められており,今後はコモデティ化したハードウェアにOSSや自前のソフトウェアを組み合わせ,必要なサービスを迅速に開発する「ホワイトボックススイッチ」の考え方が主流になると考えられています.NTTではネットワークインフラ分野において,効率的で自由度の高いシステム開発手法を確立するために,要件やプログラムコード自体の提案をリードしていく必要があると考えています.その実現のために,クラウドインフラを実現する代表的OSSであるOpenStack,SDN(Software Defined Networking)技術の標準化を進めるONF(Open Networking Foundation),NFV(Network Functions Virtualization)の要件を関連するOSSが満たすようコーディネートや検証を進めるOPNFV(Open Platform for Net

    work Functions Virtualization)などのさまざまなオープンコミュニティでの議論を通して,通信事業者の要件を反映したり,研究所が開発したプロダクトのOSS化を進めています.本稿では,その中でもネットワークサービスを支えるOSSとして研究所が積極的に 取 り 組 ん で い る,「Blazar」

    「Lagopus」「GoBGP」の 3 つのOSSへの取り組みを紹介します.

    Blazar

    Blazar(1)はOpenStackにおけるコンピュートなどのリソースの「予約」を扱うプロジェクトです.限られたリソースの使用権を予約管理したり,高優先サービス用の予備リソースを確保したりするようなユースケースを想定しています.

    活動にあたってはNTTソフトウェアイノベーションセンタ(SIC)とNTTネットワークサービスシステム研究所(NS研 )でタッグを組み,SICの強みであるOpenStackを含む豊富なOSS活動の知見と,NS研の強みである事業導入を見据えたネットワークサービスの研究開発や実用化に関する知見を連携させて,俊敏かつ着実に成果を創出できるように推進してい

    ます.■Blazarの取り組み

    OpenStackのリソース予約サービスとして2013年にBlazar(旧称:Climate)プロジェクトが発足し,2014年に初期リリース(Icehouse版)が行われました.2016年からOPNFVでリソース予約の要件を実現するPromise(2)でOSSを探していたNTT研究所員がBlazarに着目しコントリビュータ(貢献者)として参加しました.その後, BlazarのPTL (Project Team Lead:プロジェクトの責任者)やコアレビューアに就任することによって,NTTが中心となってプロジェクトを推進する現在の体制となりました.

    2017年 3 月には当時のOpenStackの最新リリース「Ocata」に合わせ,約 3年ぶりにBlazarをリリースしました(3).このリリースでは,OpenStack (Ocata)環境において,コンピュートリソースをホストと呼ばれる単位で予約管理できます.その後,インスタンスと呼ばれるより細かい単位での予約や,Blazarをより使いやすくするためのダッシュボードなどの新機能を追加し,2017年 8 月にはOpenStackの最新リリース「Pike」に合わせて最新のBlazarをリリースしました.

    Blazar Lagopus GoBGP

    ネットワークサービスを支えるOSSへの取り組み

    オープンソースソフトウェア(OSS)活用の重要性が増す中,技術力や競争力をより強化するためにNTT研究所ではOSSを利用するだけでなく,通信事業者の要件やその実現のためのプログラムコードを提供することで,コミュニティや社会に貢献し信頼やフィードバックを得る必要があると考えています.本稿では,その中でもネットワークサービスを支えるOSSとしてNTT研究所が積極的に取り組んでいる,「Blazar」「Lagopus」「GoBGP」の 3 つのOSSの取り組みについて紹介します.

    四し

    七な

    秀ひ で き

    貴 /室む ろ い

    井 雅まさひと

    仁 /小こばやし

    林 弘ひろあき

    高たかはし

    橋 宏ひろかず

    和 /日ひ

    比び

    智と も や

    也 /加か と う

    藤 淳じゅんや

    藤ふ じ た

    田 智とものり

    成 /石い し だ

    田  渉わたる

    NTTネットワークサービスシステム研究所†1

    NTTソフトウェアイノベーションセンタ†2

    NTT未来ねっと研究所†3

    † 1 † 2 † 1

    † 3 † 3 † 2

    † 2 † 2

  • NTT技術ジャーナル 2017.1216

    IoT/AI/SDx時代を支えるOSSへの取り組み

    PromiseではBlazarの利用を前提に議論されており,通信事業者における仮想化基盤の実際の運用を想定して,私たちは主に以下のユースケースを提案しています.

    ① Resource migration: 1 日のトラフィック需要予測(日中はオフィス街,夜間は住宅街など)に応じた機能配置を確実に行えるようにあらかじめ必要なリソースを確保する(図1).

    ② Maintenance support:ファイル更新など計画的なメンテナンスを確実に実行するためにあらかじめ必要なリソースを一時的に確保する.

    ③ Guarantee for instantiation:大量のVM(Virtual Machine)を必要とするサービスの起動が一時的なコンピュートリソース不足で失敗することがないようにあらかじめ必要なリソースを確保する.

    BlazarはOpenStack全体としては後発のプロジェクトのため,これらの

    ユースケースを実現するための機能追加にあたっては中核機能であるNovaとのデータや処理の整合性の担保などに細心の注意を図る必要があります.2017年 5 月 に 行 わ れ たOpenStack Boston Summitでは,Novaは「現在」のリソース状況を管理するのに対して,Blazarは時間軸の概念を取り入れ「未来」のリソース状況を管理することを提案し合意されるなど,役割分担やロードマップに関するプロジェクト間の整合を取りつつ重要な議論や意思決定に貢献することができました.■Blazarの今後

    Blazarはこれまでの実績が認められ2017年 9 月にOpenStackの公式プロジェクトとなり,開発をより加速できるようになりました.研究機関や通信事業者からの関心が特に高く,高い信頼性を必要とするこれらのユーザにこたえるために, 2018年 2 月リリースの「Queens」に向けさらなる開発を進めています.具体的には予約リソースのモニタリングや,障害波及範囲を

    考慮した予約リソースの管理など,特に信頼性の向上を実現(4)します .また,ネットワークやストレージといった予約対象リソースの拡充などにも長期的なテーマとして取り組んでいく予定です.

    Lagopus

    Lagopus(5)はOpenFlow 1.3にもっとも適応した高速な汎用x86サーバで動作可能なソフトウェアスイッチです.OpenFlow対 応 の ス イ ッ チ で は,OpenFlowコントローラから受けた命令に従い,「どういうパケット(match)」

    「どんな処理をするか(action)」を指定 す る こ と が で き ま す( 図 2 ).LagopusはEthernetをはじめ,Mac in MACやMPLS(MultiProtocol Label Switching),PBB(Provider Backbone Bridging),IPv4など,さまざまなプロトコルフレーム処理に対応し,QoS

    (Quality of Service)機能も備えています.最近では当たり前となったSDN/NFVの適用領域をデータセンタから広域網に広げるため,2013年度からLagopusの開発を開始し,2014年にOSS化しました.開発当初はOSSとして公開されたばかりであった高速I/Oライブラリ(DPDK)を活用し,当時難しいといわれていた,汎用サーバによる10 Gbit/sを超えるパケット処理 ・ 転送性能,100万フローエントリの対応を実現し,注目を集めました.

    現在ではVMとの連携やトンネルプロトコルに対応し,性能面においても40 Gbit/sを超える転送性能を実現しています.

    リソースの移行

    6 am 7 am

    ユーザの需要変動

    トラフィック需要に応じた機能配置を確実に行えるようにあらかじめ必要なリソースを確保する

    住宅街 オフィス街

    トラフィック需要

    図 1  Blazarユースケース例:Resource migration

  • NTT技術ジャーナル 2017.12 17

    特集

    ■Lagopusの取り組みLagopusをOSS化 と し た こ と で

    NTT内外を問わず,さまざまな組織,ユーザの協力を得ることができました.これによりLagopusは,商用化に向けた取り組みのほかに,OpenFlow 1.3の柔軟さを活かした新しいネットワー

    クの実証実験に利用されています.ネットワーク機器は,さまざまな用途で多種多様なネットワーク機器と接続するため,その相互接続性を網羅することは困難です.しかし,Lagopusはユーザと実証実験を繰り返すことでさまざまなユースケースに沿った接続を

    実証することができました.特にInterop Tokyoでは,2015年か

    ら今まで, 3 年連続でShowNetに導入され,いずれの年も全く違ったユースケースでの相互接続の実証を行っており,新しいネットワークの提案に貢献しています.

    2015年のShowNetではSDNIX(Internet eXchange)のスイッチの 1つとして導入されました.NECOMAプロジェクトと協力し,Lagopusを用いて,通常のL2の機能に加え,異なる VLAN(Virtual Local Area Network)間の相互接続や攻撃トラフィックからの防御を実現しました

    ( 図 3 ). こ の 取 り 組 み はInterop Tokyo 2015のBest of Show Award SDI部門の審査員特別賞を受賞しています.

    2016年にはネットワーク機能仮想化(VNF: Virtual Network Function)との接続を検証しました.それまでVNFが物理NICと直接接続することが一般的でしたが,Lagopusを経由することでより柔軟なVNF間のトラフィック制御を高速に行うことが可能となりました.これを実現するためのDPDKによるVNFとの接続機能は,Lagopusプロジェクトで開発し,その成果をDPDKのコミュニティにコントリビュートした機能です.

    2017年は,トンネル機能の実装と相 互 接 続 の 実 証 を 行 い ま し た.OpenFlow 1.3にはトンネルを実現する仕組みがなく,オーバレイネットワークにおいては柔軟なフロー制御ができませんでした.今回,OpenFlow 1.3を拡張し,トンネル機能を追加したこ

    外部 AS

    イベント会場内のネットワーク

    物理回線

    AS間の経路

    OpenFlowスイッチ

    OpenFlowスイッチ

    大手町(東京)

    幕張(千葉)

    DDoS 攻撃の防御

    Lagopus

    Lagopus

    SDN-IX

    AS間のL 2 接続だけでなく,OpenFlowによるDDoS攻撃の防御を行う.

    図 3  SDN-IX

    OpenFlow コントローラ

    OpenFlow スイッチデータプレーン

    Flow Tablematch action

    FlowTable# 2

    FlowTable# 3match action

    OpenFlow プロトコル

    OpenFlowコントローラから与えられたmatchとactionのルールに従いパケット処理・転送を行うことで柔軟なフロー制御を実現する.

    図 2  OpenFlowスイッチ

  • NTT技術ジャーナル 2017.1218

    IoT/AI/SDx時代を支えるOSSへの取り組み

    とで,OpenFlowの適用範囲をさらに広げることができました.

    これらの取り組みにより,Lagopusの機能拡張だけでなく,相互接続検証を通じ,安定性が向上しました.■Lagopusの今後

    現在はLagopusのルータ化という新しいステップに進んでいます.さまざまな実証実験,ユーザとの交流を通し,OpenFlow 1.3のような柔軟なフロー制御の有用性を確認できましたが,商用網への導入には既存のルーティングプロトコルとの接続が不可欠だというこ と が 分 か り ま し た.こ の た め,LagopusコミュニティではLagopusルータの開発を開始し,初期バージョンを2017年 8 月にOSSとして公開しました.

    現在のLagopusルータは簡単な機能しか公開されていませんが,機能を充実させ,既存ルータのルーティングプロトコルとOpenFlowのようなマッチとアクションで柔軟なトラフィック制御ができるルータをめざし,コミュニティと日々開発を進めています.

    GoBGP

    BGP(Boarder Gateway Protocol)は経路交換を行うためのプロトコルの1 つです.インターネット上ではAS

    (Autonomous System) と 呼 ば れ るISP(Internet Service Provider)などサービスプロバイダや企業などの組織間の経路交換のため広く利用されています.同時にBGPはインターネットでの利用に限らず,さまざまなユースケースに適用されています.例えば,IPVPN接続を提供するキャリアバッ

    クボーンでラベル情報の交換に利用したり,データセンタにおいてサーバなどの計算資源をスケーラビリティを確保しながら分散配置するためのネットワーク制御にBGPを適用する事業者が存在するなど,BGPの適用領域は拡大しています.

    GoBGP(6)はGo言語で記述されたBGP実装です.Go言語はGoogleが発表したプログラミング言語で,言語仕様に並列処理を記述する機能が標準搭載され,豊富なライブラリが整備もされており,システムプログラムの分野を中心に普及しています.さらにモダンなサーバハードウェアはマルチコアCPUを 搭 載 し て い る こ と か ら,GoBGPはGo言語の特徴と豊富なハードウェア資源を活かし高性能を志向して設計されています.

    GoBGPが現在サポートしている主要な機能は下記のとおりです.

    ・ API(gRPC), CLI (コマンドラインインタフェース)両者の制御インタフェースを提供

    ・ ベンダ非依存のコンフィグモデルのサポート (OpenConfig)

    ・ モニタリング (MRT, BMP)・ ルートリフレクタ (AddPath機能

    あり)・ ルートサーバ・ ポリシー制御・ リソースPKI (RPKI)・ Flowspec・ VPN機能(EVPN, L3VPN,

    VRF)・ 切断制御 (graceful restart)・ OSの デ ー タ プ レ ー ン 制 御 (zebra*連携)

    すでに多様な機能をサポートしていますが,それ以上にBGPのユースケースは広がりを見せており,OSSとして開発することで外部開発者の参画を促しながら,多くのユーザにとって有用な機能拡張を進めています.■GoBGPの取り組み

    (1) 外部システムと円滑な連携のためのAPI

    インターネットマルチフィード社が提供するJPNAP(Japan Network Access Point) RouteFEEDサービスにおいて,GoBGPはルートサーバ機能として商用利 用され て い ま す.RouteFEEDはJPNAPに接続する事業者間の経路交換を仲介するサービスで,RouteFEED提供がない場合,事業者どうしが相対で経路交換を行う必要がありますが,事業者はルートサーバとBGP接続(ピア)を確立するだけで他の事業者との経路交換が可能になります(図 4 ).ルートサーバはポリシー情報をピアごとに設定する必要があり,ピア数に対するスケーラビリティが求められます.本要求にこたえるため高性能なGoBGPが適用されました.また,従来は手動で行っていた複雑な設定オペレーションを,外部の運用システムと連携させることで自動化(7)するためGoBGPのAPI機能が用いられてい ます.

    (2) ホワイトボックススイッチ制御のためのインテグレーション

    ホワイトボックススイッチは,汎用

    *zebra:Quagga, FRRなどのルーティング実装に含まれる機能の一部で,受信した経路情報を,転送を司るOSカーネルのルーティングテーブルに反映する機能を持ちます.

  • NTT技術ジャーナル 2017.12 19

    特集

    の転送ASIC(Application Specific Integrated Circuit)を搭載したハードウェアで,ハードウェアの制御を行うネットワークOS (ソフトウェア)を用途に応じて選択することができます.オープンなネットワークOSはLinuxをベースに構成されていることが多いです.GoBGPとLinuxベースのネットワークOSが搭載されたホワイトボックススイッチを組み合わせて,BGPルータを構成することが可能です.

    転送装置がパケット転送を行うためにはFIB(Forwarding Information Base)と呼ばれるルーティングテーブルに転送ルールを書き込む必要がありますが,GoBGPにはzebra機能と連携したFIB操作の仕組みがあり,BGPにより受信した経路を転送ルールとしてFIBに反映させることができます.ネットワークOSの制御対象が転送ASICである場合,当該ハードウェアのFIBにルールが設定されることで,

    ハードウェア転送が可能なBGPルータを構成することができます.

    (3) コンテナ向け仮想ネットワーク制御への適用

    複数コンテナの分散実行に必要な仮想ネットワークを構成するための有力なOSSの 1 つとして,Calico(8)が存在します.Kubernetus, Docker,Mesosなどの主要なコンテナオーケストレータをサポートしており,さまざまなシステムで接続を制御することが可能です.コンテナ間のIP接続制御にはBGPが利用されており,従来はBGP機能としてBIRDが利用されていましたが,より大規模なユースケースのためスケーラビリティに優れるGoBGPを適用することも可能です.■GoBGPの今後

    BGPを適用するユースケースは今後も拡大し,新たなプロトコル拡張が出現することも想定されます.オープンな開発を通じた外部の開発者の参画によるさまざまなユースケースへの適

    用をめざすとともに,OSSを活用したビジネスマーケットの拡大も推進し,ネットワークインフラのソフトウェア化にかかわる技術発展とビジネスの活性化をめざします.

    ■参考文献(1) https://wiki.openstack.org/wiki/Blazar(2) https://wiki.opnfv.org/display/promise/

    Promise(3) https://launchpad.net/blazar/+milestone/0.3.0(4) https://blueprints.launchpad.net/blazar(5) http://www.lagopus.org/(6) https://osrg.github.io/gobgp/(7) ht tp ://www.mfeed . co . jp/press/2016/

    pdf/20160930.pdf(8) https://www.projectcalico.org/

    (上段左から) 小林 弘明/ 四七 秀貴/日比 智也/ 高橋 宏和

    (下段左から) 藤田 智成/ 石田  渉/加藤 淳也/ 室井 雅仁

    各種OSSへの通信事業者の要件の反映や研究所が開発したプロダクトのOSS化を,さまざまなオープンコミュニティと議論しながら進めていく活動を通じて,NTTグループの付加価値創造に貢献していきます.

    ◆問い合わせ先NTTネットワークサービスシステム研究所 企画担当

    TEL ₀₄22-₅₉-₆1₇₇FAX ₀₄22-₆₀-₇₄2₀E-mail nskensui lab.ntt.co.jp

    (a) ルートサーバなし (b) ルートサーバを利用

    事業者どうしが相対で経路交換 事業者はルートサーバとのみ経路交換

    事業者1 事業者2

    ピア

    ピア

    ピア ピア

    ピア

    ピア

    事業者1

    ルートサーバ

    IX IX

    事業者2

    事業者3事業者3

    図 ₄  IXでのルートサーバ役割