ネットワークを管理するには、ネットワーク機器や回線の状態を常に把握し、状況に応じて適切に設定する必要がある。
そのために必要な作業をすべて手作業で行うのは大変だ(図1)。よく行うのが、入力する順番にコマンドを並べた手順書を作り、毎回その手順通りにコマンドを打ち込むやり方だ。これだと、コマンドの数が増えるに従って多くの手間や時間がかかるようになる。
それに加え、手作業だとミスも発生しやすくなる。設定に誤りがあっても、すぐにネットワークの挙動がおかしくなるとは限らない。後になって不具合が発生することも多い。こうした場合は、不具合の原因を調べるだけでも大変だ。
こうした作業をプログラムとして記述すれば、そのプログラムを実行するだけで作業が完了する。手間や時間が節約できるのに加え、手作業に起因するミスも起こらなくなる。
Pythonで作業を自動化
こうしたプログラミングによるネットワーク管理の自動化に適しているのが、「Python」というプログラミング言語である。
Pythonの最大の特徴は、利用できるライブラリーが豊富なことだ(図2)。特に人工知能(AI▼)関連のライブラリーが充実していることで有名だが、ネットワーク関連のライブラリーも多い。パケットを生成・送信したり取得したりできる「Scapy」、スクレーピング▼を行う「Beautiful Soup」などのライブラリーがある。
Pythonにはネットワーク管理のためのライブラリーも用意されている。この特集では、そうしたライブラリーを使ったネットワーク管理の方法を見ていく。
Part1では、ping▼を使って複数の機器の死活監視をする方法を説明する(図3)。Part2からPart4では、LANスイッチにネットワーク経由でログインして操作する方法を紹介していく。機器の情報の取得や設定の変更、ログの出力などを自動化できるようになる。