phpIPAM を試す

経緯

小規模だったり一般の家庭レベルであれば不要ですが、少し凝ったことをする(しかも日常的に変更を加えていなかったり)と、または規模がそこそこ大きくなるとIPアドレスの管理というのは割と大変です。

  • 少し凝ったことをする場合:
    • 日常的に変更が加わるわけではないならば、どの端末がどのIPアドレスを使用しているか分からなくなる
  • そこそこの規模より大きい場合:
    • いつの間にか機器が増えている
    • 該当のIPアドレスを使用している端末が廃棄される
    • 包括的な管理者がいない

小規模であれば Microsoft Excel やスプレッドシートでも管理できそうですが、そこそこの規模になってくるとシートが複数になって見通しが悪くなってきます。

そうでなくとも、 LAN のIPアドレス情報なので Excel がない (わざわざ Office 製品を買っていない) 環境で、クラウドにデータを保存するスプレッドシートもやや憚られる……という具合で絶妙に取り扱いが難しいところだったりします。

そこでこうした IPアドレス を管理するツールは何かないものか……と思っていたら、 IPAM (IP Address Management) というずばりそのもののカテゴリが存在していることを知りました。インフラ周りもだいぶ浸かっているのですが、恥ずかしながら名前を知りませんでした……。

これで正鵠を失わず検索ができる、というもの。試しに調べてみたところ、すぐに phpIPAM という PHP 製の IPAM ツールが見付かりました。

インストール

公式のインストールガイドに拠ると PHP7.2 以上であれば動作するようなので、適当な LAMP の箱にインストールしてみることにします。なお、1月下旬に検証は実施していたのですが記事にするのが非常に遅くなってしましました……。

今回は Ubuntu の箱をチョイス。

  • Ubuntu: 24.04.1 LTS
  • Apache: 2.4.58
  • PHP: 8.3.6
  • MySQL: 15.1

バージョンとしてはこのような感じです。

Apache

まずは仮想サイトを切ります。

# mkdir /var/www/animae-partus-2/
# cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/animae-partus-2.conf
# vi /etc/apache2/sites-available/animae-partus-2.conf
<VirtualHost *:80>

        # DocumentRoot /var/www/html
        ServerName apii.example.jp
        DocumentRoot /var/www/animae-partus-2

        # ErrorLog ${APACHE_LOG_DIR}/error.log
        # CustomLog ${APACHE_LOG_DIR}/access.log combined
        ErrorLog ${APACHE_LOG_DIR}/error-animae-partus-2.log
        CustomLog ${APACHE_LOG_DIR}/access-animae-partus-2.log combined

ディレクトリを切って仮想サイトの設定を作成。

# a2ensite animae-partus-2
# systemctl restart apache2

仮想サイトの設定を読み込ませて Apache 再起動。

# chown -R www-data:www-data /var/www/animae-partus-2/
# vi /etc/hosts

127.0.1.1       apii.examplejp

権限設定とホスト名参照 (DNSに未登録のホスト名なので自前で名前解決できるように hosts に追加) を設定。

MariaDB

phpMyAdmin で DB 作成
phpMyAdmin で DB 作成
phpMyAdmin で DB に権限のあるユーザを作成
phpMyAdmin で DB に権限のあるユーザを作成

phpMyAdmin から DB 作成、作成した DB に対してのみ全権限を付与したユーザを作成します。

phpIPAM インストール

DB の準備ができたので phpIPAM をインストールします。

# git clone --recursive https://github.com/phpipam/phpipam.git /var/www/animae-partus-2
cp -p /var/www/animae-partus-2/config.dist.php /var/www/animae-partus-2/config.php
vi /var/www/animae-partus-2/config.php

/**
 * database connection details
 ******************************/
$db['host'] = '127.0.0.1';
$db['user'] = 'DeusNovaMobile';
$db['pass'] = 'PASSWORD-ANIMAE-PARTUS';
$db['name'] = 'animaepartus2db';
$db['port'] = 3306;

config.dist.php から config.php を作り、必要なパラメータを調整します (パスワードは適当な文字列に置き換えています)。

phpIPAM インストールエラー画面 (PHP の GMP と Apache の mod_rewrite が足らない)
phpIPAM インストールエラー画面 (PHP の GMP と Apache の mod_rewrite が足らない)

これで先程切った仮想サイトの URL http://apii.examplejp にアクセスしてみましたが、エラーページが表示されました……。

PHP の拡張機能 GMP と Apache の mod_rewrite が足らないようです。

mod_rewrite 有効化

# cat /etc/apache2/mods-available/rewrite.load
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
# sudo a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
  systemctl restart apache2
# systemctl restart apache2
#

mod_rewrite はあったはず……と思って確認したところモジュール自体は存在していたので有効化しました。

GMP インストール

GMP はなさそうなのでインストールします。

# apt install php8.3-gmp
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  python3-netifaces
これを削除するには 'apt autoremove' を利用してください。
以下のパッケージが新たにインストールされます:
  php8.3-gmp
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 10 個。
23.8 kB のアーカイブを取得する必要があります。
この操作後に追加で 106 kB のディスク容量が消費されます。
取得:1 http://jp.archive.ubuntu.com/ubuntu noble-updates/main amd64 php8.3-gmp amd64 8.3.6-0ubuntu0.24.04.3 [23.8 kB]
23.8 kB を 1秒 で取得しました (22.8 kB/s)
以前に未選択のパッケージ php8.3-gmp を選択しています。
(データベースを読み込んでいます ... 現在 237777 個のファイルとディレクトリがインストールされています。)
.../php8.3-gmp_8.3.6-0ubuntu0.24.04.3_amd64.deb を展開する準備をしています ...
php8.3-gmp (8.3.6-0ubuntu0.24.04.3) を展開しています...
php8.3-gmp (8.3.6-0ubuntu0.24.04.3) を設定しています ...

Creating config file /etc/php/8.3/mods-available/gmp.ini with new version
libapache2-mod-php8.3 (8.3.6-0ubuntu0.24.04.3) のトリガを処理しています ...
php8.3-cli (8.3.6-0ubuntu0.24.04.3) のトリガを処理しています ...

OK.

(不要) GMP を make install

この手順はおそらく不要ですが、 PHP の拡張機能ではなく GMP を普通に make install してしまいました。

# apt install g++ m4 zlib1g-dev make p7zip
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
g++ はすでに最新バージョン (4:13.2.0-7ubuntu1) です。
g++ は手動でインストールしたと設定されました。
m4 はすでに最新バージョン (1.4.19-4build1) です。
m4 は手動でインストールしたと設定されました。
make はすでに最新バージョン (4.3-4.1build2) です。
make は手動でインストールしたと設定されました。
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  python3-netifaces
これを削除するには 'apt autoremove' を利用してください。
以下の追加パッケージがインストールされます:
  7zip
提案パッケージ:
  7zip-standalone 7zip-rar
以下のパッケージが新たにインストールされます:
  7zip p7zip zlib1g-dev
アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 10 個。
2,743 kB のアーカイブを取得する必要があります。
この操作後に追加で 7,668 kB のディスク容量が消費されます。
続行しますか? [Y/n] y

## 略

zlib1g-dev:amd64 (1:1.3.dfsg-3.1ubuntu2.1) を設定しています ...
p7zip (16.02+transitional.1) を設定しています ...
man-db (2.12.0-4build2) のトリガを処理しています ...

#

必要パッケージのインストール。

# wget https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz
--yyyy-mm-dd hh:ii:ss--  https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz
gmplib.org (gmplib.org) をDNSに問いあわせています... 130.242.124.102
gmplib.org (gmplib.org)|130.242.124.102|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 2094196 (2.0M) [application/octet-stream]
‘gmp-6.3.0.tar.xz’ に保存中

gmp-6.3.0.tar.xz    100%[===================>]   2.00M  1.02MB/s    in 2.0s

yyyy-mm-dd hh:ii:ss (1.02 MB/s) - ‘gmp-6.3.0.tar.xz’ へ保存完了 [2094196/2094196]

## 略

#

最新版は 6.3.0 でした。

# tar -xvf gmp-6.3.0.tar.xz

## 略

#
# ls
gmp-6.3.0  gmp-6.3.0.tar.xz  snap
# cd gmp-6.3.0/
gmp-6.3.0# ./configure --enable-cxx
checking build system type... core2-pc-linux-gnu
checking host system type... core2-pc-linux-gnu

## 略

config.status: linking mpn/generic/add_n_sub_n.c to mpn/add_n_sub_n.c
config.status: linking mpn/x86_64/core2/gmp-mparam.h to gmp-mparam.h
config.status: executing libtool commands
configure: summary of build options:

  Version:           GNU MP 6.3.0
  Host type:         core2-pc-linux-gnu
  ABI:               64
  Install prefix:    /usr/local
  Compiler:          gcc
  Static libraries:  yes
  Shared libraries:  yes

gmp-6.3.0#

configure して……

# make
gcc `test -f 'gen-fac.c' || echo './'`gen-fac.c -o gen-fac
./gen-fac 64 0 >fac_table.h || (rm -f fac_table.h; exit 1)

## 略

ibtool: link: (cd ".libs" && rm -f "libgmpxx.so.4" && ln -s "libgmpxx.so.4.7.0" "libgmpxx.so.4")
libtool: link: (cd ".libs" && rm -f "libgmpxx.so" && ln -s "libgmpxx.so.4.7.0" "libgmpxx.so")
libtool: link: ar cq .libs/libgmpxx.a  cxx/dummy.o cxx/isfuns.o cxx/ismpf.o cxx/ismpq.o cxx/ismpz.o cxx/ismpznw.o cxx/limits.o cxx/osdoprnti.o cxx/osfuns.o cxx/osmpf.o cxx/osmpq.o cxx/osmpz.o
libtool: link: ranlib .libs/libgmpxx.a
libtool: link: ( cd ".libs" && rm -f "libgmpxx.la" && ln -s "../libgmpxx.la" "libgmpxx.la" )
make[2]: ディレクトリ '/root/gmp-6.3.0' から出ます
make[1]: ディレクトリ '/root/gmp-6.3.0' から出ます

OK.

# make check
make  check-recursive
make[1]: ディレクトリ '/root/gmp-6.3.0' に入ります
Making check in tests
make[2]: ディレクトリ '/root/gmp-6.3.0/tests' に入ります
Making check in .

## 略


============================================================================
Testsuite summary for GNU MP 6.3.0
============================================================================
# TOTAL: 22
# PASS:  22
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[5]: ディレクトリ '/root/gmp-6.3.0/tests/cxx' から出ます
make[4]: ディレクトリ '/root/gmp-6.3.0/tests/cxx' から出ます
make[3]: ディレクトリ '/root/gmp-6.3.0/tests/cxx' から出ます
make[2]: ディレクトリ '/root/gmp-6.3.0/tests' から出ます
Making check in mpn
make[2]: ディレクトリ '/root/gmp-6.3.0/mpn' に入ります
make[2]: 'check' に対して行うべき事はありません.
make[2]: ディレクトリ '/root/gmp-6.3.0/mpn' から出ます
Making check in mpz
make[2]: ディレクトリ '/root/gmp-6.3.0/mpz' に入ります
make[2]: 'check' に対して行うべき事はありません.
make[2]: ディレクトリ '/root/gmp-6.3.0/mpz' から出ます
Making check in mpq
make[2]: ディレクトリ '/root/gmp-6.3.0/mpq' に入ります
make[2]: 'check' に対して行うべき事はありません.
make[2]: ディレクトリ '/root/gmp-6.3.0/mpq' から出ます
Making check in mpf
make[2]: ディレクトリ '/root/gmp-6.3.0/mpf' に入ります
make[2]: 'check' に対して行うべき事はありません.
make[2]: ディレクトリ '/root/gmp-6.3.0/mpf' から出ます
Making check in printf
make[2]: ディレクトリ '/root/gmp-6.3.0/printf' に入ります
make[2]: 'check' に対して行うべき事はありません.
make[2]: ディレクトリ '/root/gmp-6.3.0/printf' から出ます
Making check in scanf
make[2]: ディレクトリ '/root/gmp-6.3.0/scanf' に入ります
make[2]: 'check' に対して行うべき事はありません.
make[2]: ディレクトリ '/root/gmp-6.3.0/scanf' から出ます
Making check in rand
make[2]: ディレクトリ '/root/gmp-6.3.0/rand' に入ります
make[2]: 'check' に対して行うべき事はありません.
make[2]: ディレクトリ '/root/gmp-6.3.0/rand' から出ます
Making check in cxx
make[2]: ディレクトリ '/root/gmp-6.3.0/cxx' に入ります
make[2]: 'check' に対して行うべき事はありません.
make[2]: ディレクトリ '/root/gmp-6.3.0/cxx' から出ます
Making check in demos
make[2]: ディレクトリ '/root/gmp-6.3.0/demos' に入ります
Making check in calc
make[3]: ディレクトリ '/root/gmp-6.3.0/demos/calc' に入ります
make  check-am
make[4]: ディレクトリ '/root/gmp-6.3.0/demos/calc' に入ります
make[4]: 'check-am' に対して行うべき事はありません.
make[4]: ディレクトリ '/root/gmp-6.3.0/demos/calc' から出ます
make[3]: ディレクトリ '/root/gmp-6.3.0/demos/calc' から出ます
Making check in expr
make[3]: ディレクトリ '/root/gmp-6.3.0/demos/expr' に入ります
make[3]: 'check' に対して行うべき事はありません.
make[3]: ディレクトリ '/root/gmp-6.3.0/demos/expr' から出ます
make[3]: ディレクトリ '/root/gmp-6.3.0/demos' に入ります
make[3]: 'check-am' に対して行うべき事はありません.
make[3]: ディレクトリ '/root/gmp-6.3.0/demos' から出ます
make[2]: ディレクトリ '/root/gmp-6.3.0/demos' から出ます
Making check in tune
make[2]: ディレクトリ '/root/gmp-6.3.0/tune' に入ります
make[2]: 'check' に対して行うべき事はありません.
make[2]: ディレクトリ '/root/gmp-6.3.0/tune' から出ます
Making check in doc
make[2]: ディレクトリ '/root/gmp-6.3.0/doc' に入ります
make[2]: 'check' に対して行うべき事はありません.
make[2]: ディレクトリ '/root/gmp-6.3.0/doc' から出ます
make[2]: ディレクトリ '/root/gmp-6.3.0' に入ります
make[2]: ディレクトリ '/root/gmp-6.3.0' から出ます
make[1]: ディレクトリ '/root/gmp-6.3.0' から出ます

#

OK.

# make install
make  install-recursive
make[1]: ディレクトリ '/root/gmp-6.3.0' に入ります
Making install in tests
make[2]: ディレクトリ '/root/gmp-6.3.0/tests' に入ります
Making install in .

## 略

libtool: install: /usr/bin/install -c .libs/libgmpxx.so.4.7.0T /usr/local/lib/libgmpxx.so.4.7.0
libtool: install: (cd /usr/local/lib && { ln -s -f libgmpxx.so.4.7.0 libgmpxx.so.4 || { rm -f libgmpxx.so.4 && ln -s libgmpxx.so.4.7.0 libgmpxx.so.4; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libgmpxx.so.4.7.0 libgmpxx.so || { rm -f libgmpxx.so && ln -s libgmpxx.so.4.7.0 libgmpxx.so; }; })
libtool: install: /usr/bin/install -c .libs/libgmpxx.lai /usr/local/lib/libgmpxx.la
libtool: install: /usr/bin/install -c .libs/libgmp.a /usr/local/lib/libgmp.a
libtool: install: chmod 644 /usr/local/lib/libgmp.a
libtool: install: ranlib /usr/local/lib/libgmp.a
libtool: install: /usr/bin/install -c .libs/libgmpxx.a /usr/local/lib/libgmpxx.a
libtool: install: chmod 644 /usr/local/lib/libgmpxx.a
libtool: install: ranlib /usr/local/lib/libgmpxx.a
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/sbin" ldconfig -n /usr/local/lib
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the 'LD_RUN_PATH' environment variable
     during linking
   - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to '/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
 /usr/bin/mkdir -p '/usr/local/include'
 /usr/bin/install -c -m 644 gmp.h '/usr/local/include'
 /usr/bin/mkdir -p '/usr/local/include'
 /usr/bin/install -c -m 644 gmpxx.h '/usr/local/include'
 /usr/bin/mkdir -p '/usr/local/lib/pkgconfig'
 /usr/bin/install -c -m 644 gmp.pc gmpxx.pc '/usr/local/lib/pkgconfig'
make  install-data-hook
make[4]: ディレクトリ '/root/gmp-6.3.0' に入ります

+-------------------------------------------------------------+
| CAUTION:                                                    |
|                                                             |
| If you have not already run "make check", then we strongly  |
| recommend you do so.                                        |
|                                                             |
| GMP has been carefully tested by its authors, but compilers |
| are all too often released with serious bugs.  GMP tends to |
| explore interesting corners in compilers and has hit bugs   |
| on quite a few occasions.                                   |
|                                                             |
+-------------------------------------------------------------+

make[4]: ディレクトリ '/root/gmp-6.3.0' から出ます
make[3]: ディレクトリ '/root/gmp-6.3.0' から出ます
make[2]: ディレクトリ '/root/gmp-6.3.0' から出ます
make[1]: ディレクトリ '/root/gmp-6.3.0' から出ます

#

完了。

phpIPAM インストールに戻る

phpIPAM インストール画面
phpIPAM インストール画面

2つの拡張機能をインストール・有効化したことで phpIPAM インストール画面 が正常に上がってきました。

「1. New phpipam installation」のボタンをクリックします。

phpIPAM インストール画面
phpIPAM インストール画面

「1. Automatic database installation」のボタンをクリックします。

phpIPAM インストール画面
phpIPAM インストール画面

MySQL (MariaDB) のユーザ名、パスワード、データベースサーバのホスト、データベース名を指定します。今回は同じサーバ内なのでホストは 127.0.0.1 で、それ以外は先程 phpMyAdmin で設定した内容を入力します。

また、 phpMyAdmin でデータベースを作成しているので、「⚙Show advanced options」ボタンをクリックして……。

phpIPAM インストール画面
phpIPAM インストール画面

展開した項目から「□Create new database」「□Set permissions to tables」の2項目のチェックを外します。逆に言えば phpMyAdmin で設定していなくてもここで設定できそうですね……。

phpIPAM インストール画面
phpIPAM インストール画面

「Install phpipam database」をクリックすると、画面下部に「Database installed successfully!」と表示されるのでその横の「Continue」ボタンをクリック。

phpIPAM インストール画面
phpIPAM インストール画面

続いて phpIPAM 自身の管理者パスワードとサイト名、URLの設定を行います。必要な項目を記入して「Save settings」ボタンをクリック。

phpIPAM インストール画面
phpIPAM インストール画面

画面下部に「Settings updated, installation complete!」と表示されるので、その下の「Proceed to login.」ボタンをクリック。

phpIPAM ログイン画面
phpIPAM ログイン画面

ログイン画面に到達しました。 config.php のパラメータを調整したら完了です。後は admin と先程入力した管理者パスワードでログイン。

phpIPAM ダッシュボード画面
phpIPAM ダッシュボード画面

ダッシュボードが表示されました。インストール完了、正常動作を確認できました。

少し触ってみる

試しにいくつかの項目を編集してみます。

サブネットの追加

phpIPAM Sections を選択
phpIPAM Sections を選択

右上の「Administration」からメニューを展開し、「Sections」をクリック。

phpIPAM Add section
phpIPAM Add section

「Add section」でセクションを追加します。

phpIPAM Add section
phpIPAM Add section

デモでは触れなかった VLAN は触ってみたいので VLAN メニュ- の表示は Yes で。

phpIPAM 追加した Sections を確認
phpIPAM 追加した Sections を確認

「Subnets」の中に今追加したセクションが増えていることが確認できます。

phpIPAM Edit subnet
phpIPAM Edit subnet

今度はセクションの中にサブネットを追加してみます。

VLAN の追加

phpIPAM Add VLAN
phpIPAM Add VLAN

今度は VLAN を追加してみます。 ☁ のアイコン → 「Add VLAN」で追加。

phpIPAM Add VLAN
phpIPAM Add VLAN

試しに適当に VLAN を切ってみます。

phpIPAM Add VLAN
phpIPAM Add VLAN

追加されました。

phpIPAM Edit subnet
phpIPAM Edit subnet

Edit subnet で VLAN のセレクトボックスに先程追加した VLAN が選択できるようになったことが確認できました。

phpIPAM Subnet list
phpIPAM Subnet list

サブネットの一覧でも確認。OKです。

サブネットの確認とIP追加

phpIPAM Subnet details
phpIPAM Subnet details

いくつかサブネットを切ってみました。

phpIPAM Subnet details
phpIPAM Subnet details
phpIPAM Subnet details
phpIPAM Subnet details

そのうちの一つを選択。サブネットに対してどのくらいのIPが使用されているか等のサブネットの詳細な情報が表示されます。下部にはIP一覧。

phpIPAM Add IP
phpIPAM Add IP
phpIPAM Add IP
phpIPAM Add IP

IP を追加します。1つはゲートウェイ、他は普通のデバイス、として追加してみます。

phpIPAM IP List
phpIPAM IP List

IP 一覧ができました。

デバイス追加

phpIPAM Add device
phpIPAM Add device

🖥️ のアイコンから「Add device」でデバイスを追加。

phpIPAM Add device
phpIPAM Add device

ゲートウェイはルータとします。

phpIPAM Edit IP
phpIPAM Edit IP

IP編集のモーダル画面の「Device」で先程追加したデバイスがセレクトボックスで選択できるようになったことが確認できました。

このような手順で IP, VLAN, 機器を追加していけば IP 管理が捗りそうですね。

死活監視 (ping応答)

最後に ping の死活監視について設定してみます。

phpIPAM Edit subnet / Check hosts status
phpIPAM Edit subnet / Check hosts status

サブネットの編集で「Check hosts status」のトグルスイッチを「Yes」に変更します。

phpIPAM subnet list / check ping status
phpIPAM subnet list / check ping status

これでサブネットにIPを登録すると、登録直後はIP横の状態ランプが緑色になります (疎通できないものはブランクのまま)。

phpIPAM subnet list / check ping status
phpIPAM subnet list / check ping status

が、暫くすると状態ランプが赤くなりました。

これはこの記事に拠ると死活監視の機能が自動で行われるわけではない、ということで別途設定が必要らしいです。

# vi /etc/crontab


*/15 *  *  *  * www-data /bin/php /var/www/animae-partus-2/functions/scripts/pingCheck.php
*/15 *  *  *  * www-data /bin/php /var/www/animae-partus-2/functions/scripts/discoveryCheck.php

今回は Ubuntu なのでユーザは apache ではなく www-data で、 PHP のパスはシンボリックリンクですが /bin/php で通っていたのでそのまま、後は PhpIPAM をインストールしたディレクトリの該当の PHP スクリプトを実行するように cron に登録。

phpIPAM subnet list / check ping status
phpIPAM subnet list / check ping status

これでさらに時間を置くと緑色に戻って ping の疎通テストが行われるようになったことが確認できました。

ひとまず今回検証したのはここまで。

余談: DCIM

余談ですが、データセンタの管理 (ラック内の何段目にどういった機器がある、とか、ラック間の配線とか) も含めた管理となると「DCIM (Data Center Infrastructure Management)」という概念に該当するようです。

netbox ならば Ansible との連携もできるようなので、自動化 + 管理にも使えそうですね……まあ、個人レベルで使うことはあまりないでしょうけど……。

参考

IPAM

phpIPAM

DCIM

netbox

Apache: mod_rewrite

GMP (PHP)

不要 (純粋に GMP を make install)

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。