本研究では、Internet Service Provider(ISP)のネットワークインフラストラクチャ運用において、新サービス導入時の障害発生を防ぐための論理ネットワークを用いた事前検証環境構築手法を提案・実装する。本研究の目的は、ISPの新サービス検証手法を確立し、設定ミスまたは検証不足による障害発生を防ぐことである。このような手法が必要とされる背景として、ISPにおいて発生する障害のうち、新サービスを導入する際の手動での設定変更中のミスや、事前検証では判明しない、ネットワーク全体の挙動に依存した障害の割合が高いことがある。新サービスを導入するためには、ISPの持つネットワークに多数の設定変更が必要になるが、一方でネットワークの設定変更は予期しない障害を引き起こす原因となる。ISPが提供する主要なサービスとして、インターネット網への接続性提供がある。ISPが、より高速なメディアや冗長性を高めた新たな接続形態でインターネット網への接続性提供サービスを行うためには、運用しているネットワークのレイヤ2及びレイヤ3機器の設定変更や接続形態の変更が必要になる。このとき、新たなサービス導入後のネットワーク全体の挙動を事前に検証する手法は確立されていない。
本研究では、ISPの新サービス導入に際し、障害を回避するための事前検証を難しくしている問題点として、以下の点に着目する。
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実現手法をそのまま適用できない理由として、以下が挙げられる。
本研究に関連した既存研究として、R.Alimiらにより提案されたShadow Configuration[2]がある。Shadow Configurationは、サービス用及び検証用に2つの設定を用意し、それら2つの設定をもとに論理ネットワークを構築する。その上で検証ネットワークに対してはパケットコピーを行い、ネットワークの設定を検証する手法である。Shadow Configurationの提案する手法は本研究と似ているが、マルチベンダネットワークを想定する点、設定の管理手法を考慮する点、任意の数の論理ネットワーク構築を可能にする点が本研究の新規性となる。
本研究で提案する論理ネットワークを用いた事前検証環境構築手法を実装するための予備調査として、ネットワーク技術に関するサーベイ及び実装の一部を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>
本実装の動作検証を行うため、WIDEプロジェクト藤沢NOC内に簡易的なネットワークを構築し、本研究で実装した論理ネットワーク構築ソフトウェアを用いた動的な論理ネットワークの構築を行った。構築したトポロジを図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