SNMP: интерфейс cisco GigabitEthernet недоступен? - PullRequest
0 голосов
/ 12 мая 2011


Я не могу запросить интерфейсы GigabitEthernet на коммутаторе cisco 2960.
Когда я выполню:

use Net::SNMP;
use Net::SNMP::Interfaces;
my $interfaces = Net::SNMP::Interfaces->new(Hostname => $hostname, Community => $community);
    my @inter = $interfaces->all_interfaces();

    my $it;

    for my $i (@inter) {
        my $it = $i->ifDescr();
        print $i->name()."\n";
    }

Я получаю вывод:

FastEthernet0 / 1
FastEthernet0 / 2
FastEthernet0 / 3 * +1010 * ...
FastEthernet0 / 23
FastEthernet0 / 24
GigabitEthernet0 / 1
GigabitEthernet0 / 2


Итак, до сих пор все в порядке.

Я получаю ifIndex интерфейса GigabitEthernet (например, GigabitEthernet0 / 2):

my $in = $interfaces->interface("GigabitEthernet0/2");
print "INDEX:".$in->index()."\n";

Возвращает:

INDEX:10102

Итак, я знаю ifIndex моего интерфейса.
Но мне нужно также получить VLAN, чтобы получить информацию о скорости, псевдониме, дуплексе, MAC-адресе, подключенном к этому интерфейсу ....

Здесь начинаются проблемы:

#Listing all VLANS
my $vmVlan = "1.3.6.1.4.1.9.9.68.1.2.2.1.2";
my $vlans = SnmpUtil->new($hostname, $community);
my %vl = $vlans->requeteTable($vmVlan);
foreach my $k (keys(%vl)) {
   print "Clef=$k Valeur=$vl{$k}\n";
}

Отображается:
...
Ключ = 10013 Валер = 1
Clef = 10011 Valeur = 1
Ключ = 10014 Валер = 1
Ключ = 10002 Валер = 10
...

Но если в этом хеше нет индекса GigabitEthernet0 / 2 (10102) ...
Поэтому я не могу найти VLAN.
Как получить всю информацию об интерфейсе GigabitEthernet? Другое решение? Нужна помощь, большая награда!


РЕДАКТИРОВАТЬ :
Решение найдено, порты GigabitEhernet, по-видимому, находятся в VLAN 1, даже если они не отображаются в lising vlan.

1 Ответ

0 голосов
/ 12 мая 2011

Если эти интерфейсы находятся в режиме транка, вы не увидите их с этим OID. CISCO-VLAN-MEMBERSHIP-MIB предназначен только для не транкинговых портов.

Вы можете попробовать vlanTrunkPortDynamicStatus из CISCO-VTP-MIB для проверки.

...