ディスカバリー は、レイヤー 2 として知られる、ネットワークデバイス間の物理接続を検出できます。

レイヤー 2 ディスカバリープロセス

ディスカバリー は複数のプローブを使用して、ネットワークアダプターとそのレイヤー 2 接続に関する情報を収集します。次の図は、ネットワークディスカバリーのためにディスカバリーが起動するプローブ (レイヤー 2 ディスカバリーに使用されているものを含む) を示しています。
レイヤー 2 プローブ

たとえば、ディスカバリー がネットワーク内でスイッチを検出すると、SNMP - Switch - Vlan プローブと SNMP - Network - ARPTable プローブがトリガーされます。ディスカバリー が検出したすべての Vlan について、さまざまなスイッチプローブがトリガーされます。スイッチにルーティング機能がある場合、ディスカバリーSNMP - Routingプローブをトリガーし、ネットワークアダプター [cmdb_ci_network_adapter] テーブルのネットワークアダプター情報を収集します。ディスカバリー がサーバーを検出した場合は、そのオペレーティングシステムに対して適切なアドレス解決プロトコル (ARP) プローブがトリガーされます。ディスカバリー はまた、ディスカバリー でデフォルトで使用可能なNetwork SwitchおよびNetwork Routerパターンなど、パターンの使用もサポートしています。詳細については、「ルーターとスイッチの検出」を参照してください。

ネットワークデバイスのディスカバリーの間、ディスカバリー はルーターインターフェイス [dscy_router_interface] テーブルとスイッチポート [dscy_switchport] テーブルにレコードを作成します。この情報には、そのデバイスのネットワークアダプター情報が含まれています。SNMP 対応デバイスの場合、ディスカバリー は探索フェーズ中にルーティングプローブから情報を収集します。次にレイヤー 2 プロトコルキャッシュプローブが実行され、デバイスから近接データを収集します。

近接データの取得

ディスカバリー がデバイス上のプローブからネットワーク情報を収集する際、SNMP レイヤー 2 プロトコルキャッシュは CDP と LLDP を介して近接デバイスを特定します。このプローブは、スイッチ間のレイヤー 2 接続を含む、デバイス近接 [discovery_device_neighbors] テーブルを更新します。このデバイスの近接部分は、インスタンスに対してまだ認識されていない場合があります。近接部分のインターフェイスは、ディスカバリー が最終的に関係の近接側を検出するまで、レコードに解決されません。ディスカバリー が近接デバイス上で実行されている場合、ディスカバリー は元のレポートデバイスの近接部分のインターフェイスの情報を完成させます。

ディスカバリー は、ネットワークデバイス上の次のキャッシュから近接データを取得できます。

レイヤー 2 ディスカバリーの仕組み

デバイスのディスカバリーが完了すると、デバイス [discovery_device_history] テーブルでサービスディスカバリー - デバイスの完了ビジネスルールが実行されます。このビジネスルールはさまざまなテーブルからの情報とともに複数の戦略を使用して、CMDB 内の Connects to:Connected by の関係を作成します。次のものの間に関係を作成できます。
  • サーバーとスイッチ
  • 2 つのスイッチ
  • デバイスと別のデバイスのポート
  • 2 つのデバイスのポート
次の例では、ディスカバリー は AIX を実行しているサーバーを検出し、ネットワーク上で 2 つの IP スイッチを見つけることができました。次の関係が作成されました。
  • AIX サーバーと 2 つの IP スイッチ A および B の間の Connects to の関係
  • AIX サーバーとその独自ネットワークアダプターの間の参照
  • 2 つの IP スイッチ上のアダプターの間のConnects toの関係 (下図には示されていません)
  • AIX サーバーのネットワークアダプターと IP スイッチ A のスイッチポートの間 (赤色でハイライト表示した箇所) のConnects toの関係。この種の関係はデフォルトで作成されます。

レイヤー 2 の関係

これらの関係を表示するには、サーバーの依存関係ビューを開きます。2 つの IP スイッチ間の関係を表示するには、いずれかのスイッチから依存関係ビューを開き、マップ設定で [依存関係タイプ] に [物理的ネットワーク接続] オプションを選択します。

レイヤー 2 の接続戦略

レイヤー 2 ディスカバリーでは次の戦略を使用して、ネットワーク内のデバイス間の関係を作成します。
PhysicalHostConnectionStrategy
この戦略では、検出されたネットワークデバイス以外のサーバーとネットワークデバイスの間の接続が作成されます。この戦略では、スイッチの転送テーブル内のポートに単一の MAC アドレスがある場合にのみ、レイヤー 2 接続を作成できます。ポートに複数の MAC アドレスがある場合、ディスカバリーはサーバーとスイッチの間の接続を作成しません。

スイッチのポートが特定された場合、ディスカバリーはサーバーアダプターとスイッチポートの間に [Connects to::Connected by] の関係を作成します。そうでない場合、ディスカバリーはサーバーアダプターとスイッチ自体の間に [Connects to::Connected by] の関係を作成します。

VMLayer2ConnectionStrategy
この戦略では、VM とネットワークデバイスの間の接続が作成されます。例外的な MAC アドレスの数が非常に少ない (3 未満で、ESX サーバーおよびその VM のすべての MAC アドレスの 15% 未満である) 場合、ディスカバリーはレイヤー 2 接続を作成します。
NetworkDeviceLayer2ConnnectionStrategy
この戦略では、ネットワークデバイスとその近接物の間の接続が作成されます。近接アドレス、近接インターフェイス、またはその両方を持つ単一の近接物が存在する場合、ディスカバリーはレイヤー 2 の接続を作成します。近接インターフェイスが存在する場合、ディスカバリーは、元のインターフェイスと近接インターフェイスの間に Connects to::Connected byの関係を作成します。そうでない場合、ディスカバリーは、元のインターフェイスと近接アドレスを持つスイッチの間に Connects to::Connected by の関係を作成します。
SpanningTreeLayer2ConnectionStrategy
この戦略では、ネットワークデバイスと、スパニングツリー内にあるネットワークデバイスの親との間に接続が作成されます。
JavaScriptLayer2ConnectionStrategy
この戦略では、実装が空の Javascript 関数が呼び出されます。これにより、追加の戦略の作成が可能になります。

レイヤー 2 ディスカバリーのアドレス解決プロトコル (ARP)

アドレス解決プロトコル (ARP) のプローブは、コンピューターまたはネットワークデバイスの IP アドレスを MAC アドレスにマップします。これらのプローブはネットワークインフラストラクチャアイテム [dscy_net_base] テーブルから CI の IP アドレスと MAC アドレスを取得します。Linux コンピューターやネットワークデバイスなどの SNMP をサポートするデバイスは、次の 2 種類のアドレス情報をキャッシュします。
  • 静的:手動で追加されたアドレス解決
  • 動的:以前の成功した ARP 解決によってキャッシュに追加されたハードウェア名と IP アドレスのペア
ARP テーブル ディスカバリー が完了すると、すべての静的および動的なテーブルエントリーが SNMP を介してデバイスから収集されます。新しい ARP エントリーが利用可能な場合は、ネットワーク ARP テーブル [discovery_net_arp_table] に追加されます。以前に検出された ARP エントリーがデバイス ARP テーブルにキャッシュされなくなると、調整プロセスを使用して、対応するレコードが CMDB から削除されます。
注: ディスカバリー の実行後に新しい ARP エントリーが作成された場合、それらは次の ディスカバリー スケジュールまで検出されません。ディスカバリー の実行後に ARP エントリーがデバイスから削除された場合、再度 ディスカバリー が実行されるまで CMDB ARP テーブルは更新されません。
ディスカバリー には、IP および MAC アドレスの解決情報を抽出するための次のプローブがあります。
プローブ ECC キュートピック コマンド 説明
Linux - ネットワーク ARP テーブル SSHCommand sh ${file:linux_arp.sh}

これはスクリプトファイルを実行し、net-tools コマンド (arp -n) を最初に試行します。これに失敗すると、iproute2 コマンド (ip 近接物) が試行されます。

Linux サーバー上の ARP テーブルからネットワーク情報を取得する SSH コマンドプローブ
Solaris - ネットワーク ARP テーブル SSHCommand arp -an Solaris サーバー上の ARP テーブルからネットワーク情報を取得する SSH コマンドプローブ
Windows - ネットワーク ARP テーブル PowerShell arp-a Windows サーバー上の ARP テーブルからネットワーク情報を取得する Powershell プローブ
SNMP - ネットワーク - ArpTable SNMP テーブル

SNMP プローブは最初に OID iso.org.dod.internet.mgmt.mib-2.ip.ipNetToMediaTable ipNetToMediaPhysAddress,ipNetToMediaNetAddress を使用します。

プローブが結果を返すことに失敗すると、OID iso.org.dod.internet.mgmt.mib-2.ip.ipNetToPhysicalTable ipNetToPhysicalNetAddress,ipNetToPhysicalPhysAddress が使用されます。

スイッチまたはルーター上の ARP テーブルから情報を収集する SNMP プローブ

SNMP スイッチプローブ

これらのプローブは、ポートの選択、転送テーブル、スパニングツリープロトコルの使用など、ネットワークスイッチを介して接続されている VLAN からのブリッジ情報を返します。

SNMP - スイッチ - BridgePortTable
このプローブは、ネットワークセグメント間のブリッジを作成するために使用されるスイッチからすべてのポートを返します。
表 : 1. 返されるブリッジデータ
テーブル スイッチブリッジポートテーブル [discovery_switch_bridge_port_table]。このテーブルは、discovery_switch_fwd_table のポート番号とインターフェイスインデックスのマッピングに使用されます。
OID iso.org.dod.internet.mgmt.mib-2.dot1dBridge.dot1dBase.dot1dBasePortTable dot1dBasePort,dot1dBasePortIfIndex
入力されるフィールド
  • cmdb_ci
  • port
  • interface_index
SNMP - スイッチ - SpanningTreeTable
このプローブは、スイッチによってブリッジされる任意の 2 つのネットワークノード間のアクティブパスを返します。
表 : 2. 返されるスパニングツリーデータ
テーブル スイッチスパニングツリーテーブル [discovery_switch_spanning_tree_table]。このテーブルはスイッチ間のレイヤー 2 接続の検索に使用されます。
OID iso.org.dod.internet.mgmt.mib-2.dot1dBridge.dot1dStp.dot1dStpPortTable dot1dStpPort,dot1dStpPortState,dot1dStpPortEnable,dot1dStpPortDesignatedRoot,dot1dStpPortDesignatedBridge
入力されるフィールド
  • cmdb_ci
  • port
  • port_state
  • port_enable
  • designated_root
  • designated_bridge_mac
SNMP - スイッチ - ForwardingTable

このプローブはスイッチの転送テーブルから情報を返します。

表 : 3. 返される転送テーブルデータ
テーブル スイッチ転送テーブル [discovery_switch_fwd_table]。これはスイッチの転送テーブルです。
OID 次の OID が DiscoveryVlanSwitchProcessor スクリプトインクルードによって、必要に応じて作成されます。
  • Cisco 以外
    • Q-BRIDGE MIBoid_spec_list = 'table iso.org.dod.internet.mgmt.mib-2.dot1dBridge.qBridgeMIB.qBridgeMIBObjects.dot1qTp.dot1qTpFdbTable dot1qTpFdbAddress.' + vlanIndex + ',dot1qTpFdbPort.' + vlanIndex + ',dot1qTpFdbStatus.' + vlanIndex;
    • BRIDGE MIB:oid_spec_list = 'table iso.org.dod.internet.mgmt.mib-2.dot1dBridge.dot1dTp.dot1dTpFdbTable dot1dTpFdbAddress,dot1dTpFdbPort,dot1dTpFdbStatus’;
  • Cisco BRIDGE MIBoid_spec_list = 'table iso.org.dod.internet.mgmt.mib-2.dot1dBridge.dot1dTp.dot1dTpFdbTable dot1dTpFdbAddress,dot1dTpFdbPort,dot1dTpFdbStatus’;
呼び出される追加のプローブ SSH プローブ Switch - MAC Table は、追加のレイヤー 2 データの入力のために DiscoveryVlanSwitchProcessor スクリプトインクルードによってトリガーされることがあります。複数の VLAN でディスカバリーを実行した後、レイヤー 2 データが見つからない場合は、Switch - MAC Table プローブのトリガーを有効にして、ディスカバリーを再度実行する必要があります。

これを行うには、glide.discovery.sensors.forwardingtable.ssh のプロパティをシステムプロパティ [sys_properties] テーブルに追加します。プロパティの値を [true] に設定します。デフォルトでは、このプロパティは false です。

コマンド

show mac address-table

入力されるフィールド
  • cmdb_ci
  • vlan_id
  • port
  • status
  • mac_address (ネットワークインフラストラクチャアイテム [discovery_net_base] テーブルの cmdb_ci フィールドから)
SNMP - スイッチ - Vlan

このプローブはネットワークスイッチとその OID から VLAN ID を返します。


iso.org.dod.internet.private.enterprises.cisco.ciscoMgmt.ciscoVtpMIB.vtpMIBObjects.vlanInfo.vtpVlanTable vtpVlanState

iso.org.dod.internet.private.enterprises.cisco.ciscoMgmt.ciscoVlanMembershipMIB.ciscoVlanMembershipMIBObjects.vmMembership.vmMembershipSummaryTable vmMembershipSummaryVlanIndex,vmMembershipSummaryMemberPorts,vmMembershipSummaryMember2kPorts

iso.org.dod.internet.private.enterprises.juniperMIB.jnxMibs.jnxExMibRoot.jnxExSwitching.jnxExVlan.jnxVlanMIBObjects.jnxExVlanTable jnxExVlanTag

iso.org.dod.internet.mgmt.mib-2.system.sysDescr

その他のスイッチタイプはサポートされていません。

ポートテーブル

次のポートテーブルはデバイスの水平ディスカバリー中に入力されます。
  • ネットワークアダプター [cmdb_ci_network_adapter]
  • スイッチポート [dscy_switchport]
  • ルーターインターフェイス [dscy_router_interface]
  • ロードバランサーインターフェイス [cmdb_ci_lb_interface]