1. HOME
  2. ブログ
  3. IT技術
  4. シスコルータのコンフィグ作成をPythonで自動化してみた!
シスコルータのコンフィグ作成をPythonで自動化してみた!

シスコルータのコンフィグ作成をPythonで自動化してみた!

シスコルータのコンフィグ作成をPythonで自動化してみよう!

シスコルータのコンフィグ作成を、「仕事で任された!」という方も、中にはいるかもしれません。

ざっくり言ってしまえば、コンフィグ内容は、主にポートと VLAN の「追加・削除」となります。

過去のコンフィグを、コピぺして編集するのも良いと思います。

ですが、よく出てくる案件なので、できる限り自動化を目指したいですよね?

そこで今回は、ルーターの VLAN 追加のコンフィグ作成を、Python を使って自動化してみたいと思います!

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


実行環境

今回は、以下のような環境で、シスコルータのコンフィグ作成を自動化していきます。

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

では早速、はじめていきましょう!

既存ネットワークを構築する

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

PC0 は VLAN10 、PC1 は VLAN20 と分かれており、Router1 と Switch は、トランクリンクで接続されています。

既存ネットワークを構築する

PC0の設定

PC0 の設定は、次の通りです。

  1. IP : 192.168.0.1/24
  2. DG : 192.168.0.254

PC1の設定

PC1 の設定は、次のようにしています。

  1. IP : 192.168.1.1/24
  2. DG : 192.168.1.254

Switch1の設定(コンフィグ)

以下のコンフィグを、テキストファイルに貼り付けて、Switch1 に投入していきます。

Router1の設定(コンフィグ)

次に、以下のコンフィグもテキストファイルに貼り付けて、Router1に投入しておきましょう。

疎通確認

ここまでで、PC0 から PC1 に、ping が通るか確認してみましょう!

以下のような、コマンドを叩いて、確認してみてください。

通りましたね!

変更後ネットワーク

新たに、PC2 と PC3 の2台の PC が、Switch1 に接続されました。

PC2 と PC3 が接続する Switch1 のポートには、それぞれ「VLAN30」「VLAN40」が設定されています。

変更後ネットワーク

PC2の設定

PC2 の設定は、次の通りです。

  1. IP : 192.168.2.1/24
  2. DG : 192.168.2.254

PC3の設定

PC3 の設定は、以下のようになっています。

  1. IP : 192.168.3.1/24
  2. DG : 192.168.3.254

疎通確認

PC0 から、PC2 と PC3 に ping を打ってみます。

ですが現状では、期待通りに通信ができませんね…。

これは、ルータのトランクリンクに、VLAN の追加をしていないためです。

シスコルータのコンフィグを自動作成

ここでは、Router1 に「VLAN30」「VLAN40」を追加するコンフィグを、Python を使って作成してみます。

順に進めていきましょう!

template.txtにテンプレートを作成する

まず template.txt に、以下のようなテンプレートを作成します。

「$変数名」の部分が、パラメータと置き換えられ、コンフィグが作成されます。

param.json にパラメータを定義する

param.json とした json ファイルに、パラメータを定義しましょう。

先ほど作成した、template.txt の変数部分が、以下のパラメータに置き換えられます。

generate_route_config.py

generate_route_config.py に、以下のような処理を記述して、シスコルータのコンフィグを自動作成していきましょう。

まず、パラメータが定義された json ファイルを読み込む処理が記述されています。

その後は、テンプレートの変数部分を置換し、コンフィグを自動作成する処理です。

詳しくは、中のコードを追いながら、確認してみてくださいね!

実行後コンフィグパッチ

generate_route_config.py と同じ場所に、param.json と template.txt を配置し実行します。

すると、Router1.txt が作成されたかと思います。

コンフィグを投入して疎通確認

作成された Router1.txt を、Router1 に投入していきましょう。

すると、以下のように「VLAN30」「VLAN40」の設定が追加されるはずです。

疎通確認

最後に、以下のようにコマンドを叩いて、ping が通るか確認してみましょう。

PC0 から PC2 と PC3 に、ping が通ることが確認できましたね!

さいごに

今回は、VLAN 追加のコンフィグを、Python で作成しました。

ただ、実際の現場では、もっと設定項目が多いものです。

だからこそ、煩雑なコンフィグ作成を自動化することは、とても効率が上がるわけですね!

豊富なライブラリのある Python を使えば、あらゆる業務を自動化できます。

随所で工夫をして、ぜひ業務の生産性を高めていってくださいね!

記事を書いた人

\ 3度のメシより技術が好き /
(株)ライトコードは、WEB・アプリ・ゲーム開発に強い「好きを仕事にするエンジニア集団」です。
システム開発依頼・お見積もりはこちらまでお願いします。
また、WEB・スマホ系エンジニアを積極採用中です!
※現在、多数のお問合せを頂いており、返信に、多少お時間を頂く場合がございます。

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


書いた人はこんな人

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

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

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

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

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

関連記事

採用情報

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

バックエンドエンジニア

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

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

\ 世界を変える…! /

Androidエンジニア

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

iOSエンジニア