2019年9月29日 星期日

開源 IP 位址管理系統:phpIPAM



在企業當中隨著組織業務擴大,所使用的網路與裝置規模也隨之成長,以往也許還可使用試算表的方式手動管理,但是當數量達到一定程度之後,IP 位址的管理就會成為一個難題。

因此,我使用 IP 位址管理系統來協助 IT 團隊解決 IP 管理的問題,並希望同時將 Rack 機架管理等需求一併搞定。




方案介紹

經過多套開源方案的比較之後,最終我選擇了 phpIPAM,它採用經典的 LAMP 組合而成,功能如下:
  • 全 Web 化操作介面
  • 事件與警報郵件通知
  • 多重與子母網段管理
  • 網段 IP 數量控管與警示
  • 主動探索 IP 使用狀況
  • 定期檢測 IP 使用狀況
  • IP 使用申請表單機制
  • 裝置資訊管理
  • 機架資訊管理
  • 電路資訊管理
  • 繁體中文介面 (嘿嘿)


它所能提供的功能比我想像的還要豐富,而且確實能滿足我想要解決的問題,其中 IP 申請表單機制更是有趣。








安裝方式

在此以 Ubuntu 18.04 做為安裝程序的對象。

安裝套件

apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
add-apt-repository "deb [arch=amd64,arm64,ppc64el] http://mariadb.mirror.liquidtelecom.com/repo/10.4/ubuntu $(lsb_release -cs) main"
apt update
apt-get install apache2 mariadb-server php7.2 php7.2-gmp php7.2-mysql php7.2-ldap php-pear
apt-get install php7.2-pdo php7.2-json php7.2-gettext php7.2-cli php7.2-mbstring
apt-get install php7.2-gd php7.2-curl
apt-get install php7.2-simplexml
apt-get install git
git clone https://github.com/phpipam/phpipam.git /var/www/phpipam
cd /var/www/phpipam
git submodule update --init --recursive

系統初始

mysql -u root -p
> create database phpipam;
> GRANT ALL on phpipam.* to phpipam@localhost identified by 'password';
> exit;
mysql -u root -p phpipam < db/SCHEMA.sql
cp /var/www/phpipam/config.dist.php /var/www/phpipam/config.php

設定建立 (剛才複製出來的 config.php)

$db['host'] = "localhost";
$db['user'] = "phpipam";
$db['pass'] = "password";
$db['name'] = "phpipam";
define('BASE', "/"); 

站台設定 (預設在 /etc/apache2/sites-enabled/000-default)

DocumentRoot /var/www/phpipam
<Directory /var/www/phpipam>
  Options FollowSymLinks
  AllowOverride all
  Order allow,deny
  Allow from all
</Directory>

啟用模組 (rewrite)

ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
a2enmod rewrite
service apache2 restart

經過一連串的安裝指令之後 phpIPAM 已經安裝完成,請使用瀏覽器連至 http://ip/,預設帳號為 admin,預設密碼為 ipamadmin,即可登入。





主要功能

進入系統之後,首先會顯示資訊看板,提供最常需要觀看的各個區段資訊、數量統計、排行榜、IP 申請等等資訊,這部份的區塊可以依據使用習慣自行調整。



資訊看板


在 phpIPAM 中,具有機架配置的功能,當裝置建立並設定至指定的機架編號與位置,即可在總覽畫面中以圖形方式呈現裝置與機架擺設的關係。



機架清單


在系統中,可以分別定義客戶、網路、位置、機櫃、裝置、電路等項目,這些項目都是可以經由設定全部進行關聯。

舉個例子,我們可以建立電信業者專線為一條電路,記錄電信業者名稱、電路編號、速率等等資訊,並在該電路中指名這是屬於那兩個裝置互相連接使用。

或者,建立多個辦公室的位置,並相該位置所使用的網段與該位置關聯,即可容易查詢位置與 IP 的相對應關係。

在 IP 管理畫面中,可以快速取得這個網段的相關資訊,右上角的圓餅圖會顯示此網段目前已經使用了多少 IP。



子網路細節


這個頁面往下捲,可以看到這個網段的每一個 IP 使用情況,搭配 phpIPAM 所提供的 scan 功能,可以快速的協助將整個網段中已經被使用的 IP,以及目前的連線情況以燈號顯示;若該 IP 能夠被反解到 FQDN,也會自動出現在欄位中。

在 IP 使用情況清單的下方還有一個快速的網段 IP 使用指示器,點亮的部份即表示已在使用中,非常易懂,點選每一格還可以進去設定或是新增對應的裝置。



IP 使用清單與指示器


點進裝置細節頁面,可以查看更多的 IP、MAC、位置、連線、異動記錄等資訊,也會以圖形方式呈現這個裝置在那一個 Rack 的第幾個位置。



IP 位址細節


可以將現有的電路資料建立起來,輸入電路編號、頻寬、業者、連繫窗口、連接點的資訊等,可以方便做為管理與日後的調閱。

以我的使用情況來說,有許多的外點辦公室都有各自的線路,甚至有一些是協助客戶申請的線路資訊需要保存,透過 phpIPAM 就有一個相當良好的集中管理方式。



實體電路清單






結論

延續前一篇 Open-AudIT 資產管理系統的功能,本篇是 IP 位址管理系統,剛好可以形成互補資訊缺少的部份做為參考。

經由 phpIPAM 所提供的 IP 位址管理以及自動檢測 IP 使用情況的機制,可以為我們解決這些 IP 使用情況盤點的需求問題,只要定期回頭查看 phpIPAM 上的圖表資訊與警報,就可以將單位中的 IP 使用狀況隨時掌握。

例如發現區域中接上網路很久但卻已經沒有使用的裝置,或是需要加入新裝置時配發 IP 的確認程序,都可以一次在 phpIPAM 平台上完成,而且透過以 phpIPAM 做為中央管理機制,更可以避免多人 IT 團隊運作時不慎取用相同 IP 設定導致衝突的窘境。





參考資料