ローカルネットワークスキャンの実行例

ローカルネットワークスキャンの仕組み では、ksocketがどのようにしてネットワーク内の機器を探すのかを解説しています。 本記事では、あるネットワーク環境を例として、ksocketをインストールして実行するとどのようにスキャン処理が行われるのか、ステップごとに詳しく追ってみましょう。

例とするネットワーク環境

今回は、以下のような社内ネットワークが存在すると仮定します。

f:id:kompiracloud:20181203163517p:plain

  • /24 のセグメントが4つ存在する
  • ルータ R1 はSNMP応答が有効な設定になっている
  • ルータ R2 はSNMP応答が無効な設定になっている
  • 192.168.1.0/24 セグメント内のPC (192.168.1.10)にksocketをインストール

この状態でksocketでスキャンを実行すると、どのような結果となるかを見ていきましょう。
スキャンにはいくつかのオプションを指定することができるのですが、ここではどのオプションも指定せず、デフォルト設定で動作させるものと仮定します。

スキャンの実行

スキャン候補IPアドレスの取得

まず初めに、ksocketは以下からIPアドレスの取得を試みます。

  • ksocket動作マシンのデフォルトゲートウェイ
  • ksocket動作マシンのARPキャッシュ

「ksocket動作マシンのデフォルトゲートウェイ」は、今回のネットワーク例の場合 192.168.1.1 です。
「ksocket動作マシンのARPキャッシュ」は、ksocket動作マシンや 192.168.1.0/24 セグメントのネットワーク設定によってどの程度の情報が取得できるかが変わります。場合によっては、 192.168.1.0/24 以下に存在するすべてのマシンIPを取得できるでしょう。

この時点で、ksocketは以下の緑色で示した範囲のIPアドレスを取得していることになります。

f:id:kompiracloud:20181203163533p:plain

新規IPアドレスの検索

ksocketは、前ステップで見つかったIPアドレスの中から、さらに別のIPアドレスを探します。 各IPアドレスより、SSH/WinRM/SNMP を用いて、以下の情報取得を行います。

  • ARP キャッシュテーブル
  • NextHop
  • 機器に割り当てられたIPアドレス一覧

今回のネットワーク例の場合、ルータR1 のSNMP応答が有効な設定になっているので、ここからARPキャッシュテーブルとNextHopが取得できます。
ARPキャッシュテーブルからは 192.168.2.0/24192.168.3.0/24 の中のIPアドレスリストが、NextHopからは 192.168.0.1 が取得できるでしょう。
機器に割り当てられたIPアドレス一覧は、今回の例だと 192.168.0.2, 192.168.2.1, 192.168.3.1 が取得できます。

これにより、図の左側の範囲のIPアドレスを見つけることができました。

f:id:kompiracloud:20181203163548p:plain

新規IPアドレスの検索 (その2)

ksocketは、前項の「新規IPアドレスの検索」処理を、新しいIPアドレスが見つけられなくなるまで繰り返し行います。 つまり、前項で新しく見つかった各IPアドレスより、SSH/WinRM/SNMPを用いて、再度以下の情報取得を行います。

  • ARP キャッシュテーブル
  • NextHop
  • 機器に割り当てられたIPアドレス一覧

しかし、今回のネットワーク例の場合、ルータ R2 のSNMP応答は無効となっています。 もし有効であれば ARPキャッシュテーブルから 10.10.0.0/24 のIPアドレスが取得できるのですが、無効の場合はここで探索は終了することになります。
このようにして見つかった各IPに対して、ksocketは本当にIPアドレスが存在するかどうかを確認し、SSH/WinRM/SNMPでアクセスできる場合は構成情報を取得します。


明示的な探索範囲の追加

上述の、どのオプションも指定しない場合でのスキャンでは、 10.10.0.0/24 までは見つけ出すことができませんでした。
これをスキャンできるようにするためには、「追加起点アドレス」 というスキャンオプションを使用します。
追加起点アドレス に設定されたIPアドレスは、「スキャン候補IPアドレスの取得」ステップで発見されたIPアドレスと同じように扱われ、結果としてスキャンされる対象となります。
今回のネットワーク例の場合、追加起点アドレス = 10.10.0.0/24 と入力することで、以下の赤色で示した部分が探索対象に追加されます。

f:id:kompiracloud:20181203163607p:plain