Назад | Перейти на главную страницу

Найдите IP-адрес клиента, подключенного к VLAN от Cisco Catalyst 3600 по SNMP

Я хотел бы, конечно, использовать SNMP, список IP-адресов клиентов, подключенных к VLAN в Cisco Catalyst 3600.

Пока что у меня есть созданный мной псевдоалгоритм, который получает эти IP-адреса, но я не уверен, правильно ли это сделано:

1) Получать все IP-адреса от Catalyst (oid 1.3.6.1.2.1.4.20.1.2) Получаю что-то вроде:

IP-MIB::ipAdEntIfIndex.10.10.2.1 = INTEGER: 152

IP-MIB::ipAdEntIfIndex.10.10.2.251 = INTEGER: 152

IP-MIB::ipAdEntIfIndex.10.10.3.251 = INTEGER: 151 и так далее.

2) Получить ifIndex VLAN (oid 1.3.6.1.2.1.4.20.1.2.10.10.2.1.<IP_ADDRESS>) для конкретного IP-адреса из приведенного выше списка:

IP-MIB::ipAdEntIfIndex.10.10.2.1 = INTEGER: 152

IP-MIB::ipAdEntIfIndex.10.10.2.251 = INTEGER: 152

IP-MIB::ipAdEntIfIndex.10.10.3.251 = INTEGER: 151

3) Получить имя VLAN (oid 1.3.6.1.4.1.9.9.46.1.3.1.1.4.1.<IF_INDEX>) If_index заимствован из списка выше:

IP-MIB::ipAdEntNetMask.152 = No Such Instance currently exists at this OID

IP-MIB::ipAdEntNetMask.151 = No Such Instance currently exists at this OID

На третьем этапе у меня возникла эта проблема, этот экземпляр не может быть найден в OID. Это странно, потому что для примерно сорока IP-адресов я могу найти около 10 имён VLAN, к которым они подключены. А может я что-то не так делаю?

Мне также удалось получить новый алгоритм для поиска тех IP-адресов, подключенных к VLAN:

1) Получите значение индекса, которое однозначно идентифицирует интерфейс, к которому применима эта запись (oid: 1.3.6.1.2.1.4.20.1.2)

Пример вывода:

IP-MIB::ipAdEntIfIndex.10.10.2.1 = INTEGER: 152
IP-MIB::ipAdEntIfIndex.10.10.2.251 = INTEGER: 152
IP-MIB::ipAdEntIfIndex.10.10.3.250 = INTEGER: 151
IP-MIB::ipAdEntIfIndex.10.10.3.251 = INTEGER: 151
IP-MIB::ipAdEntIfIndex.10.100.0.1 = INTEGER: 312
IP-MIB::ipAdEntIfIndex.10.100.0.251 = INTEGER: 312

и так далее...

2) Получите имя интерфейсов на Catalyst 3600, используя указанный выше индекс (oid: 1.3.6.1.2.1.31.1.1.1.1.<INTERFACE_INDEX>)

Пример вывода (для index = 152):

IF-MIB::ifName.152 = STRING: Vl206

3) Извлеките IP-адрес из шага 1) для определенного индекса интерфейса. Например для индекса 152 это будут IP-адреса типа:

10.10.2.1

10.10.2.251

подключен к VLAN называется Vl206

Надеюсь, что у меня все получилось.