designetwork

ネットワークを軸としたIT技術メモ

IPアドレス管理システム検討(phpIPAMインストール・使用開始)

OSSIPアドレス管理システムphpIPAMをインストール・構築してみた。

 

背景

ネットワークエンジニアとして働く中でIPアドレスの管理というのは必ず付いて回る。

現在担当しているのは全国規模の大企業グループの社内ネットワークで、クラスAプライベートで拠点PCからデータセンタまでをまかなっている。
拠点追加、サーバ増設の度にアドレスが必要になり、ルールとノウハウが混在するアドレス払い出しが実施される。
拠点はセグメントを払い出せばDHCPでやりくりしてくれるが、データセンタにおいてはすべてのアドレスをプラットフォーム担当で管理すべくサーバ一台一台に払い出している。
 
チーム内ではファイルサーバのアドレス管理表を直接更新するルールで運用しているが、開発ベンダの作業などによる凍結ミス、デグレが発生する。
また、当然ヒューマンエラーで謎のアドレスは後を絶たない。
実害があるケースとしては、アドレス重複によるサービスダウンは絶対に起こしてはいけない。
 

課題

  • Excel管理からの脱却
  • アドレス管理の汎用化
  • マスタ及び履歴管理
  • ヒューマンエラーの排除
 
何を使うかを検討する。
 

使用検討OSS

  • phpIPAM
  • BlueCatIPAM

www.bluecatnetworks.com

  • solarwindsIPAM
  • DEVICE42

www.device42.com

  • PandoraFMS
  • RackTables
 
項目ごとの比較検討をしたいが、取り急ぎOSSで評価の高そうなphpIPAMを試してみる。
 

環境構築

先人の知恵を借りてインストール・環境構築する。
 
自宅環境はこちら
正直なところ、この程度の環境なら管理表なしでも管理できる。
システム構築手順を抑えて、早急に職場で試してみたい。
 

シンプル構築

他との競合をなくすため、CentOS6.5を新規にたててそこに構築する。
iptablesSELinuxを適切に設定したが403エラー(権限不足)で繋がらない…
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もなんなく動作!

f:id:daichi703n:20150920113533j:plain

 
このように、サブネットを登録すると全体にPingを打って応答のあるアドレスを登録する画面が出てくる。
一から登録しなくていいため、単純作業の繰り返しを減らせることが嬉しい。
インポート機能をうまく使えば、既存のアドレス管理表を取り込んで、その上で生存監視の定期Pingをかけるだけでよくなりそう。
 
今回の構築を通して、そもそものApacheとかPHPの知識を付けないと理論的な切り分けができないことを実感した…
 

実用環境構築

シンプルな構築はできたため、構成にひねりを加えてみる。
手順通りに進めたところ、ちょこちょこつまづくところがあった。

/var/www/html/配下にはいくつかのシステムを配置することになるため、phpIPAMのサブディレクトリを作成する。

 

RootPath

配置変更して早速アクセスしてみたが、うまくリンクが生成されずアクセス不可…
<A herf=
などという残念な画面。
上記の手順では
 /var/www/html 
に各フォルダを配置することとしているが、他のシステムも置いているためサブフォルダを設け 
/var/www/html/phpipam 
とした。
.tarを解凍してそのまま移動させるイメージ。
この場合一手間必要で、phpipam内のconfig.php及び.htaccessのBASE指定を変えなければならない。
  • 変え方
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', "/");
 
オフィシャルのinstallation guideにも書いてあるから、ちゃんと進めれば問題ない。
それぞれ設定変更したらなんなくDB設定へ。
DB設定のユーザ名パスワードはデフォルトならconfig.phpに記載の
$db['host'] = "localhost";
$db['user'] = "phpipam";
$db['pass'] = "phpipamadmin";
$db['name'] = "phpipam";
を使用する。
他の一般的な引っかかりポイントはSELinuxで何かがブロックされるものらしい。
 
php.iniのタイムゾーン設定をしていないとログイン画面でエラーが出る。
上記の手順にある通り設定すればエラーが出なくなる。
 
  • PingScan
phpIPAMで有用な機能の一つと考えたのがPingScanである。
正直、一つ一つアドレスを手打ちするなど運用に耐えない。
サブネット情報を設定すれば、サブネット内のホストアドレスにpingして、応答があったアドレスをリストアップしてくれる。
定期的にポーリングして死活監視もできる。
さらにtelnet(ポート番号可変)でのポーリングも可能。
 
この目玉機能が動かない!
 
No host alive now.
 
telnetでのポーリングは問題なくできているため、それを踏まえて調査。
 

確認事項

情報収集して得られた確認点は以下のようなものだった。
  • /bin/pingのパス・権限(permission)
 
SELinuxはちゃんと止めてある。
 

3.Add cron script

なんとなくパスが関連しそうなので編集してみる。
 
(一旦ここまで)
しばらく環境を触れないため、試験してアップデートする。