ネットワーク機器たちのコンフィグを管理する
CiscoとかJuniperなどのネットワーク機器のコンフィグってみなさんどうやって管理しとるのかしら...
ネットワーク機器が2,3台とか少なければ設定が吹き飛んだところでそんなに苦労はないんだけど,
「あれ...? ここの設定どうだったっけ...?」ってのはよくある話。
企業とか大学のレベルでは,20,30台とかそれより多くのネットワーク機器を利用しているので,尚更そんなことはありえる。
うちの学科もそこそこネットワーク機器多いので,いつかはそんなことも起こり得るでしょう。
昔はスイッチ1つにVLAN IDを割り当ててたので,全部のポートに同じVLAN IDを設定すればよかったんだけど,
今はポート単位でVLAN IDを変更しているところもあるので,後で苦労する可能性もあるなあと思い,色々調べてました。
全部の機器にssh
で入ってshow run
コマンドを叩いてconfigをコピーしてテキストとして保存しても良い。
しかし,大量にある機器にそれを手でやるのはしんどいし,ミスる可能性あるし,変更があったらまた手動でやるのもめんどくさい。
「どうにか自動化したいよね」ってところで見つけたのが
- Rancid Rancid - SHRUBERY network
- ConfigCollector ConfigCollector - Github
- DeviceExpert DeviceExpert公式
ほう。いろいろあるのね。
とりあえず1つずつ見ていく
Rancid
サーバーにインストールして利用するタイプのネットワーク機器コンフィグ世代管理ツール。世代管理システムには,CVSを採用してる。 無料で利用できる。
今時のナウなヤングたちは,gitとか利用してるんで,CVSは馴染みはないかもですね。僕もないです。(僕はGitとMercurialの両方を使ってます)
あとは,いろんなベンダー機器に対応しているってところでしょうか。
ConfigCollector
pip
で入れて使うタイプのネットワーク機器コンフィグ管理ツールです。無料で利用出来る。
公式では,Cisco/Juniperに対応している。世代管理システムはMercurialなりGitなり自分で選べます。
DeviceExpert
ネットワーク機器の数に合わせてライセンス料が発生する有料のコンフィグ管理ツールです。こっちもRancid同様にいろんなベンダー機器に対応しているようです。
今回は,いろんなベンダー機器に対応しているのと、無料で利用できる観点からRancidを採用しました。
ローカルにサーバー(CentOS7,Ubuntu14)を建ててRancidをインストールしました。
CentOS7
インストールには こちらのドキュメントを参考にさせていただきました。インストールには結構な手順を踏まなければならないので、ちょっと敷居が高いなって感じました。まあ、書いてある通りにやれば動くんだけど
Ubuntu14
インストールには こちらのドキュメントを参考にさせていただきました。CentOS7よりもやることは少ないので、初心者さんにも手が出しやすいのではないかと思います。
1ヶ月くらい利用してみました
僕のところではネットワーク機器を50台管理してます。
1ヶ月の間に変更したの機器は50台のうち2台のみでした。VLAN IDを変えたり、Ciscoの無線LANのアクセスポイントの設定をちょっと変えたりくらいです。
でも、変更したのを自動できちんと取ってきてくれるので、楽チンです。手動でやらなくていいってだけでだいぶハッピーです。
ちなみにWebから見る用途では考えてないので、ViewVCは入れてません。