OSSのIPアドレス管理システムphpIPAMをインストール・構築してみた。
背景
ネットワークエンジニアとして働く中でIPアドレスの管理というのは必ず付いて回る。
現在担当しているのは全国規模の大企業グループの社内ネットワークで、クラスAプライベートで拠点PCからデータセンタまでをまかなっている。
拠点追加、サーバ増設の度にアドレスが必要になり、ルールとノウハウが混在するアドレス払い出しが実施される。
拠点はセグメントを払い出せばDHCPでやりくりしてくれるが、データセンタにおいてはすべてのアドレスをプラットフォーム担当で管理すべくサーバ一台一台に払い出している。
チーム内ではファイルサーバのアドレス管理表を直接更新するルールで運用しているが、開発ベンダの作業などによる凍結ミス、デグレが発生する。
また、当然ヒューマンエラーで謎のアドレスは後を絶たない。
実害があるケースとしては、アドレス重複によるサービスダウンは絶対に起こしてはいけない。
課題
- Excel管理からの脱却
- アドレス管理の汎用化
- マスタ及び履歴管理
- ヒューマンエラーの排除
何を使うかを検討する。
使用検討OSS
- phpIPAM
- BlueCatIPAM
- solarwindsIPAM
- DEVICE42
- PandoraFMS
- RackTables
項目ごとの比較検討をしたいが、取り急ぎOSSで評価の高そうなphpIPAMを試してみる。
環境構築
先人の知恵を借りてインストール・環境構築する。
自宅環境はこちら
正直なところ、この程度の環境なら管理表なしでも管理できる。
システム構築手順を抑えて、早急に職場で試してみたい。
シンプル構築
他との競合をなくすため、CentOS6.5を新規にたててそこに構築する。
Forbidden
You don't have permission to access /install on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2.2.15 (CentOS) Server at CentOS-11.com Port 80
Apacheのトップページは出ており、ファイル、フォルダの権限は適切なため、手順の中で変更したところを探ってみたところ、
Options None
だとダメで、
Options Indexes FollowSymLinks
にすると繋がった。
その後は特段問題なく使える。
目玉機能と考えているPingScanもなんなく動作!
このように、サブネットを登録すると全体にPingを打って応答のあるアドレスを登録する画面が出てくる。
一から登録しなくていいため、単純作業の繰り返しを減らせることが嬉しい。
インポート機能をうまく使えば、既存のアドレス管理表を取り込んで、その上で生存監視の定期Pingをかけるだけでよくなりそう。
実用環境構築
シンプルな構築はできたため、構成にひねりを加えてみる。
手順通りに進めたところ、ちょこちょこつまづくところがあった。
/var/www/html/配下にはいくつかのシステムを配置することになるため、phpIPAMのサブディレクトリを作成する。
RootPath
配置変更して早速アクセスしてみたが、うまくリンクが生成されずアクセス不可…
<A herf=
などという残念な画面。
上記の手順では
/var/www/html
に各フォルダを配置することとしているが、他のシステムも置いているためサブフォルダを設け
/var/www/html/phpipam
とした。
.tarを解凍してそのまま移動させるイメージ。
- 変え方
オフィシャルのinstallation guideにも書いてあるから、ちゃんと進めれば問題ない。also, if you extracted phpipam directory in any other directory than web server root folder, you need to set that as well (BASE directive) in config.php and .htaccess:
define('BASE', "/");
それぞれ設定変更したらなんなくDB設定へ。
DB設定のユーザ名パスワードはデフォルトならconfig.phpに記載の
$db['host'] = "localhost";
$db['user'] = "phpipam";
$db['pass'] = "phpipamadmin";
$db['name'] = "phpipam";
を使用する。
他の一般的な引っかかりポイントはSELinuxで何かがブロックされるものらしい。
- タイムゾーン設定
上記の手順にある通り設定すればエラーが出なくなる。
- PingScan
phpIPAMで有用な機能の一つと考えたのがPingScanである。
正直、一つ一つアドレスを手打ちするなど運用に耐えない。
サブネット情報を設定すれば、サブネット内のホストアドレスにpingして、応答があったアドレスをリストアップしてくれる。
定期的にポーリングして死活監視もできる。
さらにtelnet(ポート番号可変)でのポーリングも可能。
この目玉機能が動かない!
No host alive now.
telnetでのポーリングは問題なくできているため、それを踏まえて調査。
確認事項
情報収集して得られた確認点は以下のようなものだった。
- /bin/pingのパス・権限(permission)
SELinuxはちゃんと止めてある。
3.Add cron script
なんとなくパスが関連しそうなので編集してみる。
(一旦ここまで)
しばらく環境を触れないため、試験してアップデートする。