Kompira Sonar でスキャンを行った際、不適切なノード集約が行われないよう集約処理を改善しました。
これにより「実際は違う機器だが MAC アドレスが重複しているため同一ノードとして集約されてしまう」といったケースでの挙動が改善されます。
ノード集約の仕組み
ノード集約とは
Sonar におけるノード集約とは、スキャン時に検出された多数の IP アドレスのうち、同じ機器やマシンだと判断された IP アドレスを1つのノードにまとめる(=集約)機能のことを指します。
この機能により、機器やマシンが複数の IP アドレスを持っていても単一ノードとして正常に識別できるようになっています。

ノード集約に使用されるシグネチャ(識別子)
各 IP アドレスが同一であると判定するため、Sonar では下記のシグネチャ(識別子)を収集しています。
基本的にこれらのシグネチャが同じである IP アドレスを同一ノードとして集約しています。
- MAC アドレス
- シリアル番号
- フットプリントファイル (SSH/WinRM のみ)
- 初回スキャン時に生成されるフットプリントファイル。固有 ID が記述されている
- vSphere 固有 ID (vSphere のみ)
- SNMP エンジン ID (SNMP のみ)
改善前の集約処理における問題点
本改善を行う前の集約処理では、上記シグネチャが複数取得できた際、1つでも重複しているシグネチャがあれば同じノードとして集約していました。
特に発生しやすいケースとして、冒頭に記載した MAC アドレス重複による不適切な集約が挙げられます。
MAC アドレスについては基本的に機器固有のものである、という前提があるものの、一部の特殊な環境ではその限りではありません。
(クラウドの特殊ネットワーク環境や、一部の IP 冗長化技術、その他予約アドレスなど)
そういった環境において、これまでのノード集約処理では「シリアル番号は異なるが、MAC アドレスが同じ」というようなケースで異なる機器の IP アドレスが1つのノードとして集約されてしまっていました。

改善後の集約処理
上記のようなケースでも正しくノードを分離させるため、本改善は下記の対応を行いました。
- シグネチャのうち、MAC アドレス以外を「信頼できるシグネチャ」として定義
- 「信頼できるシグネチャ」のうち、1つでも異なるものがあれば別ノードとして扱う
この改善により、下記のようなケースにおいて正しくノードを分離できるようになりました。
- シリアル番号は異なるが、MAC アドレスが同じ (前述したよくある例)
- シリアル番号は同じだが、フットプリントや SNMP エンジン ID が異なる
- かなり稀ですが、一部のマザーボードでシリアル番号が同じになる事例がありました
- こういった場合でも信頼できるシグネチャが複数取得できていれば正しく分離が可能です

本リリース後の注意点
本リリース後に行われるスキャンにおいて、既存ネットワークでは意図しない管理ノードとの集約が行われる可能性がございます。
もしそのような事象が発生してしまった場合は、下記事例を参考に管理ノード削除等の対応をしていただくようお願いいたします。
管理ノードが予期せず増殖してしまった
管理ノードの増殖(新規扱い)については最も可能性が高い事象となります。
多くの場合、今まで集約されてしまっていたノードが分離されたことによる増殖のため、動作としては仕様通りとなります。
ただし、環境によっては増殖前の管理ノードが以後更新されない、といったパターンも発生し得ます。
そういった際は、増殖前の管理ノードと増殖した管理ノードの両方をいったん削除するようお願いいたします。
そうすることで、次回スキャンから正しい管理ノードのみが新規登録されます。
想定されていない管理ノードへ集約されてしまった
本改善により元々集約されていた管理ノードから特定の IP アドレスが分離された結果、環境によっては更に別の管理ノードへ集約される場合がございます。
挙動としては仕様通りとなりますが、集約された管理ノードが想定されていないものであった場合、こちらも関係する管理ノード(元々のノード、集約されてしまったノード)を全て削除してから再スキャンするようお願いいたします。








