ページの先頭です

ページ内を移動するためのリンク
本文へ (c)

ここから本文です。

手作業を減らせる!Forward Networks と NetBox を活用した機器管理の効率化

ライター:猪子 亮
2019年ネットワンシステムズに新卒入社。

社内/外 向けサービス開発、事業部門の支援などを行っています。
主にWeb アプリケーションのフロントエンド、バックエンド開発(オンプレ/AWS)。

他には社内の自動化推進(Ansible)、業務改善活動、開発エンジニア育成などに取り組んでいます。

目次

はじめに

この記事の目的

これまでの連載でForward Networks の概要と構成管理や脆弱性管理をどのように実現しているのかを紹介しました。
3回となるこの記事では、インベントリ管理における外部との連携に焦点を当て、Forward Networks NetBox の連携について紹介します。
過去の連載はページ下部の関連ページをご参照ください。

ネットワークインフラの運用において、正確な構成情報を把握することは非常に重要です。
しかし、構成変更に伴う情報の管理は容易ではなく、Excel 等を用いたドキュメントベースの手動管理では人為的ミスや情報の分散、システム連携が難しいなどの課題があります。

Forward Networks NetBox はそれぞれ異なる管理方式を持っており、補完関係にある両者を連携することで、ネットワーク機器のインベントリ管理を半自動化できます。
コレクターにより動的に収集されるネットワークの構成情報を静的に管理されているNetBox に連携することで、インベントリや構成情報の一貫性を保つことができます。

本記事では、Forward Networks の強力なネットワーク可視化(デジタルツイン) 機能を活用し、最新のネットワーク機器情報をNetBox に登録・更新することで、管理の一元化と精度向上を実現できることをご紹介します。

なぜこの連携が便利なのか?

ネットワーク機器の管理では、以下のような課題がよく発生します。

  • 手動での構成図等の管理に時間がかかる
  • 複数個所で異なる情報が管理されている
  • 更新が滞り、現実と乖離した情報となっている

本記事で紹介する連携により、これらの課題を解決し、より効率的で正確なネットワーク運用を実現する方法を解説します。

事前に知っておくべきこと

この記事は、Forward Networks NetBox の連携方法 にフォーカスしています。
Forward Networks そのものの概要や機能のご紹介は過去の連載を参考にしてください。
また、Forward Networks のブログ記事も合わせてご覧ください。

Forward Networks NetBox について

Forward Networks とは?

Forward Networks はネットワークの可視化(デジタルツイン) と検証を可能にするプラットフォームです。

デジタルツイン

  • Forward Networks は、ネットワークの構成を独自の数理モデルで解析し、現在のネットワークの状態をデジタルツイン(仮想モデル) として再現します。
  • これにより、実ネットワークの正確なスナップショットを取得し、構成変更前のシミュレーションやトラブルシューティングが容易になります。

ネットワークの検証とトラブルシューティング

  • ネットワークのポリシーが適切に設定されているか、意図しない通信が発生していないかをNQE(Network Query Engine) を用いて検証可能です。
  • これらはGUI を通して視覚的に確認でき、ネットワーク障害が発生した際に、影響範囲や原因を迅速に特定することができます。

ネットワーク機器情報の収集

  • Forward Networks は、コレクターと呼ばれるコンポーネントを使用してルータやスイッチなどの機器情報を自動で取得します。
  • コレクターは管理対象と疎通可能なネットワークに配置し、SSH 経由で情報を収集(エージェントレス)します。

NetBox とは?

NetBox は、ネットワーク機器やデータセンターの情報を一元管理するためのプラットフォームです。
特に DCIM(データセンターインフラ管理) と IPAM(IP アドレス管理) の両方の機能を持つ点が特徴であり、クラウド版、オンプレ版、OSS 版が存在します。

DCIM としての役割

  • ネットワーク機器、ラック配置、接続情報などを統合的に管理できます。
  • データセンターの物理・論理構成を扱えるため、正確な設備管理が行えます。

IPAM としての役割

  • IPアドレス、サブネット、VLANVRF 等の管理できます。
  • プレフィックスを起点にIP アドレスとレンジを管理できます。

他のシステムとの連携

Forward Networks NetBox 連携メリット

通常、NetBox への機器情報の登録・更新は手作業やスクリプトを通じて行われます。
しかし、Forward Networks を活用すると、次のような改善が期待できます。

  • 機器情報の自動取得・更新が可能
    Forward Networks
    によるネットワーク機器の情報取得からNetBox への登録まで自動で行えるため、手動での更新作業を減らせる。
  • データの正確性が向上し、ミスを防げる
    ネットワークの実態を反映したデータをNetBox に保持できるため、設定ミスや現実との情報の乖離リスクを減らせる。

SoT (Source of Truth)

ネットワーク管理において、機器情報が一元管理されていないことによる課題は少なくありません。

例えば、以下のようなケースがよく発生します。

  • 部隊ごとに異なる管理ツールを使用しているため、データの不整合が発生する
  • 手作業によるデータ更新が遅れ、実際のネットワークと情報が乖離する
  • IPアドレスや VLAN の重複・競合が発生し、意図しない通信トラブルが発生する

NetBox SoT として利用することで、以下のようなメリットが得られます。

  • 構成管理ツールのインベントリとして活用できる
    Ansible
    などの構成管理ツールのインベントリーソースとしてNetBox を利用することで、汎用性の高い自動化(動的インベントリ)を実現し易くなります。
    参考: Using NetBox for Ansible Source of Truth
  • 手作業による更新ミスや情報の分散を防げる
    一元的に機器情報を管理することで、運用ミスを削減し、ネットワークの整合性を維持できます。
  • Forward Networks との連携で、データの最新性が保たれる
    Forward Networks
    が定期的にネットワークの実際の状態を解析し、その結果を NetBox に反映 できるため、古い情報に基づいた設定ミスを防ぎ、最新のデータに基づいた運用が可能になります。

Forward Networks NetBox の連携概要

Forward Networks NetBox の連携はPython スクリプトを通したAPI 連携で行われます。

  1. Forward Networks からデータの取得
    Forward NQE REST API
    を使い、ロケーション、ベンダー、デバイスタイプ、デバイスモデル、デバイス、インターフェース情報を取得
  2. NetBox からデータの取得
    NetBox REST API
    を使い、サイト、製造元、デバイスタイプ、デバイスロール、インターフェースタイプなどを取得
  3. データの整形
    NetBox
    へデータを登録するための前処理(フィールドのマップ) を実施
    ): Forward ロケーション -> NetBox サイト
  4. NetBox への登録
    NetBox REST API
    を使い、データーベースを更新

NQE を使う際は自身でクエリを書く必要(AI サポート機能あり) がありますが、NetBox との連携においては用意されたクエリを使用できるため、簡単に連携可能です。

実際に連携してみる

以下の内容は、執筆時点(2025225) の情報に基づいています。また、各コンポーネントのバージョンについては表1に記載しています。

表 1 環境情報

名前 バージョン
Forward Networks (Cloud) 25.2.0-12 (Build: d21c8d2a38f)
NetBox Community NetBox Community v4.2.3-Docker-3.2.0
連携スクリプトの実行環境: Python 3.13.1

今回の連携元となるForward Networksは、図1に示す構成のネットワークを使用しています。
このネットワーク構成をNetBox に連携する際の手順や確認方法について解説していきます。


図 1 検証ネットワークのトポロジ

スクリプトのDL と設定ファイルの生成

連携スクリプトはGitHub で公開されています。
このスクリプトを使用するには、まずForward NetworksNetBoxの双方に通信可能なマシンにクローンする必要があります。
クローンが完了したら、READMEに記載されている手順に従って作業を進めます。

最初に接続情報や連携内容を決めるための設定ファイルを作成する必要があります。
この設定ファイルを簡単に生成するために、netbox_form.py が用意されています。
このスクリプトはFlask を使っており、Web 画面に設定内容を入力することで、設定ファイルを自動生成してくれます。
利用するためには以下ライブラリのインストールが必要です。

  • Flask
  • PyYAML

ライブラリのインストールが完了したら、netbox_form.py を起動します。
すると、以下のような画面が立ち上がります。

図 2 設定ファイルの生成

この画面で、必要な連携項目にチェックを入れ、連携先の接続URLAPI利用のためのトークンを入力します。
フォームを送信すると、スクリプトと同じ階層にconfigurational.yaml という設定ファイルが生成されていることを確認できます。

スクリプトの実行と連携内容の確認

Forward Networks の情報をNetBox に連携するためのスクリプトはexport_to_netbox.py です。
API コールを行うために追加のライブラリ(requests) が必要なため、インストールします。
先程の設定ファイルでdebug オプションを有効化しておくと、スクリプト実行時にログが標準出力に出力されるため、内容を確認しながら実行できます。

    (netbox) [root@netbox fwd-netbox]# python export_to_netbox.py
    DEBUG:root:======================== Configuration.yaml variables
    DEBUG:root:Debug: {True}
    DEBUG:root:add_sites: True
    DEBUG:root:add_manufacturers: True
    DEBUG:root:add_device_roles: True
    DEBUG:root:add_device_types: True
    DEBUG:root:add_devices: True
    DEBUG:root:add_interfaces: True
    DEBUG:root:Forward
    DEBUG:root:Host: https://fwd.app
    DEBUG:root:authentication: Basic 
    DEBUG:root:network_id: 
    DEBUG:root:locations_query_id: FQ_7327e06da074e257fffe3b4968b8986c85dcd4e9
    DEBUG:root:vendors_query_id: FQ_dfa37b83121f84406e6da206365a4d4294f0ccaa
    DEBUG:root:device_types_query_id: FQ_64a3a84cd27d225e5dd22e44a7e8d2f98d513a44
    DEBUG:root:device_types_query_id: FQ_64a3a84cd27d225e5dd22e44a7e8d2f98d513a44
    DEBUG:root:device_models_query_id: FQ_b28e7cde85cd0ce72d08dc4ab92ba66d6067f4d4
    DEBUG:root:interfaces_query_id: FQ_97bcba26a420b4ed948bbd5d9c628e17150979e7
    DEBUG:root:NetBox:
    DEBUG:root:host: https://
    DEBUG:root:authentication: Token 
    …
    INFO:root:========> 170 NetBox interface[s] updated

スクリプトの実行が正常に終わったら、NetBox にアクセスしてインポートが完了していることを確認します。
どのような操作が行われたかはChange Log から確認できます。

図 3 スクリプト実行後のNetBox 上での変更履歴の確認

詳細は各メニューから確認でき、例としてデバイス一覧を見ると、Forward Networks で確認したトポロジに含まれる機器に関する情報(サイトやメーカ、タイプなどの情報も含む) がインポートされていることを確認できます。

図 4 NetBox デバイス一覧

まとめ

ネットワークの構成情報の管理は、移行の労力から旧来より使われてきたExcel ベースの管理から脱却できずにいることも少なくありません。
Forward Networks では、コレクターを使って動的に構成情報を取得できる一方で、静的な情報源としてそのまま使うことには不向きでした。
そこで、NetBox と連携することで、構成情報を動的に管理しつつ一貫性のあるデータを保持することが可能になりました。
その他の使い方など、興味がありましたら弊社担当営業までご連絡ください。

※本記事の内容は執筆者個人の見解であり、所属する組織の見解を代表するものではありません。

RECOMMEND