Использование SNMP для извлечения таблиц ARP и mac-address из коммутатора
Я хотел бы получить таблицы ARP с коммутатора на сервер syslog-ng, который был настроен на Ubuntu Server 12.04 LTS. Я прочитал о SNMP, и я знаю, что сервер будет действовать как менеджер и коммутатор в качестве агента. У меня есть информация о том, где находится MIB, и я должен использовать команду
snmpwalk -v2c -c <community> <SwitchIP> .1.3.6.1.2.1.17.4.3.1.2
Я хочу, чтобы результирующие таблицы arp были направлены на мой сервер.
Моя проблема в том, что я не знаю, где именно выполнить команду, или сохранить вывод в файл.
1 ответ
Кажется, есть немного путаницы ... вы спрашиваете о таблицах ARP, и используете OID .1.3.6.1.2.1.17.4.3.1.2
; однако, что OID действительно для таблицы mac-address в коммутаторе.
Я предполагаю, что вы знаете, как подключиться к вашему серверу Ubuntu и установить NET-SNMP
... пожалуйста, дайте мне знать, если вам нужны указатели для этого (см. этот вопрос для подсказок о загрузке MIB в Linux ). Некоторые из моих примеров предполагают, что у вас есть MIB, загруженные на ваш сервер ... вам просто нужно удалить параметр -m <mib-name>
в командах, если у вас нет загруженных MIB на местном уровне.
Я заранее извиняюсь за длину этого ответа ... Я хочу, чтобы опрос с помощью SNMP был не таким сложным ...
Опрос таблицы mac-address:
Если вам действительно нужна таблица mac-address от коммутатора, помните, что вам нужно изменить строку сообщества, которую вы опросили, ... она должна быть в виде <[email protected]>
... каждый опрос vlan требует другого сообщества.
В моем примере ниже переключатель 172.16.1.210 настроен с помощью snmp-server community public ro
, и я обрабатываю таблицу mac-address в vlan-10 с помощью dot1dTpFdbPort из BRIDGE-MIB .
[[email protected] ~]$ snmpbulkwalk -v 2c -c [email protected] -OXsq 172.16.1.210 \
.1.3.6.1.2.1.17.4.3.1.2
dot1dTpFdbPort[0:6:53:fe:39:e0] 52
dot1dTpFdbPort[0:1d:a1:cd:53:46] 52
dot1dTpFdbPort[0:30:1b:bc:a7:d7] 52
dot1dTpFdbPort[0:80:c8:0:0:0] 52
dot1dTpFdbPort[38:ea:a7:6d:2e:8e] 52
dot1dTpFdbPort[80:ee:73:2f:b:40] 52
[[email protected] ~]$
В вышеприведенном выводе 52 является значением dot1dBasePort
, который является номером, который MIB использует для индексации таблицы dot1dTp. Чтобы перевести это в обычное имя интерфейса, вы должны сопоставить это с именем ifName ... BRIDGE-MIB делает это с dot1dBasePortIfIndex ...
[[email protected] ~]$ snmpbulkwalk -v 2c -c [email protected] -m BRIDGE-MIB 172.16.1.210 \
.1.3.6.1.2.1.17.1.4.1.2
BRIDGE-MIB::dot1dBasePortIfIndex.52 = INTEGER: 10048
[[email protected] ~]$
[[email protected] ~]$ snmpget -v 2c -c public 172.16.1.210 ifName.10048
IF-MIB::ifName.10048 = STRING: Fa0/48
[[email protected] ~]$
Таким образом, мы знаем, что все mac-адреса на этом коммутаторе были изучены через FastEthernet 0/48 в vlan-10.
Опрос активных Vlans:
Если вы не уверены, какие vlans для опроса на коммутаторе, вы можете получить эту информацию из .1.3.6.1.4.1.9.9.46.1.3.1.1.2
, которая vtpVlanState в CISCO-VTP-MIB ...
[[email protected] ~]$ snmpbulkwalk -v 2c -c public -OXsq -m CISCO-VTP-MIB 172.16.1.210 \
.1.3.6.1.4.1.9.9.46.1.3.1.1.2
vtpVlanState[1][1] operational
vtpVlanState[1][10] operational
vtpVlanState[1][1002] operational
vtpVlanState[1][1003] operational
vtpVlanState[1][1004] operational
vtpVlanState[1][1005] operational
[[email protected] ~]$
Имейте в виду, что Vlans 1002-1005 внутренние Cisco Vlans , которые вы не должны опросить.
Опрос таблицы ARP
Если вам действительно нужна таблица ARP от коммутатора, вам необходимо опросить atPhysAddress ...
[[email protected] ~]$ snmpbulkwalk -v 2c -c public -OXsq 172.16.1.210 \
.1.3.6.1.2.1.3.1.1.2
atPhysAddress[10][1.172.16.1.5] "80 EE 73 2F 0B 40 "
atPhysAddress[10][1.172.16.1.25] "38 EA A7 6D 2E 8E "
atPhysAddress[10][1.172.16.1.32] "BC 51 FE 50 16 F8 "
atPhysAddress[10][1.172.16.1.200] "00 06 53 FE 39 E0 "
atPhysAddress[10][1.172.16.1.210] "00 18 BA 51 5B 41 "
[[email protected] ~]$
Сохранение вывода команды в файл
Мы разбираемся в областях, выходящих за пределы обычной области этого сайта, но чтобы сохранить таблицу ARP выше в файле в /tmp/S01_ARP.txt
, вы добавите >/tmp/S01_ARP.txt в конец > /tmp/S01_ARP.txt
выше ...
snmpbulkwalk
Как вы видите выше, вы можете использовать [[email protected] ~]$ snmpbulkwalk -v 2c -c public -OXsq 172.16.1.210 \
.1.3.6.1.2.1.3.1.1.2 > /tmp/S01_ARP.txt
[[email protected] ~]$ cat /tmp/S01_ARP.txt
atPhysAddress[10][1.172.16.1.5] "80 EE 73 2F 0B 40 "
atPhysAddress[10][1.172.16.1.25] "38 EA A7 6D 2E 8E "
atPhysAddress[10][1.172.16.1.32] "BC 51 FE 50 16 F8 "
atPhysAddress[10][1.172.16.1.200] "00 06 53 FE 39 E0 "
atPhysAddress[10][1.172.16.1.210] "00 18 BA 51 5B 41 "
[[email protected] ~]$
в linux для получения всего вывода из текстового файла. ПРИМЕЧАНИЕ. Некоторые дистрибутивы Linux (ах ... CentOS) ежемесячно очищают каталог cat
. Вы должны использовать свой /tmp
каталог в linux для хранения файла. Я не помню, как Ubuntu очищал HOME
, но чтобы быть в безопасности, я бы избегал хранить там вещи.
Разное о SNMP ...
Если вы не загрузили все MIB Cisco на свой компьютер Ubuntu, вам следует избегать использования флагов /tmp
в командах -m <mib-name>
, Загрузка MIB позволяет вам опросить имя OID вместо длинного точечного номера ...
Справочная информация:
Я включаю некоторые команды show от коммутатора, если у вас есть вопросы о CLI для команд SNMP выше ...
snmpbulkwalk