ネットワークデバイスの検出

何が起こっているのかを詳しく調べなければ、ネットワークインターフェイスのリストなどのデバイスとそのプロパティのリストでネットワークをスキャンし、その後に監視システムでデータをキャプチャすることは、特別なコンピューターの魔法のように思えるかもしれません。 どのように機能するのか-カットの下で。





免責事項

著者には、ネットワーク管理に関連する専門的な教育がないため、おそらく不正確さがあり、言及されているすべてが言及されているわけではありません。

発見



デバイスを検出するには、つまり 選択したIPアドレスに何かがあるかどうかを判断するには、次の方法を適用できます。





データ収集



デバイスが検出されたら、デバイスに関する情報の収集に進むことができます。

ARPプロトコルを使用すると、ipからMACアドレスを取得できます。また、製造元からIPアドレスを取得できます(一部の機器ではアドレスの変更が許可されているため、この方法はあまり信頼できません)。 次に、 nmapユーティリティを使用できます。nmapユーティリティは、開いているポートをスキャンし、その指紋データベースをチェックして、使用されているオペレーティングシステム、バージョン、およびデバイスタイプに関する仮定行います。



nmapで使用されるデバイスタイプとOSの取得
 nmap -O -v 192.168.0.1 Starting Nmap 7.60 ( https://nmap.org ) at 2018-03-04 01:17 RTZ 2 (ceia) Initiating ARP Ping Scan at 01:17 Scanning 192.168.0.1 [1 port] Completed ARP Ping Scan at 01:17, 0.70s elapsed (1 total hosts) Initiating Parallel DNS resolution of 1 host. at 01:17 Completed Parallel DNS resolution of 1 host. at 01:17, 0.00s elapsed Initiating SYN Stealth Scan at 01:17 Scanning 192.168.0.1 [1000 ports] Discovered open port 80/tcp on 192.168.0.1 Discovered open port 49152/tcp on 192.168.0.1 Discovered open port 1900/tcp on 192.168.0.1 Completed SYN Stealth Scan at 01:17, 0.13s elapsed (1000 total ports) Initiating OS detection (try #1) against 192.168.0.1 Retrying OS detection (try #2) against 192.168.0.1 WARNING: OS didn't match until try #2 Nmap scan report for 192.168.0.1 Host is up (0.00s latency). Not shown: 997 closed ports PORT STATE SERVICE 80/tcp open http 1900/tcp open upnp 49152/tcp open unknown MAC Address: A0:F3:C1:35:21:58 (Tp-link Technologies) Device type: WAP Running: Linux 2.4.X OS CPE: cpe:/o:linux:linux_kernel:2.4.36 OS details: DD-WRT v24-sp1 (Linux 2.4.36) Network Distance: 1 hop
      
      





デバイスに関する詳細情報を取得するには、次のいずれかの方法が必要です。





Zabbixの例での動作



ご存じのように、 Zabbixはネットワーク上の新しいデバイスを個別に検出し、それらのパラメーターの一部を自動的にポーリングできます。 これはLow Level Discoveryと呼ばれます



デバイス検出は、上記の検出方法を組み合わせたネットワーク検出ルールによって定義され、デバイスが使用可能かどうか、および適用するテンプレートを決定します(デバイスの説明は通常調べられます)。 テンプレートには、デバイスから取得できるプロパティのリストと、新しいプロパティを検出および作成するためのタイマールールが含まれています。



SNMPの場合、このルールは次のようになります。ノード1.3.6.1.2.1.2.2.1.8



(検出ルール)のすべての子を反復処理し、検出された各要素( {#SNMPINDEX}



配置された番号)で指定された新しいメトリックを追加しますデータ要素のプロトタイプ、 1.3.6.1.2.1.2.2.1.10.{#SNMPINDEX}



および1.3.6.1.2.1.2.2.1.16.{#SNMPINDEX}



まだない場合)。 詳細はこちら



エージェントの場合、ルールは少し異なって見えます。例えば、 system.cpu.discovery



などのディスカバリー・プロパティーのいずれかをエージェントに要求し、jsonの形式でプロセッサーのリストを取得します



 [ {"NUMBER": 0, "STATUS": "online"}, {"NUMBER": 1, "STATUS": "online"} ]
      
      





そのようなメトリックがまだない場合は、各要素にsystem.cpu.load[{#CPU.NUMBER}]



追加します。 Zabbixエージェントを使用すると、要求可能な独自の要素( UserParameter



)を作成できるため、たとえば、特定のフォルダー内のファイルの検出やサイズの追跡など、実装が簡単です。 詳細はこちら



おわりに



ご覧のとおり、すべてが非常にシンプルで、魔法はありません。 デバイスを検出またはプロパティを取得する他の方法をまだ知っている場合は、それらを報告してください。



All Articles