Я хотел бы, конечно, использовать 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
Надеюсь, что у меня все получилось.