ネットワーク設計と自動化

コンフィグ管理 こんふぃぐかんり

構成管理ネットワーク設定バージョン管理変更管理IaC自動化
コンフィグ管理について教えて

簡単に言うとこんな感じ!

ネットワーク機器やサーバーの「設定ファイル(コンフィグ)」を、いつ・誰が・どう変えたかを記録・管理することだよ。家の電気配線図を最新状態に保っておかないと修理できないでしょ?それと同じで、設定の「現在地」を把握しておくための仕組みなんだ!


コンフィグ管理とは

コンフィグ管理(Configuration Management、構成管理)とは、ネットワーク機器・サーバー・クラウドリソースなどの設定情報(コンフィグレーション)を記録・追跡・変更管理する一連の活動のことです。スイッチやルーターに書かれた設定ファイル、OSのパラメーター、アプリケーションの設定値など、システムの「ふるまい」を決めるすべての情報が対象になります。

障害が起きたとき「昨日から何が変わったのか」をすぐに答えられるかどうかは、コンフィグ管理の質によって決まります。変更前後の差分を追える仕組みがあれば、問題の原因特定が格段に速くなります。逆に管理が甘いと、「誰かが設定を変えていたが誰も知らなかった」という事態が起き、復旧に何時間もかかることになります。

近年はクラウドやコンテナの普及により管理対象が急増しており、IaC(Infrastructure as Code) と組み合わせてコンフィグをコードとして扱い、Gitで版管理するアプローチが主流になっています。システム発注・選定の場面では「コンフィグ管理をどう行うか」を運用設計の段階で決めておくことが、後々のトラブル防止に直結します。


コンフィグ管理の4つの柱

コンフィグ管理は大きく4つの機能で構成されています。

機能内容具体例
収集(Discovery)現在の設定を自動または手動で取得するshow running-config の出力を保存
バージョン管理変更のたびに世代を記録し、差分を追跡するGit、RANCID、Oxidized
変更管理誰が・いつ・なぜ変更したかを承認フローで管理チケット連携、承認ワークフロー
監査・検証想定した設定(あるべき姿)と実際の差異を検出コンプライアンスチェック、ドリフト検出

覚え方:「収・版・変・監」でカバー!

集→管理→更管理→査」の順番で回す、というサイクルを覚えておくと整理しやすいです。この4ステップを繰り返すことで、設定の「信頼できる唯一の情報源(Single Source of Truth)」を維持できます。

管理対象の主な種類

  • ネットワーク機器: ルーター・スイッチ・ファイアウォールの running-config / startup-config
  • サーバー: OS設定ファイル(/etc/配下など)、ミドルウェア設定
  • クラウドリソース: Terraform の state ファイル、CloudFormation テンプレート
  • アプリケーション: 環境変数、設定ファイル(YAML/JSON)

歴史と背景

  • 1980年代: 大規模ネットワークの普及に伴い、機器設定の手動管理が限界に。テキストファイルをFTPで回収するだけの原始的な管理が始まる
  • 1997年: RANCID(Really Awesome New Cisco confIg Differ)がオープンソースで登場。定期的に設定を収集・差分検出する仕組みを自動化した先駆け
  • 2002年: ITILがConfiguration Management(CMDB: 構成管理データベース)を体系化。IT全般の構成情報管理の考え方が普及
  • 2008年頃〜: Chef・Puppet などの構成管理ツールが登場し、サーバー設定をコードで記述する「IaC」の概念が定着
  • 2013年〜: Ansible の登場でエージェントレスな構成管理が広まり、ネットワーク機器にも適用しやすくなる
  • 2014年〜: Oxidized がRACIDの後継として登場。マルチベンダー対応・Git連携が容易に
  • 2016年〜: NetDevOps(ネットワーク×DevOps)の文脈で、Gitを中心に据えたコンフィグ管理が業界標準に近づく

代表的なツールと比較

コンフィグ管理ツールは「ネットワーク機器向け」と「サーバー・クラウド向け」に大別できます。

ツール主な対象特徴エージェント
Oxidizedネットワーク機器Git連携・マルチベンダー対応、設定収集に特化不要
RANCIDネットワーク機器老舗。CVSベース。後継はOxidized不要
Ansibleサーバー・NW機器YAML記述・SSH接続・変更適用まで可能不要
Puppetサーバー宣言型。あるべき姿を記述して自動修復必要
ChefサーバーRuby DSL。柔軟だが学習コスト高め必要
Terraformクラウドリソースインフラをコードで定義・state管理不要

コンフィグ管理の全体フロー(SVG図解)

機器・サーバー (設定の実体) 収集エージェント Oxidized / Ansible バージョン管理 Git リポジトリ 監査・通知 差分検出・アラート 変更管理フロー ① 変更申請 ② 承認・レビュー ③ 変更適用 ④ 確認・記録

ドリフト(設定ずれ)とは

コンフィグ管理で特に重要な概念がコンフィギュレーションドリフトです。「あるべき設定(ゴールデンコンフィグ)」と「実際の機器の設定」がいつの間にかずれてしまう現象で、担当者が緊急対応で直接機器を触ったり、複数人が別々に設定変更したりすることで起きます。ドリフトを定期検出して自動修復する仕組みが、成熟したコンフィグ管理の目標です。


関連する規格・RFC

規格・RFC番号内容
RFC 6241NETCONF(Network Configuration Protocol)— 機器設定をXMLで操作するプロトコル
RFC 8342NETCONFにおける「実行中・候補・スタートアップ」各データストアの定義
RFC 8040RESTCONF — NETCONFをREST APIで扱えるようにしたプロトコル
RFC 7950YANG — ネットワーク機器の設定・状態をモデル化するデータ記述言語

関連用語

  • IaC(Infrastructure as Code) — インフラ設定をコードとして管理・自動化する手法
  • NETCONF — ネットワーク機器の設定をXMLで操作するプロトコル(RFC 6241)
  • YANG — ネットワーク機器の設定データをモデル化する記述言語
  • Ansible — エージェントレスで機器設定の収集・変更を自動化するツール
  • Git — コードや設定ファイルのバージョン管理システム
  • 変更管理(ITIL) — ITILで定義された変更リスクを制御するプロセス
  • CMDB(構成管理データベース) — ITリソースの構成情報を一元管理するデータベース
  • NetDevOps — ネットワーク運用にDevOpsの考え方を適用する手法