Використання SNMP для отримання таблиць ARP та mac-адреси з комутатора


33

Я хотів би отримати таблиці 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 були спрямовані на мій сервер.

Моя проблема полягає в тому, що я не знаю, де саме запустити команду або зберегти вихідний файл.


Привіт, додавання інформації в базу даних поза темою ... Супер Користувач - це гарне місце, щоб запитати, чи потрібна вам допомога щодо зміни бази даних. Якщо ви не проти видалити цю частину питання, ми можемо її знову відкрити.
Майк Пеннінгтон

Я змінив своє запитання
sosytee

Що ви маєте на увазі під "розміщенням таблиць ARP на сервері"?
Майк Пеннінгтон

Таблиці Arp будуть генеровані комутатором, але я хочу, щоб їх переглядали з сервера
sosytee

Що робити, якщо ми сказали вам, як їх помістити в текстовий файл ... це нормально?
Майк Пеннінгтон

Відповіді:


38

Здається, є невелика плутанина ... ви запитуєте про таблиці ARP, і ви використовуєте OID .1.3.6.1.2.1.17.4.3.1.2; однак, що OID насправді призначений для таблиці mac-адреси в комутаторі.

Я припускаю, що ви знаєте, як увійти на свій сервер Ubuntu, і NET-SNMPце встановлено ... Будь ласка, повідомте мені, чи потрібні вам покажчики для цього (див. Це питання для підказки щодо завантаження MIB в Linux ). Деякі з моїх прикладів припускають, що у вас на сервері завантажені MIB-файли ... вам просто потрібно видалити -m <mib-name>параметр з команд, якщо у вас MIB не завантажуються локально.

Я заздалегідь прошу вибачення за тривалість цієї відповіді ... Я б хотів, щоб опитування з SNMP було не таким складним ...

Опитування таблиці mac-адрес:

Якщо ви дійсно хочете таблицю mac-адреси з комутатора, то пам’ятайте, що ви повинні змінити рядок спільноти, з якою ви опитуєтесь ... це має бути у формі <commity@vlan>... кожен vlan, який ви опитуєте, потребує іншої спільноти.

У моєму прикладі нижче, перемикач на 172.16.1.210 налаштований з snmp-server community public ro, і я опитую таблицю mac-адреси у vlan-10 за допомогою dot1dTpFdbPort від BRIDGE-MIB .

[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public@10 -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
[mpenning@tsunami ~]$

У висновку вище 52 - це значення dot1dBasePort, яке є числом, яке MIB використовує для індексації таблиці dot1dTp. Щоб перевести це в звичайне ім'я інтерфейсу, ви повинні зіставити це з ifName ... BRIDGE-MIB робить це з dot1dBasePortIfIndex ...

[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public@10 -m BRIDGE-MIB 172.16.1.210 \
  .1.3.6.1.2.1.17.1.4.1.2
BRIDGE-MIB::dot1dBasePortIfIndex.52 = INTEGER: 10048
[mpenning@tsunami ~]$
[mpenning@tsunami ~]$ snmpget -v 2c -c public 172.16.1.210 ifName.10048
IF-MIB::ifName.10048 = STRING: Fa0/48
[mpenning@tsunami ~]$

Таким чином, ми знаємо, що всі mac-адреси на цьому комутаторі були вивчені через FastEthernet 0/48 в vlan-10.

Опитування активних власників:

Якщо ви не впевнені, які влани опитувати на комутаторі, ви можете отримати цю інформацію .1.3.6.1.4.1.9.9.46.1.3.1.1.2, яка є vtpVlanState в CISCO-VTP-MIB ...

[mpenning@tsunami ~]$ 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
[mpenning@tsunami ~]$

Майте на увазі, що Влани 1002-1005 є внутрішніми власниками Cisco, які ви не повинні опитувати.

Опитування таблиці ARP

Якщо ви дійсно хочете таблицю ARP з комутатора, тоді вам потрібно запитати на atPhysAddress ...

[mpenning@tsunami ~]$ 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 "
[mpenning@tsunami ~]$

Збереження виводу команди у файл

Ми заглиблюємося в області, які виходять за рамки цього веб-сайту, але щоб зберегти таблицю ARP, звернену до файлу /tmp/S01_ARP.txt, ви додасте > /tmp/S01_ARP.txtв кінці snmpbulkwalkвище ...

[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public -OXsq  172.16.1.210 \
      .1.3.6.1.2.1.3.1.1.2 > /tmp/S01_ARP.txt
[mpenning@tsunami ~]$ 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 "
[mpenning@tsunami ~]$

Як ви бачите вище, ви можете використовувати catв Linux для отримання всього виводу з текстового файлу. ПРИМІТКА. Деякі дистрибутиви Linux (ах ... CentOS) очищають /tmpкаталог щомісяця. Ви повинні використовувати свій HOMEкаталог у Linux, щоб зберегти файл. Я не пам'ятаю прибирання Ubuntu /tmp, але щоб бути безпечним, я б уникав зберігати речі там.

Різні нотатки про SNMP ...

Якщо ви не завантажили всі MIB-адреси Cisco на свій апарат Ubuntu, вам слід уникати використання -m <mib-name>прапорів у snmpbulkwalkкомандах. Завантаження MIB дозволяє опитуватись із іменем OID замість довгого пунктирного числа ...


Довідкова інформація:

Я включаю кілька команд показу від комутатора, якщо у вас є питання щодо CLI для команд SNMP вище ...

S01#sh ver | i IOS
Cisco IOS Software, C3560 Software (C3560-IPBASEK9-M), Version 12.2(37)SE, RELEASE SOFTWARE (fc2)
S01#
S01#sh mac address-table dynamic
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
  10    0006.53fe.39e0    DYNAMIC     Fa0/48
  10    001d.a1cd.5346    DYNAMIC     Fa0/48
  10    0030.1bbc.a7d7    DYNAMIC     Fa0/48
  10    0080.c800.0000    DYNAMIC     Fa0/48
  10    38ea.a76d.2e8e    DYNAMIC     Fa0/48
  10    80ee.732f.0b40    DYNAMIC     Fa0/48
Total Mac Addresses for this criterion: 6
S01#
S01#sh arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  172.16.1.210            -   0018.ba51.5b41  ARPA   Vlan10
Internet  172.16.1.200            0   0006.53fe.39e0  ARPA   Vlan10
Internet  172.16.1.32             0   bc51.fe50.16f8  ARPA   Vlan10
Internet  172.16.1.25             0   38ea.a76d.2e8e  ARPA   Vlan10
Internet  172.16.1.5              1   80ee.732f.0b40  ARPA   Vlan10
S01#

відповідь була корисною, я хотів би дізнатися значення -OXsq безпосередньо перед IP-адресою
sosytee

1
перевірте, man snmpcmdчи перебуваєте ви на хості Linux і чи встановлено Net-SNMP. В іншому випадку ви можете знайти цю інформацію тут: net-snmp.sourceforge.net/docs/man/snmpcmd.html
Джон Дженсен

@MikePennington: Чи можете ви коментувати OIDs ipNetToMediaPhysAddress та ifPhysAddress? Зокрема, семантична різниця між цими таблицями та atPhysAddress?
mormegil

На додаток до вищезазначеного, ви можете встановити netDB на цьому сервері Ubuntu та отримати більшу видимість у таблицях ARP декількох пристроїв. netdbtracking.sourceforge.net
Kunal
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.