検証用論理ネットワーク構築手法の提案・実装

氏名: 上野 幸杜
所属・学年: 政策・メディア研究科 修士1年

1. 研究概要

 本研究では、Internet Service Provider(ISP)のネットワークインフラストラクチャ運用において、新サービス導入時の障害発生を防ぐための論理ネットワークを用いた事前検証環境構築手法を提案・実装する。本研究の目的は、ISPの新サービス検証手法を確立し、設定ミスまたは検証不足による障害発生を防ぐことである。このような手法が必要とされる背景として、ISPにおいて発生する障害のうち、新サービスを導入する際の手動での設定変更中のミスや、事前検証では判明しない、ネットワーク全体の挙動に依存した障害の割合が高いことがある。新サービスを導入するためには、ISPの持つネットワークに多数の設定変更が必要になるが、一方でネットワークの設定変更は予期しない障害を引き起こす原因となる。ISPが提供する主要なサービスとして、インターネット網への接続性提供がある。ISPが、より高速なメディアや冗長性を高めた新たな接続形態でインターネット網への接続性提供サービスを行うためには、運用しているネットワークのレイヤ2及びレイヤ3機器の設定変更や接続形態の変更が必要になる。このとき、新たなサービス導入後のネットワーク全体の挙動を事前に検証する手法は確立されていない。

2. 問題点

 本研究では、ISPの新サービス導入に際し、障害を回避するための事前検証を難しくしている問題点として、以下の点に着目する。

  1. 実際のネットワークに新サービスを適用した場合の挙動を事前に再現できない点
  2.  新サービスの内容によっては、ネットワーク上の既存のレイヤ2及びレイヤ3機器の動作に影響を与える場合がある。例として、ネットワークの冗長化やより高速なメディアへの変更が挙げられる。このような場合、既存ネットワークに新サービスを適用した際に、ネットワークのループや不適切な経路制御が発生し障害となる場合がある。また、新サービスによって解消されたネットワーク上のボトルネックが他の地点に移動し、結果としてサービスの品質が向上しない場合がある。
  3. 実際のトラフィックを流した場合の挙動を事前に再現できない点
  4.  一般に、ISPの提供するネットワークには多数の顧客が収容され、膨大なトラフィックが流れている。新サービスの事前検証時は、実際のネットワークに事前検証中の新サービスを適用することはできないため、実際のトラフィックが流れた際の挙動を把握することができない。従って、新サービスが事前検証を上回るトラフィックを受けた際に、障害が発生する場合がある。また、新サービスの内容によっては、事前検証時に想定しないプロトコルやパケットフォーマットでのトラフィックを受けた際に、障害が発生する場合がある。

3. 提案手法

図1
図1: Immutable Infrastructureの概要
 2節で述べた問題点を解決するため、本研究では、論理ネットワーク構築手法を提案する。本手法によって、ネットワークのImmutable Infrastructure化を実現することができる。Immutable Infrastructureは、サーバ運用形態の1つとして考案された。Immutable Infrastructureの概要を図1に示す。Immutable Infrastructureは、運用中のサービスには一切手を加えず、サービスの構成を変更する際にはサーバなどの物理機器ごと交換する運用形態である。サーバ運用においては、サーバOS、HTTPサーバ、スクリプト実行環境、Webサイトのコンテンツなど複数の構成要素によってサービスが成り立っている。Immutable Infrastructureにおいては、各構成要素の一部を変更する場合であっても、各サーバの内容を変更することはせず、サーバごと新しいものに交換する。従来個別のソフトウェア毎に設定変更を行っていた運用形態を、Immutable Infrastructureのような運用形態へ変更することで、旧環境の設定変更中のミスによりサービスが停止することを防ぐことができる。また、新しい環境は事前検証時とサービス時で全く同一となるため、事前検証の不備による障害の発生を軽減することができる。
 本研究では、この運用形態をネットワーク運用において実現したものをImmutable Network Infrastructureと呼ぶ。Immutable Network Infrastructure実現のため、本研究では、提案する論理ネットワーク構築手法を用いて、同じ構成の論理ネットワークを複数物理ネットワーク上に展開可能にする。現在、ISPは物理設備上に論理的に1つのネットワークを構築しサービスを提供する形態が主流である。しかし、このような運用形態では検証用の論理ネットワークを同一の物理設備上に構築することができないため、2節で述べた問題が解決できない。本研究で提案する論理ネットワーク構築手法では、サービス中の論理ネットワークと同一構成の論理ネットワークを複数展開できるため、前述1.の問題を解決できる。また、エッジのレイヤ2スイッチにおいてトラフィックのコピーを行うことにより、2.の問題を解決する。
 ただし、ネットワーク運用においては、サーバ運用においてImmutable Infrastructureを実現する手法に工夫を加える必要がある。サーバ運用におけるImmutable Infrastructure実現手法をそのまま適用できない理由として、以下が挙げられる。
  1. サーバ運用においては、サービスの変更が影響を及ぼす範囲は単一のサーバ(単一のノード)だけに留まるが、ネットワーク運用においてはネットワーク全体(複数のノード)に影響を及ぼす。
  2. サーバ運用はLinuxやBSDなど単一のOSに統一して行われる場合が多いため本手法の実装が容易であるが、ネットワークはマルチベンダで構成されることが多く、設定内容などがベンダによって異なるため実装が難しい。
  3. サーバ運用においては既存の設定内容をディスクイメージなどの形で容易にバックアップ可能だが、ネットワーク運用においては別の手法が必要となる。
図2
図2: ネットワーク全体を再現する機構の概要
図3
図3: 論理ネットワーク構築手法の概要
 上記1.を解決するため、本研究では論理ネットワークとしてネットワーク全体を抽象化し、検証のためにネットワーク全体を再現する機構を実装する。この機構の概要を図2に示す。本研究では、VLANを用いて仮想レイヤ2ネットワークを構築する。さらに、ルーティングテーブル仮想化技術であるVirtual Routing and Forwarding(VRF)を用いて仮想レイヤ3ネットワークを構築する。ただし、VRFは多くのベンダが実装しているものの、標準化された技術ではない。その上で、構築した仮想レイヤ2ネットワーク及び仮想レイヤ3ネットワークを合わせて1つの論理ネットワークとして抽象化する。論理ネットワークはスクリプトを用いて自動で構築・消去する。この手法を用いることで、新たなサービスの検証をする際に、設定変更のミスによる障害を発生させることなく運用中のネットワークと同一構成の検証用ネットワークを構築できるため、ネットワーク全体の挙動に依存し、影響を及ぼすようなサービスの事前検証であってもImmutable Infrastructureのような運用形態を適用することができる。
 また、上記2.を解決するため、本研究では、マルチベンダに対応したコマンドラインインターフェース(CLI)の抽象化APIを実装する。ルータ及びスイッチは一般的にCLIを用いて設定し、ベンダによってコマンドの名称などが異なるため、これを抽象化するためのライブラリ群が必要となる。実装には、Expect[1]等のtelnetプロトコル及びsshプロトコルを使用可能なCLIパースライブラリを用いる。
 さらに、上記3.を解決するため、本研究では、2.で実装するCLIの抽象化APIによって取得した設定情報をバージョン管理システムによってバックアップする。バージョン管理システムを使用することにより、設定情報をリビジョン管理することが可能となるため、サーバ運用におけるディスクイメージによるバックアップと同様に、ネットワーク設定情報のバックアップを実現することができる。
 以上で挙げた手法により実現される論理ネットワーク構築手法の概要を図3に示す。この手法を用いることで、2節で述べた問題点のうち1. 実際のネットワークに新サービスを適用した場合の挙動を事前に再現できない点を解決することができる。さらに本研究では、2節で述べた問題点のうち2. 実際のトラフィックを流した場合の挙動を事前に再現できない点を、ネットワークのエッジにおいてトラフィックをコピーすることで実現する。現在の多くのレイヤ2スイッチは、特定のポートで受信したパケットを複数のポートにコピーする機能を有している。この機能を、検証用論理ネットワークに適用し、実際のトラフィックのコピーを行う。これにより、検証用サービスであっても実際のトラフィックを流すことが可能になるため、2.の問題点を解決できる。

4. 関連研究

 本研究に関連した既存研究として、R.Alimiらにより提案されたShadow Configuration[2]がある。Shadow Configurationは、サービス用及び検証用に2つの設定を用意し、それら2つの設定をもとに論理ネットワークを構築する。その上で検証ネットワークに対してはパケットコピーを行い、ネットワークの設定を検証する手法である。Shadow Configurationの提案する手法は本研究と似ているが、マルチベンダネットワークを想定する点、設定の管理手法を考慮する点、任意の数の論理ネットワーク構築を可能にする点が本研究の新規性となる。

5. 実装

 本研究で提案する論理ネットワークを用いた事前検証環境構築手法を実装するための予備調査として、ネットワーク技術に関するサーベイ及び実装の一部をInterop Tokyo 2014[3]及びWIDEプロジェクト藤沢NOC[4]にて行った。サーベイの主な対象は、ネットワーク機器に対する自動設定プロトコルの標準であるnetconf[5]とした。netconfは自動設定プロトコルとして標準化されており、ベンダを問わず広く実装されている。しかし、実装形態はベンダによって差異があるため、本研究で提案するマルチベンダに対応した自動設定機能実現のためベンダ毎の実装形態の差異を調査する必要がある。
 上記を踏まえ、Interop Tokyo 2014においてCisco Systems社のASRシリーズを対象としてnetconfによるVLAN構築プログラムを実装し、実運用に使用した。また、WIDEプロジェクト藤沢NOCにて、Juniper社のMXシリーズを対象として同様のVLAN構築プログラムを実装した。サーベイ及び実装の一部を行った結果、Cisco Systems社とJuniper社の間でnetconfの実装に多くの差異があることが判明した。
 上記の予備調査を踏まえ、本研究では2013年よりGINEWプロジェクト[6]においてVPLSを用いた論理パス自動構築を目的として開発されているPathopsを基として、netconfを用いた論理ネットワーク構築ソフトウェアを実装した。実装の概要を図4に示す。本実装では、PathopsからVPLSに依存する部分を排除し、VLAN及びVRFのみで論理ネットワークを構築する。VPLSを使用しない理由は、サポートする装置が限られているためである。本実装は、ネットワーク上の各ノードに対し、netconfプロトコルを用いてVLAN及びVRFの自動設定を行い、論理ネットワークを構築する。また、CLIベースのコマンドリストをリビジョン管理することで論理ネットワーク環境をバックアップすることができる。以下に、リビジョン管理される設定例を示す。


    <path>
        <name>A-path1</name>
        <status>Up</status>
        <src>172.16.0.1</src>
        <dst>172.16.0.2</dst>
        <vrf>A</vrf>
        <interface>
            <name>xe-1/0/0.200</name>
            <vlan>
                <id>200</id>
            </vlan>
        </interface>
    </path>
    <path>
        <name>B-path1</name>
        <status>Up</status>
        <src>172.16.0.1</src>
        <dst>172.16.0.2</dst>
        <vrf>B</vrf>
        <interface>
            <name>xe-1/0/0.201</name>
            <vlan>
                <id>201</id>
            </vlan>
        </interface>
    </path>

本実装によりリビジョン管理される設定例
図4
図4: 実装の概要
 なお、本実装ではJuniper社のMXシリーズを対象として動作を確認しているが、他のベンダ製の装置はサポートしていない。これは、前述の調査によりベンダ間のnetconf実装に差があることが判明したためである。この点については、今後ベンダ間のnetconf実装の差異を吸収するためのAPIの実装を進める。

6. 動作検証

 本実装の動作検証を行うため、WIDEプロジェクト藤沢NOC内に簡易的なネットワークを構築し、本研究で実装した論理ネットワーク構築ソフトウェアを用いた動的な論理ネットワークの構築を行った。構築したトポロジを図5に示す。

図5
図5: 構築したトポロジ
 動作検証は、Juniper社のMX80を2台、Huawei社のS6700を2台の合計4台で行った。本研究の実装は、このうちJuniper社のMX80に対して自動的に設定を投入し、S6700によってコピーされたトラフィックを2つの論理ネットワークにおいて同時に転送可能であることを確認した。
 また、転送時に元の装置が持つ性能(64byte Ethernetフレームの転送において10Gbpsのスループット)に影響を与えないことを確認した。これにより、本研究で提案する論理ネットワークを用いた検証用ネットワークの自動構築はおおむね可能になったと言える。

参考文献

[1] Expect, http://linuxjm.sourceforge.jp/html/expect/man1/expect.1.html, 最終確認日 2015/2/19
[2] Richard Alimi, Ye Wang, and Y. Richard Yang. Shadow configuration as a network management primitive. Proceedings of the ACM SIGCOMM 2008 conference on Data communication, pages 111-122, 2008
[3] Interop Tokyo 2014, http://www.interop.jp/2014/, 最終確認日 2015/2/19
[4] WIDE Project Two WG, http://two.wide.ad.jp/, 最終確認日 2015/2/19
[5] R. Enns, M. Bjorklund, J. Schoenwaelder, A. Bierman, Network Configuration Protocol (NETCONF), IETF, RFC6241
[6] General Integrated Network Engineering Workbox(GINEW), http://wp.ginew.net/, 最終確認日 2015/2/19