清水理史の「イニシャルB」

エクセル+パワポでネットワーク構成情報を管理するCisco「Network Sketcher」を試してみた

Network Sketcherによって生成された構成図

 Network Sketcherは、Ciscoのオープンソースプロジェクトで開発が進められているネットワーク構成情報管理ツール(Pythonプログラム)だ。

 PowerPointによるラフからネットワークの物理構成や論理構成の情報を自動生成したり、実際の環境に合わせて情報を入力して最新情報を管理したりできるプラットフォームになっている。部門や担当者ごとにバラバラになりがちなネットワーク構成管理を統一し、効率的な管理を実現できるのが特徴だ。どのように情報を管理できるのか、実際に試してみた。

カオスになりがちなネットワーク構成情報を集約し、管理を効率化できる

 ネットワークの構成情報を正確に管理し続けることは、なかなか難しい。

 台数が限られている自宅の環境でも、接続先が分からないケーブルが何本もあったり、使っていないIPアドレスを探すのに苦労したりするが、拠点が複数あったり、ネットワークが論理的に分割されている組織のネットワークともなれば、管理しなければならない情報は膨大になる。

 インフラの管理担当者が複数人に分かれている場合は、よりやっかいだ。担当者ごとに、管理する情報がバラバラで、利用するツールや頻度なども異なると、もはやカオスと言っていい状況になることも珍しくない。場合によっては、新しい機器を設置するたびに、現場で1本ずつケーブルを辿り、スイッチの設定を確認しながら、正しい情報を把握しなければならない場合もある。

 今回取り上げる「Network Sketcher」は、こうしたネットワーク構成情報管理の課題を改善する目的で作成されたツールだ。普段の業務に使っているPowerPointやExcelと組み合わせて、ネットワーク構成情報を管理可能にするプラットフォームとなっている。

Ciscoのオープンソースプロジェクトとして開発されている「Network Sketcher」

 詳細は、GitHubで公開されている以下のドキュメント(日本語あり)を参照して欲しいが、コンセプトとしては「情報の集約」と「作業の効率化」にある。マスタデータに情報を集約することで担当者別、役割別、部署別の管理体制でも情報を統一でき、PowerPointのラフから初期データを自動生成するなど半自動化を実現しているのが特徴だ。

▼Network Sketcherのドキュメント
cisco-open/network-sketcher(GitHub)

ドキュメントより、Network Sketcherのコンセプト

レイヤーごとの管理表・構成図を集約

 Network Sketcherで管理できる情報は、L1、L2、L3の各レイヤーにおける構成情報の管理表と構成図となる。

 L1は、ネットワークの物理的な構成で、ルーターやスイッチなどの機器、そしてそれぞれの機器がどの機器のどのポートに接続されているのかを管理できる。

 L2は、論理的な構成で、VLANの構成などを管理する。どのようなVLANがあり、スイッチのどのインターフェースに対して割り当てられているのかを管理できる。

 L3は、IPアドレスの管理だ。ルーターやスイッチに割り当てられたIPアドレスをポートごとに管理できる。

L1/L2/L3の管理表(Excel)
レイヤごとに出力できる構成図(PowerPoint)

 これらの情報が、管理表(Excel)および構成図(PowerPoint)で管理され、実際に現場でネットワーク構成を変更した際に、管理表を更新して構成図を作り直したり、構成図を修正して管理表を更新したりできる(いずれも、更新内容を一旦マスタデータに集約し、管理表や構成図を再生成できる)。

 管理する情報はデバイス、ポート、IPアドレスなどの汎用的な情報なので、もちろん、Cisco製のネットワーク機器を使っていない環境でも活用可能だ。

 なお、実際に利用する場合は、GitHubにある前述のドキュメントを参照して、一通り目を通しておく必要がある。管理表で編集していい部分、情報を入力する際の命名規則、構成図で情報を変更する際の記述方法など、定められているルールを守らないと正しく情報が反映されないので、注意が必要だ。

記入方法や命名規則があるので、ドキュメントを一読してから利用することを推奨する

シンプルなネットワークで実際の動作を検証してみる

 それでは、実際の操作の流れを見ていこう。今回は、下図のような3つのVLANで構成されたシンプルなネットワークを例に、情報の更新の流れを見ていく。

事前にパケットトレーサーで作成したシンプルなネットワーク。この図のポート名などに合わせて構成情報を更新していく

 いきなり複雑な構成を試すと、書式に迷う上、記入する情報が増えてミスが発生しやすくなるので、まずはシンプルな構成で流れを把握することをお勧めする。全体の流れを把握後、ガイドを参照しながら拠点が分かれている場合やVPNを使う場合などを試してみるといいだろう。

STEP 1:環境を整える

 まずは、動作環境を整える。Network SketcherはPythonのプログラムなので、利用するPCにPythonをインストールしておく。Windows 11なら、Microsoft StoreからPythonを検索してインストールしておけばいい。今回は、Python 3.10を利用した。

Pythonをインストールしておく

 また、Network Sketcherのプログラムをダウンロードするために、Gitを以下のサイトからダウンロードし、インストールしておく。

▼Gitのダウンロード
Git for Windows

 最後に、Network Sketcherのリポジトリを複製する。以下のようにPower Shellの画面から次のように実行すれば、必要なプログラムがローカルに複製される。

git clone https://github.com/cisco-open/network-sketcher.git

STEP 2:PowerPointでネットワーク構成図のラフを描く

 まずは、管理したいネットワーク構成図のラフを描く。

 PowerPointを利用して、拠点(エリア)を表す大きな枠を作成。その中に、中心となるL3スイッチ1台、営業部と経理部のネットワーク、サーバー室用に計3台のL2スイッチを表す四角形の図形を配置。それぞれの図形に名前を付けたら、線でつないでおけばいい。

 ラフなので、ざっくりでかまわない。例えば、つなぐ線が多少ずれていても、近くにある図形を接続先として自動的に判断してくれる。

PowerPointでラフを作成する

STEP 3:ラフからExcelのデバイスファイルを生成する

 ラフが完成したら、Network Sketcherを起動して、ラフからマスターファイルと、情報更新用のデバイスファイルを生成する。

 以下のように、複製したNetwork Sketcherのディレクトリ(フォルダー)に移動し、次のコマンドで起動する。

python ./Network-Sketcher.p

 Network Sketcherが起動したら、作成したPowerPointのラフファイルをドラッグし、「Create Starter Set」のボタンからマスターファイルとデバイスファイルを生成する。

Network Sketcherを起動してラフを読み込む
マスターファイルとデバイスファイルを生成する
ラフと同じディレクトリにファイルが生成される

STEP 4:デバイスファイルの情報を修正する

 デバイスファイルが生成されたら(ラフと同じディレクトリに作成される)、Excelで開いて、L1の構成にあたる情報を修正する。

 自動生成されたファイルでは、自動的に接続先のポートが判断されているので、ポート名や速度などを修正する。なお、デバイスファイルでは、修正していい部分は背景が白い部分だけとなる。青い部分は自動的に値が入力されるので変更しないように注意しよう。

自動的に生成されたファイル
実際の接続先に合わせてポート名などを変更する

 修正が完了したら、情報をマスターファイルと同期する。Network Sketcherにデバイスファイルをドラッグすると、同期先のマスターファイルが尋ねられるので、マスターファイルをドラッグすれば更新される。

ファイルをマスターファイルに同期する。この作業が重要

STEP 5:ポート名付きの構成図を出力する

 物理的な接続情報を登録できたので、その結果を確認してみる。「Create the L1 Diagram file」の」「All Areas with IF Tag」をクリックすると、接続先のインターフェース名付きで物理的な接続状況を示す図が生成される。構成図はPowerPointで開けば確認可能だ。

変更したポート名で生成したL1構成図

STEP 6:デバイスファイルに論理的な構成を記入する

 続いて、論理的な構成を記入する。デバイスファイルを開いて、「L2 Table」タブを表示後、各デバイスに新しい行を挿入し、「Virtual Port Name」に作成するVLANを記入する。その後、「Connected L2 Segment Name」に割り当てるVLANを設定すればいい。

VLANの構成を記入する

 スイッチの設定に慣れている人であれば、以下のようなスイッチの設定コマンドの流れを表に記入していくと考えると分かりやすい。

実際の設定に合わせて情報を表に入力する(パケットトレーサーでのスイッチ設定)

 このため、実際にNetwork Sketcherを利用した管理フローを想定する場合、スイッチやルーターに設定した情報(コマンドでもいい)を、このデバイスファイルに転記するという流れにすると、スムーズになると思われる。

 情報を更新したら、先ほどと同様にNetwork Sketcherにデバイスファイルをドラッグし、マスターファイルを指定して情報を同期する。

 Network Sketcherを利用する場合、この同期の作業がとても重要だ。これにより、担当者や管理部門が分かれていても、現場での変更情報が必ずマスターに集約されることになる。

STEP 7:論理的な構成図を出力する

 VLAN構成を反映したら、L2構成図を出力する。「Create the L2 Diagram file」の「Per Area」をクリックすると、エリア全体の論理的なネットワーク構成図が出力される。これにより、どのポートがどのVLANに接続されているのかが判断可能になる。

L2構成図

STEP 8:デバイスファイルにIPアドレスを記入する

 続いてL3の構成を入力する。デバイスファイルを開き、「L3 Table」タブの「IP Address/Subnet mask」欄に、それぞれに設定されたIPアドレスを入力する。更新したら、同様にマスターファイルに同期しておく。

IPアドレスの構成を記入する

STEP 9:L3構成図を出力する

 最後に、「Create the L3 Diagram file」の「Per Area」をクリックすると、それぞれのポートに割り当てられたIPアドレスや、範囲の情報と共にネットワーク図が出力される。

L3構成図

社内で手順を決めて運用すれば効果的

 以上、簡単な例だが、Network Sketcherの使い方を紹介した。まとめると、今回のケースでは以下のような流れが基本となる。

  1. 現場での機器設定
  2. デバイスファイルに記入
  3. Network Sketcherのマスターファイルを更新
  4. 最終的な構成図を出力

 記入方法のルールと、こうした作業フローを明確にしておけば、担当者や担当部署が分散しているケースでも、ネットワーク構成情報を統一した環境で管理できるだろう。

 ただ、記入方法のルールを守る必要があるうえ、機器が増えて構成が複雑になるほど記入する情報も増えるので、実際の管理は、今回のケースほど簡単ではない。社内で勉強会を開いて知識の共有を図るなどの工夫が必要だろう。

 とはいえ、現状、ネットワーク管理が破綻しかけているのであれば、利用を検討する価値は高い。手動での管理に限界を感じているケースでは、救世主となりそうだ。

清水 理史

製品レビューなど幅広く執筆しているが、実際に大手企業でネットワーク管理者をしていたこともあり、Windowsのネットワーク全般が得意ジャンル。最新刊「できるWindows 11」ほか多数の著書がある。