全1727文字
PR

 ネットワークを管理するには、ネットワーク機器や回線の状態を常に把握し、状況に応じて適切に設定する必要がある。

 そのために必要な作業をすべて手作業で行うのは大変だ(図1)。よく行うのが、入力する順番にコマンドを並べた手順書を作り、毎回その手順通りにコマンドを打ち込むやり方だ。これだと、コマンドの数が増えるに従って多くの手間や時間がかかるようになる。

図1●プログラミングで面倒な手作業をなくす
図1●プログラミングで面倒な手作業をなくす
ネットワークをすべて手作業で管理しようとすると、煩雑な操作が多くなり、ミスも発生しやすくなる。そうした作業をプログラムで自動化すれば、手間がかからなくなるうえに、ミスも起こらなくなる。
[画像のクリックで拡大表示]

 それに加え、手作業だとミスも発生しやすくなる。設定に誤りがあっても、すぐにネットワークの挙動がおかしくなるとは限らない。後になって不具合が発生することも多い。こうした場合は、不具合の原因を調べるだけでも大変だ。

 こうした作業をプログラムとして記述すれば、そのプログラムを実行するだけで作業が完了する。手間や時間が節約できるのに加え、手作業に起因するミスも起こらなくなる。

Pythonで作業を自動化

 こうしたプログラミングによるネットワーク管理の自動化に適しているのが、「Python」というプログラミング言語である。

 Pythonの最大の特徴は、利用できるライブラリーが豊富なことだ(図2)。特に人工知能(AI)関連のライブラリーが充実していることで有名だが、ネットワーク関連のライブラリーも多い。パケットを生成・送信したり取得したりできる「Scapy」、スクレーピングを行う「Beautiful Soup」などのライブラリーがある。

図2●豊富なライブラリーを誇るPython
図2●豊富なライブラリーを誇るPython
Pythonは人工知能(AI)関連のライブラリーが充実しているのが特徴だが、それ以外の分野でも豊富なライブラリーを持つ。ネットワーク管理の分野でも便利なライブラリーが用意されている。
[画像のクリックで拡大表示]

 Pythonにはネットワーク管理のためのライブラリーも用意されている。この特集では、そうしたライブラリーを使ったネットワーク管理の方法を見ていく。

 Part1では、pingを使って複数の機器の死活監視をする方法を説明する(図3)。Part2からPart4では、LANスイッチにネットワーク経由でログインして操作する方法を紹介していく。機器の情報の取得や設定の変更、ログの出力などを自動化できるようになる。

図3●この特集で学べることとその応用例
図3●この特集で学べることとその応用例
この特集では、ネットワーク機器の管理を自動化する方法を紹介する。その過程で学ぶことは様々な目的に応用できる。
[画像のクリックで拡大表示]