スイッチからsyslogサーバー(Ubuntu 12.04 LTS)へのARPテーブルを取得したいと思います。私はそれを行う方法についていくつか調査を行ったので、SNMPを使用することにしました。私はいくつかの調査を行いましたが、スイッチがエージェントとして機能するのに対して、サーバーがマネージャーになることを知っています。私の問題は、arpテーブルを取得し、それらをサーバーのmysqlデータベースに転送するプロセスがよくわからないことです。
SNMPを介してネットワークデバイスをポーリングし、そのMACアドレステーブルをSQLデータベースに保存できるソフトウェアソリューションがいくつかあります。一般的に、それらの機能には、質問で求めているものよりも多くのものが含まれています。
サーバーにソフトウェアをインストールする前に、ネットワークデバイスへの管理アクセス権、または少なくとも、問題のデバイスを照会する権限が必要であることに注意することが重要です。あなたまたはあなたのITサポート担当者は、許可SNMP文字列を使用してスイッチを構成するとともに、それが存在するサーバーIP /サブネットからのSNMPクエリを許可する必要があります。これらのデバイスの構成方法はベンダーに依存しており、質問の明らかな範囲を超えています。
Ubuntuで利用可能なこのようなツールの1つの例は、 Netdisco です。
Netdiscoは、Webサイトごとに、「ネットワークデバイスの構成情報と接続データを管理するソフトウェアパッケージです。つまり、SNMP経由で取得します。データは、スケーラビリティのためにSQLデータベースを使用して保存されます。 CDPやLLDPなどのレイヤー2トポロジプロトコルは、ネットワークトポロジの自動検出を提供します。 "
Ubuntuリポジトリからインストール可能なパッケージがあります(netdiso-common
、netdisco-backend
、およびnetdisco-frontend
)やや時代遅れです。 their site のソースから、より新しいバージョンをインストールできます。
別の例は IPPlan で、これはIPアドレス管理(IPAM)、DNSおよび回線管理に焦点を当てています。 IPPLANはucd-snmpパッケージとNMAPを介してポーリングし、さまざまなSQLデータベースのIPアドレスをMACアドレスにマッピングできます。
また、 Switchmap をご覧ください。
データをSQLに保存しませんが、CSVファイルを作成し、必要に応じてSQLデータベースに入力できます。
他にも多くのソリューションがあります(商用と無料の両方)。これらのソフトウェアパッケージのインストール、構成、および管理の直接的な経験があるため、これらについてのみ言及します。
MACアドレスはMIB .1.3.6.1.2.1.17.4.3.1.2
したがって、次のようなことができます。
snmpwalk -v2c -c <community> <SwitchIP> .1.3.6.1.2.1.17.4.3.1.2
これらの数値の後に、整数形式のMACアドレスの6ワードが続くダンプが取得されます。したがって、最後の6つの整数を取得し、それらを16進数に変換し、最後にデータベースに格納するのはあなた次第です。
応答は、スイッチがMACアドレスを「見る」ポートも示します。例:
iso.3.6.1.2.1.17.4.3.1.2.208.39.136.84.36.11 = INTEGER: 25
MACアドレス208.39.136.84.36.11(必要に応じて16進数に変換)がそのスイッチのポート25を介して到達可能であることを意味します。
Ubuntuで NetDB というツールを使用して、すべてのルーターとスイッチをスクレイピングし、MySQLデータベースに配置します。 12.04 LTSでfindを実行します: