はじめに
システム開発は大きくアプリケーションとインフラに分けられます。そのインフラの中でもサーバサイド、ミドルウェアについては自動化や構成管理ツールによって変革が進んでいるのに対し、ネットワークの世界は旧世紀からあまり変わっていません。そこで本記事では、インフラの中でも特にネットワークに注目して説明します。
システム開発におけるネットワーク機器の課題
ネットワーク機器を管理する方法として主流なのは、パラメータシートを元に作業手順を作成し、作業者が一台ずつ設定変更する方法です。
このような状況になっている原因はいくつかありますが、ネットワーク機器ベンダごとに設定方法が大きく異なることが大きいと思います。
その結果ネットワーク機器の管理は手動で行うことが主体となり、次のように通信エラー、システム障害につながってきます。
- 実機と管理簿(パラメータシート)がずれる
- 設定漏れが出る(例)20台中、1台だけ必要な設定が漏れている。
- 設定の一貫性がとれていない(例)スイッチAにはVLAN追加したが、対向のスイッチBにはVLAN追加し忘れた。
課題解決の方法
この課題を克服する方法をある案件で調査したので、その例をいくつか簡単に紹介します。
OpenConfig
- OpenConfigは利用者主導で特定ベンダに特化しないデータモデルとAPIを定義してネットワーク機器を管理することを目指すものです。
- XMLやJSONでベンダ共通の機器コンフィグを定義し、APIで流し込みます。例えばVLANを追加するときに、同じ構造のデータ(ファイル)を別ベンダの機器に対して投入することができるようになります。
- APIを受けるためにネットワーク機器側のOpenConfig対応が必要です。
Ansible
- Ansibleはご存じの方も多いと思います。サーバ自動化でよく使われるツールです。
- Ansibleにはネットワークモジュールも存在します。
- 実装の仕組みとしては、Ansible(Python)が設定定義ファイルをパースした後、ネットワーク機器にSSH接続しベンダ独自コマンドを発行しています。
- 定義ファイルはベンダごとに異なるフォーマットですが、機器側はSSH接続が許可されていればよく、特殊な設定が不要です。
ホワイトボックススイッチ
- ホワイトボックススイッチは機能、外観はネットワークスイッチですが、OSがLinuxベースであり、LinuxシェルにSSH等で直接ログインして管理します。
- ポートの設定やルーティングの設定もLinuxのNIC設定、ルーティング設定と同様にテキストファイルで行います。
- システムのサーバがAnsibleやPuppetで自動化されていればシームレスにホワイトボックススイッチも管理下に置くことができます。
まとめ
OpenConfigは構想がとても良いのですが、実装が追いついていないのが実情です。
- ベンダでネットワーク機器(APIを受ける側)を実装する必要があり対応機種が限られること、OpenConfigが発展途上でありデータモデルのバージョンにより差異があることから、導入の難易度は高いです。
ホワイトボックスはLinuxが分かるネットワーク管理者には使いやすいです。
- 逆に言うとLinuxの基本操作を知っている必要があります。
- 知名度がまだ低く、従来のネットワーク機器とは操作感が違うので、ハードルが高いかもしれないですが、サーバと管理を統合できるメリットは大きいです。
先の紹介事例ではExcelで構成を管理し、テキストに変換してAnsibleでネットワーク機器自動化することで管理を簡単にしました。
- 頻繁に設定を変えても設定漏れが発生せずストレスフリーです。
- Excelを元データにすることで、対向スイッチの設定に数式を使うことができ、論理矛盾が激減します。
すでにサーバ自動化を実施しているプロジェクトで、ネットワーク機器変更が多いならネットワークの見直しもぜひ一緒にやってみてはいかがでしょうか。