IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

Pythonでネットワーク自動化をしよう

CTC 教育サービス

 [IT研修]注目キーワード   Python  Power Platform  最新技術動向  生成AI  Docker  Kubernetes 

第39回 Pythonとネットワーク自動化基礎検定 模擬問題解説(1) (小澤昌樹) 2025年11月

みなさん、こんにちは。

かつてネットワークエンジニアの仕事は、SSHログインしてコマンドを叩き、目視で設定や状態を確認し、エビデンスをドキュメントに残すといった手作業の積み重ねが主流でした。ですが近年、「Pythonによるネットワーク自動化」がその作業を大きく変えつつあります。

本連載では、「Pythonとネットワーク自動化基礎検定」の合格を視野に入れ、これからネットワーク自動化を学ぶ方に向けて、Pythonを使った基本的な自動化スクリプトとその考え方を模擬問題形式で解説していきます。

各回では、検定の出題範囲に沿って以下のようなテーマを取り上げ、現場でも役立つ実践的な知識を身につけられる構成としています。

  • ネットワーク自動化の基礎概念
  • Pythonによる機器情報の取得・処理
  • NAPALMやNetmikoなどの代表的ライブラリの使い分け
  • CLI操作の自動化と構成管理
  • 状態確認・ログ取得・設定変更の自動化手法

実際の現場で役立つノウハウと、検定対策の両面から学べる内容を目指します。Pythonが初めての方でも取り組めるよう、丁寧な解説と実行可能なサンプルコードを交えて進めていきます。

今回は、よく使われるライブラリ「NAPALM」と「Netmiko」に関する模擬問題を2問紹介し、解説します。

【問題1】NAPALMで構成取得

次のPythonスクリプトの目的として最も適切なものはどれか?


from napalm import get_network_driver
driver = get_network_driver(’ios’)
device = driver(hostname=’192.0.2.1’, username=’admin’, password=’admin’)
device.open()
config = device.get_config()
device.close()
print(config[’running’])

選択肢:
A. CPU使用率を取得する
B. ルーティングテーブルを取得する
C. 実行中の設定(running-config)を取得する
D. 設定変更を適用する

正解:
C. 実行中の設定(running-config)を取得する

解説:
このスクリプトは、NAPALMでCisco IOSルータに接続し、設定情報を取得するものです。

  • get_network_driver(’ios’):IOSデバイス用ドライバの読み込み
  • device.get_config():設定情報(startup、runningなど)を辞書形式で取得
  • config[’running’]:その中の実行中設定(running-config)を出力

NAPALMはマルチベンダ対応の自動化フレームワークで、設定の取得・適用・検証が統一的に行えます。この問題は、「設定取得の基本形」として、運用現場でよく使われる処理を問う問題です。

【問題2】Netmikoでインターフェース情報取得

以下のNetmikoスクリプトの動作として最も適切なものはどれか?


from netmiko import ConnectHandler

device = { ’device_type’: ’cisco_ios’, ’host’: ’192.0.2.1’, ’username’: ’admin’, ’password’: ’admin’, }
conn = ConnectHandler(**device) output = conn.send_command("show ip interface brief") conn.disconnect()
print(output)

選択肢:
A. IPアドレスの設定を削除する
B. インターフェースの稼働状況を一覧で表示する
C. 起動設定(startup-config)を取得する
D. VLAN構成を変更する

正解:
B. インターフェースの稼働状況を一覧で表示する

解説:
このスクリプトでは、Netmikoを使ってCisco IOSデバイスにSSHで接続し、show ip interface brief コマンドを実行しています。

このコマンドでは、以下のような情報を簡潔に一覧表示できます。

  • 各インターフェースのIPアドレス
  • 状態(up/down)
  • プロトコル状態

NetmikoはCLIコマンドベースでの自動化に強みがあり、「細かい制御」や「特殊なコマンドの実行」に向いています。特に以下のような用途に便利です。

  • ショートコマンドでの状態取得
  • コマンド出力を整形・抽出
  • 複数デバイスへのSSHループ接続
まとめ

今回の2問は、ネットワーク自動化の「はじめの一歩」として押さえておきたい基本知識です。

  • NAPALM
    複数ベンダー対応の抽象化APIを通じて、設定の取得・差分の比較・構成の適用が可能。特に設定バックアップや構成のテンプレート化といった自動化らしい自動化に向いています。
  • Netmiko
    CLI操作をPythonからそのまま再現でき、細かな制御やログ収集、特定コマンドの自動化に最適。柔軟な状態確認やその場対応のツール化に重宝されます。

現場では、例えば「すべてのスイッチからインタフェース統計を一括で取得」「特定のACLルールが適用されているかを確認」といった定型作業が日々発生しています。こうした、いつもの操作をPythonスクリプトで再現できるようになることこそが、ネットワーク自動化の本質といえます。

次回も、現場で役立つスクリプトを交えた模擬問題を解説しながら、「読むだけで終わらず、手を動かして学べる」ネットワーク自動化の実践をお届けしていきます。

 

 [IT研修]注目キーワード   Python  Power Platform  最新技術動向  生成AI  Docker  Kubernetes