IXP管理のフルスタック自動化

2020年12月21日 月曜日


【この記事を書いた人】
Christoff Visser

I'm a researcher at IIJ-II, with a focus on Software Defined Networking within internet exchanges.

「IXP管理のフルスタック自動化」のイメージ

IIJ 2020 TECHアドベントカレンダー 12/21(月)の記事です】

※本記事は、原文「A Full Stack automation at Internet Exchanges」の日本語訳です

はじめに

いくら優秀なネットワークオペレータがいたとしても、ネットワークが複雑になるに従って、管理コストや運用に要する時間は増えていきます。性能とスケーラビリティを損なうことなく運用プロセスを簡素化する最善策は、上位管理層での自動化です。

この記事では、私たちが開発しているHolistic Internet Exchange (HIX)を紹介します。HIXは、SDNベースのインターネットエクスチェンジポイントにおいて、プランから、デザイン、テスト、設定までの一連の管理作業を一括して行うためのツールです。単一のシンプルかつ使いやすいユーザインターフェースで、これらのIXP管理作業をSDNベースの多様なデータリンク層の設定まで含めて完結させることが可能で、これをフルスタック自動化と呼んでいます。

IXPおよびIXP Managerについて

インターネットエクスチェンジポイント(IXP)は、ネットワークオペレータが、互いの利益を目的としてトラフィックを交換する相互接続点です。IXPはインターネットサービスプロバイダやCDN事業者が相互接続する設備として、今日のインターネットの中核となる役割を担っています。

世界中には800程のIXPが存在しますが、大部分はスイッチ3台以下で構成されるような小さなもので、ボランティアのエンジニアたちによって運営されています。一方で、インターネットのトラフィックは急激に増加しているので、これらのIXPも信頼性を維持しながらスイッチの容量を増やしていく必要に迫られています。大規模なIXPであれば、専属のエンジニアを雇って、手動あるいは内製ツールを使って機器の設定や管理ができます。しかし、全体の自動化を内製できているのはIXPの1%未満で、ごく一部の大規模IXPに限られています。

IXP Managerは世界的に広く利用されているIXP管理プラットホームです。IXP Managerは管理者用ポータルや、メンバーのスイッチポート間のプロビジョニング機能など最先端の機能を取り揃えています。IXP Managerを利用するIXPは、2020年初頭には80程度に過ぎませんでしたが、いまでは145以上にまでに広がってきました。IXP Managerの管理者ポータルでプロビジョン可能なインフラの構成要素は、スイッチ、ルータ、IPアドレス、パッチパネル、さらにメンバー登録管理など多岐に渡ります。

IXPオペレータは、IXP Managerを用いることで多くのIXP共通のベストプラクティスを実践することになり、同時に、運用管理の更新情報が常にデータベースに記録されます。なお、HIXでは、IXP ManagerのAPIを通してそれらのデータベース情報を取得し利用するので、常に設定情報を最新の状態に保つことができます。

残念ながら、IXP Manager自体は、ネットワーク機器の設定を自動化する機能を持ち合わせていません。この欠点を解消するのが、HIXプロジェクトの目的です。

インターネットエクスチェンジ全体論について

IXPの多様な要求に柔軟な対応をするためにSDNの利用が有望です。HIXは、SDN IXPのためのUmbrellaスイッチファブリックの管理、プランニング、テストまでを一括して行うフルスタック化によって、IXP管理を簡素化しコストを低減します。

HIX(Holistic Internet Exchange)という名前は、系全体の振る舞いはバラバラの部品の集まりとして還元論的には理解できないとする全体論(英語でホーリズム holism)という考え方に由来していて、IXPに繋がるシステムの全体像を捉えようとするものです。

HIXのシステム構成要素の名前は、全体論をテーマにしているDouglas Adams著の書籍「Dirk Gently’s Holistic Detective Agency」に登場するシンボルのイラストを元にしていて、Miru(日本語の“見る”と発音が同じことから)とAthosと名付けました。

図1: HIXフルスタック概要

図1に示すようにHIXは主に4つの機能から構成されます。ここでは各機能について、特に今回開発したシステムであるMiruとAthosを中心に紹介します。

まずは、管理機能(Management)です。Miruは管理機能の拡張であり、オペレータがブラウザ上のアイコンをドラッグ&ドロップするだけで、ネットワーク機器のプランニングを行うことができます。さらに、プランニングの結果を設定ファイルとして出力します。

HIXではSDNコントローラとしてFaucetを利用していて、MiruはFaucet用の設定ファイルを生成します。Athosは、この設定ファイルを元にネットワーク環境をエミュレートし、全ての地点間の疎通性と、スイッチ構成の冗長性を検証します。検証で問題がないことが確認されれば、全く同じ設定を実環境へ適用することができます。この機能を使うことで、オペレータは管理するネットワークを安全にテストし、また、理解を深めることもできます。

HIXでは、Faucetに含まれるGrafanaとGaugeというツールでネットワーク内のトラフィックを監視し、得られた情報をIXP Managerで表示できるようにします。Grafanaはブラウザ上で利用可能なダッシュボードフレームワークで、Gaugeによって集められたOpenFlowのルールカウンタの統計データを可視化します。

Umbrellaスイッチファブリックは、SDNの柔軟性を生かした設計によるデータリンク層機能を提供します。Umbrellaスイッチファブリックは、スケーラビリティ上問題となるブロードキャストトラフィックを無効化し、宛先MACアドレスを元にしたラベルスイッチング転送を行います。詳細については、こちらの論文をご参照ください。

図2: Miruを使ったダイアグラム作成のデモ動画です。ブラウザ上で、スイッチを表すアイコンをドラッグ&ドロップで移動し、スイッチ間を線描画で接続する様子を示しています。配線完了後には、設定ファイルを生成し、Athosによる検証を行なっています。

Miru

Miruはダイアグラム(論理結線)を統合したプランニング機能を提供します。この機能は、IXP Manager を通して取得可能なデータに基づいていて、オペレータは管理するネットワークを結線図として可視化しながらプランニングを行うことができます。

一般に、ネットワークの結線図はデプロイプロセスの最後になって作成され、更新も滞りがちなものです。Miruでは、プランニングと結線図作成を同時に行います。結線図の作成は、簡単なドラッグ&ドロップ操作を通して行うことができます。この機能は(かつてはdraw.ioとして知られていた)diagrams.netというソフトウェアを使って実現しています。

図2に、IXP ManagerとMiruがどのように統合され機能するかを簡単に示すデモ動画があります。画面上のサイドメニューにはスイッチを表すブロックのアイコンがあり、アイコンはスイッチについての情報とともに表示されます。また、そこには接続されているIXPメンバーの詳細も含まれます。オペレータはスイッチのアイコンをドラッグ&ドロップでキャンバス上へ配置し、各スイッチとの間に配線を描くことができます。IXP Managerと同様に、Miruもベストプラクティスに従うように設計されています。例えば、メンバー間を接続する際には、その用途にリザーブされているスイッチのポートを見つけ、オペレータの接続先の選択肢として提示します。

この仕組みにより、生成されたダイアグラムは全てのインフラに関する情報を保持する信頼すべきマスターデータになります。さらに、MiruはダイアグラムをもとにSDNコントローラーの設定ファイルを自動生成し、それを用いて、HIXの二つめの構成要素であるAthosがテストと検証を行います。

Athos

Athosは、実環境の更新を安全かつ制御された方法で行うことを可能にする、世に言うPush-on-Greenモジュールです。ネットワークの検証とデプロイを連動させて自動化することで、実環境の更新を最小限の労力と最短のダウンタイムで実現します。

AthosはMiruによって生成された設定ファイルをもとに、コントロールプレーンとデータプレーン両方を含んだエミュレートされたネットワーク環境を構築します。Athosは、構築したネットワーク上で、各地点がIPv4とIPv6両方で接続が可能か、またVLANタグが正しく機能するかについて確認を行います。冗長化機能については、リンクの切断とスイッチの停止によってテストを行います。

図2の動画では、AthosをMiruの中から呼び出せることを示しています。HIXの目指すところは、ひとつのシステムでネットワークのプランニング、テスト、検証を完結させることでした。図3に、HIXの全体的なアーキテクチャーを示します。図のように、MiruとAthosは独立したモジュールとしてデザインされ、互いにIXP Managerを通してコミュニケーションを行います。AthosはOpenFlow Faucetコントローラーを利用していて、OpenFlowスイッチならびにP4言語(p4_lang)でプログラムされるUmbrellaコアスイッチに対応しています。

図3: HIX Architecture Diagram

まとめと今後の予定

このブログでは、近日中に予定しているMiruとAthosのソースコード公開を前に、HIXプロジェクトの概略を紹介しました。HIXプロジェクトは、IXP Managerに不足している機能を自動化機構で強化していて、最終的にはどのような規模のIXP管理にも利用できるようにしていきます。

最後に、HIXの現在の主なフォーカスはIXPですが、今後、データセンタネットワークのような異なるネットワークへの対応を検討しています。さらに詳しい情報について知りたい方は、Christoff Visser、または、Marc Bruyere までご連絡ください。

IIJ Engineers blog読者プレゼントキャンペーン
  • Twitterフォロー&条件付きツイートで「IoT米」を抽選で20名にプレゼント!
    応募期間は2020/12/01~2020/12/31まで。詳細はこちらをご覧ください。
    今すぐツイートするならこちら→ フォローもお忘れなく!

Christoff Visser

2020年12月21日 月曜日

I'm a researcher at IIJ-II, with a focus on Software Defined Networking within internet exchanges.

Related
関連記事