Я хотел бы получить таблицы ARP от коммутатора к серверу syslog (Ubuntu 12.04 LTS). Я провел некоторое исследование, как это сделать, и я решил использовать SNMP. Я провел некоторое исследование, и я знаю, что мой сервер будет менеджером, тогда как коммутатор будет действовать как агент. Моя проблема заключается в том, что я не совсем уверен в том, как получить таблицы arp и связать их с базой данных mysql на моем сервере.
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 этого переключателя.
Мы используем инструмент под названием NetDB на Ubuntu, который очищает все наши маршрутизаторы и коммутаторы и помещает их в базу данных MySQL. Он запускает поиск по 12.04 LTS: