以前にNetboxといういわゆるネットワーク管理者向けのIPAM(IP address management)のOSSのツールについて紹介いたしました。
OSSのIPAMツール「Netbox」をDockerで簡単構築する
https://syachiku.net/netbox-docker/
Netboxで自宅ネットワークのIPアドレス一覧を管理してみる
https://syachiku.net/netbox-try01/
今回は同様のIPAM機能を持つOSSである「GestioIP」をDockerで構築して使ってみましたので紹介したいと思います。
10年くらい前に私も使ったことがあるのですがVLANとかも管理できたので結構使いやすいイメージがあります。
1. GestioIPとは?
GestioIPは、IPv4およびIPv6アドレスの管理に使用できるWebベースのオープンソースIPAMです。
強力なネットワーク検出機能を備えており、ネットワークとホストの両方に対して検索およびフィルター機能を提供し、インターネット検索エンジンと同等の表現を可能にします。
これにより、管理者が頻繁に必要とする情報を簡単かつ迅速に見つけることができます。 GestióIPには、自動VLAN管理システムも組み込まれています。
GestioIP公式サイト
https://www.gestioip.net/
2. DockerでGestioIPを構築
早速、DockerでGestioIPを構築 していきます。
2.1. docker-composeファイルの取得
以下のサイトを使わせてもらいました。
https://github.com/muebel/gestioip-docker-compose
ファイルをGit Cloneしてディレクトリに移動します。
> git clone https://github.com/muebel/gestioip-docker-compose
> cd .\gestioip-docker-compose\
docker-compose.yamlファイルは以下のようになっています。 mysqlとgestioIPのイメージを使っているようですね。
このままだとポートが80番でアップしてしますので、変更したい場合には.envファイルのHOST_PORT
を適宜変更してください。
version: "3.8"
services:
gip-mysql:
image: mysql:5
container_name: gip-mysql
networks:
gip-net:
ipv4_address: ${MYSQL_IP}
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${DB_ROOT_USER_PASSWORD}
MYSQL_DATABASE: ${DB_SSID}
MYSQL_USER: ${DB_USER}
MYSQL_PASSWORD: ${DB_PASSWORD}
volumes:
- ./mysql:/docker-entrypoint-initdb.d
- ${DB_DATA_DIR}:/var/lib/mysql
gip:
image: gestioip/gestioip:3560
container_name: gip
networks:
gip-net:
ipv4_address: ${GIP_IP}
restart: always
environment:
DB_HOST: ${DB_HOST}
DB_PORT: ${DB_PORT}
DB_SSID: ${DB_SSID}
DB_USER: ${DB_USER}
DB_PASSWORD: ${DB_PASSWORD}
BCK_USER_DISABLED: ${BCK_USER_DISABLED}
BCK_USER: ${BCK_USER}
BCK_USER_PASS: ${BCK_USER_PASS}
USE_SSL: ${USE_SSL}
SERVER_NAME: ${SERVER_NAME}
volumes:
- ./apache/certs:/etc/apache2/ssl/certs
- ./apache/keys:/etc/apache2/ssl/keys
- ./apache/conf:/usr/share/gestioip/etc/apache
ports:
- ${HOST_PORT}:${CONTAINER_PORT}
networks:
gip-net:
ipam:
driver: default
config:
- subnet: ${SUBNET}
gateway: ${GATEWAY}
.envファイル
## Environment variables for a GestioIP installation with docker-compose
## v1.1 20210216
## Change DB_ROOT_USER_PASSWORD and DB_PASSWORD
## Change the other parameters only if you are
## sure what you are doing
# Database parameter
DB_HOST="gip-mysql"
DB_PORT="3306"
DB_ROOT_USER_PASSWORD="PASSWORD"
DB_SSID="gestioip"
DB_USER="gestioip"
DB_PASSWORD="PASSWORD"
# Enable SSL
# To enable SSL you need to
# * dispose about a SSL server certificate
# and the corresponding key
# * set USE_SSL="yes"
# * set the variable SERVER_NAME
# Copy the server certificate to
# ./apache/certs/SERVER_NAME.crt and the server
# key to ./apache/keys/SERVER_NAME.key. Replace
# SERVER_NAME with the value of the variable SERVER_NAME.
# Example: ./apache/certs/gestioip.example.com.crt
# and ./apache/keys/gestioip.example.com.key
# Set also the variables CONTAINER_PORT and
# HOST_PORT both to "443".
# [yes|no]
USE_SSL="no"
# Server name when using SSL. Must be the same
# as the CN of the certificate. With USE_SSL="no",
# this parameter will be ignored. This parameter
# is mandatory with USE_SSL="yes"
SERVER_NAME="gestioip.example.org"
# datadir
DB_DATA_DIR="./mysql/data/"
# docker network (bridged network address)
SUBNET="10.20.0.0/24"
GATEWAY="10.20.0.1"
GIP_IP="10.20.0.2"
MYSQL_IP="10.20.0.3"
# ports (set to 443 with USE_SSL="yes")
CONTAINER_PORT="80"
# ports (set to 443 with USE_SSL="yes")
HOST_PORT="80"
# optional Configuration Management Module
BCK_USER_DISABLED="yes"
BCK_USER="gestioip-bck"
BCK_USER_PASS="PASSWORD"
2.2. GestioIPコンテナの作成・起動
それではGestioIPコンテナの作成・起動をします。
> docker-compose up -d
イメージのダウンロードとコンテナ作成ができています。簡単ですね。
> docker-compose ps
Name Command State Ports
------------------------------------------------------------------------
gip /gestioip_install/script/c ... Up 0.0.0.0:80->80/tcp
gip-mysql docker-entrypoint.sh --def ... Up 3306/tcp, 33060/tcp
3. GestioIPを使ってみる
3.1. ログオン
http://localhost にアクセスします。
初期パスワードは以下になりますのでログオンします。
- Username: gipadmin
- Password: PASSWORD
3.2. ネットワーク作成
最初にネットワークを作成してみます。 ルートネットワークとして192.168.0.0/16
を作成します。
次にルートネットワークにぶら下がるネットワークとして我が家で実際に利用している192.168.10.0/24
を登録します。
3.3. IPアドレス管理表の確認
作成したネットワークが表示されることを確認できます。
※注意:どうもedge(chronium版)だとネットワーク表示などが正しく表示されないようです。
ネットワークを選択するとIPアドレス管理表が表示されますきます。
該当ネットワーク内のデバイスに対して存在確認もできました。
4. まとめ
10年くらい前に使っていたものに比べて見た目がかなり変わってますね。
慣れの問題かもしれませんが、ちょっとボタンとかが使いにくい印象です。
ただし、機能としては充分なのでExcelで管理するよりは全然使えるかと思います。
※どうもedge(chronium版)だとネットワーク表示などが正しく表示されないようです。
今回は以上となります。
コメント