LINUX.ORG.RU
решено ФорумAdmin

SNMP опрос свичей, поиск MAC, опознание транков

 ,


0

1

Имею кучку свичей HP Procurve 2848,3500

Хочу выяснить соответствие MAC=PORT на них. Делаю путем опроса SNMP

snmpwalk -v2c -c public switch1.mydomain 1.3.6.1.2.1.17.7.1.2.2.1.2 

В данном виде получаю кучку строк вида

SNMPv2-SMI::mib-2.17.7.1.2.2.1.2.2.0.27.120.236.125.187 = INTEGER: 36
SNMPv2-SMI::mib-2.17.7.1.2.2.1.2.2.0.29.96.154.226.97 = INTEGER: 6
SNMPv2-SMI::mib-2.17.7.1.2.2.1.2.2.0.30.11.7.132.102 = INTEGER: 30
SNMPv2-SMI::mib-2.17.7.1.2.2.1.2.2.0.30.11.234.50.104 = INTEGER: 49
SNMPv2-SMI::mib-2.17.7.1.2.2.1.2.2.0.30.11.234.209.106 = INTEGER: 49
SNMPv2-SMI::mib-2.17.7.1.2.2.1.2.2.0.30.11.234.225.144 = INTEGER: 49
SNMPv2-SMI::mib-2.17.7.1.2.2.1.2.2.0.30.103.80.144.161 = INTEGER: 292
SNMPv2-SMI::mib-2.17.7.1.2.2.1.2.2.0.31.41.235.36.67 = INTEGER: 49
SNMPv2-SMI::mib-2.17.7.1.2.2.1.2.2.0.33.90.221.183.59 = INTEGER: 49

После фильтрации (отброс ненужного, dec2hex, выделение порта)

snmpwalk -v2c -c public switch1.mydomain 1.3.6.1.2.1.17.7.1.2.2.1.2 | sed "s/\./ /g; s/SNMPv2-SMI::mib-2 17 7 1 2 2 1 2 //g ; s/ = INTEGER://g" | awk '{printf "MAC:%02X%02X%02X%02X%02X%02X Port %02d\n",$2,$3,$4,$5,$6,$7,$8}'

Получаю вот такой список

MAC:001B78EC7DBB Port 36
MAC:001D609AE261 Port 06
MAC:001E0B078466 Port 30
MAC:001E0BEA3268 Port 49
MAC:001E0BEAD16A Port 49
MAC:001E0BEAE190 Port 49
MAC:001E675090A1 Port 292
MAC:001F29EB2443 Port 49
MAC:00215ADDB73B Port 49

Свич имеет 48 обычных порта, + 4 10GbE для связи с другими свичами (не знаю как называются они правильно 2x10GbE-GEN, 2x10GbE-CX4 )

Все бы ничего, пока порты идут >= 48. Когда порты идут >48 (то это как раз эти 4 дополнительных (в свиче они обозначаются как А1-А4)). И если продолжать обычную нумерацию то 49,50,51,51. С этим тоже проблем нет, если порт >48, то МАС на другом свиче, идем туда и ищем пока порт не будет <=48.

А вот порты 291, 294, 297.. и прочие, опытным путем установлено,что это транки (Trk1..TrkN).

Но как понять какой именно транк, на каких портах и с какой нумерации они вообще идут - загадка.

Задача решилась. нашел соответствие

snmpwalk -v2c -c public switch1.domain .iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifDescr | sed 's/IF-MIB::ifDescr.//;s/STRING: //'


Последнее исправление: x09 (всего исправлений: 1)

в ifTable/ifXTable посмотреть

hizel ★★★★★
()

Сначала нужно получить индексы интерфейсов и их типы. для каждого индекса интерфейса есть его тип, а на приличных коммутаторах еще и ifspeed в виде суммы скоростей интерфейсов.

IF-MIB::ifType.897 = INTEGER: ieee8023adLag(161)

У меня например это первый транк.

vel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.