Получение MAC-адресов на порту уровня 3 через SNMP?

Я работаю над сценарием для сопоставления серверов, подключенных к нашим коммутаторам и маршрутизаторам. Я работаю над отображением портов второго уровня, используя алгоритм, указанный в http://www.cisco.com/en/US/tech/tk648/tk362/technologies_tech_note09186a00801c9199.shtml, чтобы получить MAC-адреса.

Порты уровня 3 — другое дело. Это порты, которые не отображаются в команде «sh vlan» на маршрутизаторе/коммутаторе уровня 3. В идеале я хотел бы использовать MAC-адреса, присутствующие в этих портах, лежащие в основе соединения уровня 3, поскольку они немного более «постоянны», чем IP-адрес — они отображаются в таблице MAC-адресов на устройстве. Однако тот факт, что эти порты не имеют связанной VLAN, а получение MAC-адресов через SNMP индексируется VLAN, делает это довольно сложным.

Я бился об этом около недели или около того, но ничто из того, что я пытаюсь/нахожу, не позволяет мне получить MAC-адреса, отличные от VLAN. Можно ли таким образом сопоставить порты третьего уровня, или мне нужно будет использовать сопоставление уровня 3 (IP-адрес)?


person Tbdanny    schedule 31.01.2012    source источник


Ответы (1)


Если вы подключены к устройству через уровень 2, вы можете просто использовать ping на адресе уровня 3, чтобы сгенерировать поиск arp, а затем посмотреть в кеше arp для Mac... Это будет работать для любого порта уровня 3, даже логические порты, такие как версия Portchannels уровня 3. Это, наверное, самый простой способ.

Если вы хотите быть на 100% в сфере SNMP:

Чтобы получить таблицу интерфейсов для этого устройства, перейдите по приведенному ниже oid. Он вернет список всех интерфейсов на этом устройстве. Это должно работать на любом устройстве (даже на сервере), на котором работает агент SNMP:

.1.3.6.1.2.1.2.2.1.2

Это даст вам список номеров интерфейсов (последняя цифра в OID) и описания интерфейсов. Он работает для SVI и физических интерфейсов, не уверен в логических типах, отличных от SVI.

Затем для каждого интерфейса, чтобы получить его mac (где x — значение в таблице интерфейсов):

.1.3.6.1.2.1.2.2.1.6.x

Это дает вам Mac. (Ведущие 0 могут быть усечены на некоторых устройствах.) Однако вам потребуется по крайней мере 1 адрес уровня 3 на каждом устройстве, чтобы выполнить snmpwalk и получить.

Если вам просто нужны все маки, то идите по этому oid:

.1.3.6.1.2.1.2.2.1.6

Я использую этот подход, чтобы сделать что-то подобное в большой сети.

person Niall Byrne    schedule 04.02.2012
comment
К вашему сведению, это не дает вам подключенный MAC-адрес. Это дает вам mac-адрес интерфейса. - person ftdysa; 10.11.2016