さらばExcel:プロフェッショナルなIPインフラ管理のためのphpIPAMインストールガイド

Network tutorial - IT technology blog
Network tutorial - IT technology blog

Excelファイルがデータの「ブラックホール」になるとき

こんなシナリオに心当たりはありませんか?深夜2時、会社のERPシステムが突然ダウンしました。30分かけて調査した結果、新しく作成された仮想マシンがゲートウェイのIPアドレスを奪っていたことが判明します。原因は何でしょうか?チームの誰かが IP_Management_Final_v2.xlsx の更新を忘れていたのです。このような手動管理によるミスは、不必要なダウンタイムを引き起こし、トラブルシューティングに何時間もの貴重な時間を費やすことになります。

もしあなたが50以上のサブネット、あるいは数百台のデバイスを管理しているなら、スプレッドシートでの管理は大きなリスクです。そこで phpIPAM の出番です。これは非常に強力なオープンソースのIPアドレス管理ツールです。単にIPをリスト化するだけでなく、VLANVRFの管理、さらにはネットワークの自動スキャン機能も備えています。すべてが、無機質な行と列ের代わりに、直感的なWebインターフェースで可視化されます。

システムにデータを投入する前に、私はよく toolcraft.app/ja/tools/developer/ip-subnet-calculator を使ってCIDR範囲を素早く計算します。このツールを使うことで、ホスト数やブロードキャスト範囲を正確に特定でき、初期設計の段階での設定ミスを防ぐことができます。

インストール環境の準備

約5,000個のIPを扱う規模のネットワークを安定して運用するには、標準的なVPS(1 vCPU、2GB RAM)があれば十分です。長期サポートが受けられる Ubuntu 24.04 LTS の使用をお勧めします。システムは伝統的な LAMP スタック上で動作します。

ステップ1:コンポーネントのインストール

まず、システムを更新し、Apache、MariaDB、およびPHPモジュールをインストールします。注意:phpIPAMはIPv6の計算を処理するために php-gmp が必須です。

sudo apt update && sudo apt upgrade -y
sudo apt install apache2 mariadb-server php php-curl php-gd php-intl php-pear php-imap php-mysql php-mbstring php-xml php-gmp php-json php-xmlrpc php-zip libapache2-mod-php git -y

ステップ2:データベースの設定

データベースを無防備な状態にしてはいけません。MariaDBをセキュア化し、アプリケーション専用のユーザーを作成しましょう。

sudo mysql_secure_installation

# MySQLにログイン
sudo mysql -u root -p

# データベースの作成と権限の付与
CREATE DATABASE phpipam;
GRANT ALL PRIVILEGES ON phpipam.* TO 'phpipam_user'@'localhost' IDENTIFIED BY 'SaikyouNoPassword@123';
FLUSH PRIVILEGES;
EXIT;

ステップ3:phpIPAMのダウンロードと設定

Gitを使用してソースコードをダウンロードすると、将来のバージョンアップが非常に楽になります。git pull を実行するだけで完了です。

cd /var/www/html
sudo git clone https://github.com/phpipam/phpipam.git .
sudo chown -R www-data:www-data /var/www/html

次に、テンプレートから設定ファイルを作成します。

cp config.dist.php config.php
sudo nano config.php

データベース宣言の行を探し、ステップ2で作成した情報を入力します。デフォルトのポートが 3306 であることを確認してください。

Webブラウザからのセットアップ完了

それでは、ブラウザからサーバーのIPアドレスにアクセスしてください。インストール画面が表示されます。

1. データベースの自動初期化

“New phpipam installation” を選択し、次に “Automatic database installation” を選択します。SQLファイルを手動でインポートすることなく、システムが必要なデータテーブルを自動的に作成します。

2. パスの最適化(Pretty Links)

複雑なクエリ文字列ではなく、/subnets/1/ のようなURLを機能させるには、Apacheの Mod_Rewrite を有効にする必要があります。

sudo a2enmod rewrite
sudo nano /etc/apache2/sites-available/000-default.conf

<Directory /var/www/html> ブロック内に AllowOverride All の設定を挿入し、次のコマンドでApacheを再起動します:sudo systemctl restart apache2

実際の運用:自動化とモニタリング

ログイン後、最初に行うべきことは Sections (例:コアネットワーク、ゲストWi-Fi)の分割です。これにより、リソースをより体系的に分類できます。

fpingによるネットワークの自動スキャン

これは、IPを一つずつ手入力する作業から解放してくれる機能です。システムがネットワーク範囲を自動的にスキャンし、どのIPがオンラインかを報告します。まずは fping をインストールしましょう。

sudo apt install fping -y

15分ごとにステータスを自動更新するには、crontab (sudo crontab -e) に以下の行を追加します:

*/15 * * * * /usr/bin/php /var/www/html/functions/scripts/pingCheck.php
*/15 * * * * /usr/bin/php /var/www/html/functions/scripts/discoveryCheck.php

運用の現場からのアドバイス

私が1,000件以上のレコードをExcelからphpIPAMにインポートした際、重複エラーが真っ赤に表示されました。その時、古いExcelファイルがいかに正確さを欠いていたかを痛感しました。Email Notification(メール通知)を有効にすることも忘れないでください。未知のデバイスがネットワークに接続されたり、重要なサーバーがオフラインになったりした際に、即座にアラートを受け取ることができます。

導入には半日ほどかかるかもしれませんが、それによって得られる価値は絶対的な安心感です。いつでも、どのデバイスがどのIPを保持しているかを正確に把握できるようになります。

Share: