「IP_Management_v2_Final_Update.xlsx」という名の悪夢
ネットワークエンジニアなら誰しも、次のような経験があるはずです。午前2時、電話が激しく震えます。上司から、ピーク時にコアシステムが不安定になり、パケットロスが頻発しているとの連絡が入ります。複雑なログを3時間かけて調べた結果、判明したのは、元同僚がバックアップサーバーのIPを予備のゲートウェイと同じものに密かに割り当てていたという事実でした。
照合のためにExcelファイルを開くと、6ヶ月間も更新されていないことに気づき、愕然とします。これは、手動とExcelによるインフラ管理がいかに「自殺行為」であるかを教えてくれる痛い教訓です。プロフェッショナルな運用には、「Source of Truth(信頼できる唯一の情報源)」が必要です。そして、NetBoxこそが現在の標準的なソリューションです。
NetBoxとは何か?なぜIPスキャンツールではないのか?
NetBoxをAngry IP Scannerのようなツールと混同する人が多いですが、実際にはNetBoxはIPAM(IPアドレス管理)とDCIM(データセンターインフラ管理)を組み合わせたものです。
違いはその考え方にあります。NetBoxは、どのデバイスがオンラインかをネットワークスキャンして確認するものではありません。逆に、ネットワークが「どうあるべきか」を定義する場所です。もしNetBoxにIP 10.0.0.1がFirewallのものであると記録されていれば、現実はそうでなければなりません。すべての設定変更は、デバイスで実行する前にNetBoxで更新される必要があります。このアプローチにより、インフラの後を追うのではなく、インフラを制御できるようになります。
NetBoxは以下の一元管理を支援します:
- IPAM:Prefix、個別のIPアドレス、VRF、VLANの管理。
- DCIM:ラック、デバイス(サーバー、Cisco/Juniperスイッチ)、物理的な位置の管理。
- 接続:各ネットワークケーブル、コンソールポート、電源系統の詳細。
- 仮想化:クラスターと仮想マシン(VM)の管理。
導入環境の準備
本番環境で最も安定させるために、Docker Compose経由でのNetBoxインストールを推奨します。これにより、PostgreSQL、Redis、NetBoxアプリケーションを分離できます。バックアップや将来のアップグレードも非常に簡単で、Pythonライブラリのエラー修正に時間を取られることなく、5〜10分程度で完了します。
推奨されるシステム構成(約500〜1000台のデバイスを想定):
- OS: Ubuntu 22.04 LTS
- CPU: 2コア
- RAM: 4GB(NetBoxはDjangoとRedisを使用するため、メモリを比較的消費します)
- Disk: 20GB SSD
ステップ1:DockerとDocker Composeのインストール
まず、システムを更新し、必要な補助パッケージをインストールします:
sudo apt update
sudo apt install -y curl git apt-transport-https ca-certificates gnupg lsb-release
# Docker Engineのインストール
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io
# Docker Compose v2のインストール
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
ステップ2:NetBox Dockerソースコードのダウンロード
最新の状態を維持するため、公式のNetBoxコミュニティビルドを使用します:
git clone -b release https://github.com/netbox-community/netbox-docker.git
cd netbox-docker
ステップ3:システムパラメータの設定
プロジェクトディレクトリ内に、必要に応じてアクセスポートをカスタマイズするためのオーバーライドファイルを作成します。最も重要なのは、セッション保護のためのシークレットキーの作成です。
# Webアクセス用にポート8000を設定
tee docker-compose.override.yml <<EOF
services:
netbox:
ports:
- 8000:8080
EOF
# ランダムなシークレットキーを生成
echo "SECRET_KEY=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 50)" >> .env
ステップ4:サービスの起動
これで、Dockerが必要なイメージを自動的にダウンロードします。このプロセスにかかる時間はネットワーク速度に依存します。
sudo docker-compose pull
sudo docker-compose up -d
コマンドの実行が終わったら、データベースの初期化が完了するまで1分ほど待ちます。進捗は sudo docker-compose logs -f netbox で監視できます。
ステップ5:管理者アカウントの作成
使用を開始するには、スーパーユーザーアカウントを作成する必要があります:
sudo docker-compose exec netbox /opt/netbox/netbox/manage.py createsuperuser
NetBoxの使い方:基本から応用まで
http://<IP-Server>:8000 にアクセスしてログインします。NetBoxを効果的に活用するには、いきなりIPを入力するのではなく、論理的な階層に従ってデータを入力する必要があります。
1. サイト(拠点)の設定
すべてのデバイスには「家」となる場所が必要です。Organization > Sites から新規作成します。例:「クアンチュンDC」や「第1地区オフィス」など。
2. デバイスタイプの定義
NetBoxはデバイスの仕様を知る必要があります。例えば、Cisco C9300-24Tスイッチにはネットワークポートがいくつあるか?テンプレートを定義しておくことで、後で同じモデルのデバイスを数秒で大量に追加できるようになります。
3. プロフェッショナルなIPAM管理
IPを一つずつ入力しないでください。まずは Prefixes から始めます。例えば、Camera VLAN専用の 172.16.10.0/24 セグメントがある場合:
- IPAM > Prefixes > Add に移動します。
- IP範囲を宣言し、対応するサイトに割り当てます。
このPrefixをクリックすると、NetBoxはどのIPが空いているか(Container)を明確に表示します。「+」ボタンを押すだけで、サーバーやスイッチにIPを割り当てることができます。非常に直感的で、間違いが起こりにくい設計です。
実践的なアドバイス:手動で行わないこと!
NetBoxを使い始めたばかりの頃の最大の失敗は、200台のサーバー情報を手入力しようとしたことです。同じ過ちを繰り返さないでください。NetBoxは非常に強力なREST APIを備えています。簡単なPythonスクリプトを使用して、古いExcelファイルからシステムにデータを流し込みましょう。
非常に優れた機能として Changelog があります。ケーブルの抜き差しやIPの変更など、すべての操作が「誰が、いつ、何を変更したか」記録されます。これは、徹夜明けのトラブルの原因究明において「救世主」となります。
50台以上のデバイスや3〜4つのVLANを管理しているなら、今すぐNetBoxを導入してください。IP競合が発生してから古いExcelファイルを探し回るような事態を待つ必要はありません。
結び
NetBoxは単なるソフトウェアではなく、現代的な管理の考え方そのものです。初期設定には少し手間がかかるかもしれませんが、それによって得られる価値は、整理整頓され、自動化(Automation)に対応したインフラです。皆さんがExcelの悩みから早く解放されることを願っています!

