Я хотел бы получить таблицы ARP от коммутатора к серверу системного журнала (Ubuntu 12.04 LTS). Я провел некоторое исследование о том, как это сделать, и я решил использовать SNMP. Я провел некоторые исследования и знаю, что мой сервер будет управляющим, а коммутатор будет действовать как агент. Моя проблема в том, что я не совсем уверен в процессе получения таблиц arp и их направления в базу данных mysql на моем сервере.
Мы используем инструмент под названием NetDB в Ubuntu, который очищает все наши маршрутизаторы и коммутаторы и помещает их в базу данных MySQL. Он работает найти 12.04 LTS:
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 целых чисел, преобразовать их в шестнадцатеричные и, наконец, сохранить их в своей базе данных.
Ответ также скажет вам, в каком порту коммутатор «видит» 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 (при желании преобразовать его в шестнадцатеричный) доступен через порт 25 этого коммутатора.
Существует ряд программных решений, которые могут опрашивать сетевые устройства через SNMP и сохранять их таблицы MAC-адресов в базе данных SQL. Как правило, их функциональность включает в себя гораздо больше, чем то, что вы просите в своем вопросе.
Перед установкой программного обеспечения на сервер важно отметить, что у вас должен быть административный доступ к сетевым устройствам или, по крайней мере, разрешение на запрос соответствующих устройств. Либо вам, либо вашим специалистам по ИТ-поддержке потребуется настроить коммутаторы с разрешающей строкой SNMP, а также разрешить запросы SNMP от IP-адреса / подсети сервера, на котором он находится. Способ настройки этих устройств зависит от поставщика и выходит за рамки очевидного вопроса.
Одним из примеров такого инструмента, доступного для Ubuntu, является Netdisco .
Согласно их веб-сайту, Netdisco - это программный пакет, который поддерживает «Информация о конфигурации и данные о подключении для сетевых устройств [то есть] ... извлекаются через SNMP. Данные хранятся с использованием базы данных SQL для масштабируемости и Скорость. Протоколы топологии уровня 2, такие как CDP и LLDP, обеспечивают автоматическое обнаружение топологии сети. "
В то время как есть пакет, доступный для установки из репозиториев Ubuntu (см. netdiso-common
, netdisco-backend
и netdisco-frontend
) он несколько устарел. Более свежую версию можно установить из источника на на их сайте .
Другим примером может быть IPPlan , который фокусируется на управлении IP-адресами (IPAM), DNS и управлении каналами. IPPLAN опрашивает через пакет ucd-snmp и NMAP и может сопоставлять IP-адреса с MAC-адресами в различных базах данных SQL.
Также, вы можете взглянуть на Switchmap .
Хотя он не хранит свои данные в SQL, он создает файлы CSV, которые затем можно вылить в базу данных SQL, если это необходимо.
Существует ряд других решений (как коммерческих, так и бесплатных). Я упоминаю об этом только потому, что у меня был прямой опыт установки, настройки и управления этими программными пакетами.