1. HOME
  2. ブログ
  3. IT技術
  4. 【Python】スイッチの設定情報からポート収容表を自動作成してみた!
【Python】スイッチの設定情報からポート収容表を自動作成してみた!

【Python】スイッチの設定情報からポート収容表を自動作成してみた!

スイッチの設定情報から自動でポート収容表を作る

インフラエンジニアがネットワーク構築する際の参考資料に、各機器のポート収容表があります。

しかし、コンフィグが変わるたびに、いちいち主導で更新するのは大変ですよね…

そこで、今回は、スイッチの設定情報からポート収容表を自動作成してみようと思います!

実行環境

筆者の実行環境は、以下の通りです。

  1. OS:Mac OS X 10.15.6
  2. Cisco シミュレータ:Packet Tracer 7.3
  3. Python バージョン:3.8.6

Packet Tracer とは?

Packet Tracer は、Cisco の公式ネットワークシミュレータです。

実機がなくても、PC 内の作業だけで手軽にネットワークを構築することができます。

Window や Mac などほぼ全てのユーザーに対応しており、無料で使えます。

ただ、Cisco Network Academy のアカウントが必須だったりと、インストールまでの手順が少し多いため、以下を参考にしてください。

【Cisco シミュレータ Packet Tracer のインストール】
https://qiita.com/suzuyui/items/76764d7fc4b4183a7d45

既存ネットワーク

既存ネットワークとして、以下のようなネットワークを構成します。

PC1 と PC3 が接続されたポートを「VLAN10」、PC2 が接続されたポートを「VLAN20」に設定し、スイッチの0/11~0/24ポートをシャットダウンにしています。

既存ネットワーク

各 PC の IP 設定

PC1192.168.0.1/24
PC2192.168.0.2/24
PC3192.168.0.3/24

Switch1 の設定コンフィグ

以下、変更部分のみ示します。

疎通確認

ここまで済んだら、既存ネットワークがきちんと成立しているか、確認しましょう。

ポート収容表作成

それでは、いよいよ収容表を作成していきます!

スイッチの設定情報を取得

今回は、「ポート情報」と「コンフィグ情報」の show 結果のみ取得します。

実際の現場では TeraTerm で接続するため、自動でログが取れます。

log にスイッチの設定を保存

作業フォルダ配下に log フォルダを作成し、その中にスイッチの設定情報をコピペしたら、テキストファイルで保存します。

ポート収容表を作成

上記で取得したスイッチの設定情報から、以下の4つを取得し、CSV 形式で出力します。

  1. ホスト名
  2. ポート
  3. VLAN
  4. ステータス

pandas をインストール

今回は、データ解析に優れた pandas ライブラリを使います。

収容表を作成

以下が、ソースコード「create_port_table.py」です。

実行結果

それでは、実行してみましょう!

簡易的なポート収容表が作成できました!

さいごに

以上、スイッチの設定情報からポート収容表を自動作成してみました。

今回は、python でファイル操作・テキスト処理をしましたが、正直「Bash」や「Perl」「PowerShell」の方が簡潔に書けると思います。

しかし、python をうまく活用すれば、このように作業を簡略化できます。

ぜひ、一度試してみてくださいね!

こちらの記事もオススメ!


書いた人はこんな人

広告メディア事業部
広告メディア事業部
「好きを仕事にするエンジニア集団」の(株)ライトコードです!

ライトコードは、福岡、東京、大阪の3拠点で事業展開するIT企業です。
現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。
いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。

システム開発依頼・お見積もり大歓迎!

また、現在「WEBエンジニア」「モバイルエンジニア」「営業」「WEBデザイナー」「WEBディレクター」を積極採用中です!
インターンや新卒採用も行っております。

以下よりご応募をお待ちしております!
https://rightcode.co.jp/recruit

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア