SNMP:cisco 千兆以太网接口无法访问?
我无法在 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
快速以太网0/2
快速以太网0/3
...
快速以太网0/23
快速以太网0/24
千兆以太网0/1
GigabitEthernet0/2
那么,到目前为止,一切都还好。
我得到了千兆以太网接口(例如 GigabitEthernet0/2)的 ifIndex :
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";
}
它显示:
...
Clef=10013 Valeur=1
Clef=10011 Valeur=1
Clef=10014 Valeur=1
Clef=10002 Valeur=10
...
但是 GigabitEthernet0/2 (10102) 的 ifIndex 不在这个哈希中...
所以我找不到VLAN。
如何获取GigabitEthernet接口的所有信息?其他解决方案? 需要帮助,奖励丰厚!
编辑:
解决方案发现,GigabitEhernet 端口似乎在 VLAN 1 上,即使它们没有出现在 lising vlan 中。
I can not request GigabitEthernet interfaces on a cisco switch 2960.
When I execute :
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";
}
I get the output :
FastEthernet0/1
FastEthernet0/2
FastEthernet0/3
...
FastEthernet0/23
FastEthernet0/24
GigabitEthernet0/1
GigabitEthernet0/2
So, up to now, everything's ok.
I get the ifIndex of a GigabitEthernet interface (ex. GigabitEthernet0/2) :
my $in = $interfaces->interface("GigabitEthernet0/2");
print "INDEX:".$in->index()."\n";
It returns :
INDEX:10102
So, I know the ifIndex of my interface.
But I need to get the VLAN too, to get informations about speed, alias, duplex, mac address connected to this interface....
Here start the problems :
#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";
}
It displays :
...
Clef=10013 Valeur=1
Clef=10011 Valeur=1
Clef=10014 Valeur=1
Clef=10002 Valeur=10
...
But ifIndex of GigabitEthernet0/2 (10102) is not in this hash...
So I can not find the VLAN.
How to get all infos of GigabitEthernet interface ? Other solution ?
Need some help, big reward !
EDIT :
Solution found, GigabitEhernet ports seem to be on VLAN 1, even if they don't appear in lising vlan.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果这些接口处于中继模式,您将不会看到它们具有该 OID。 CISCO-VLAN-MEMBERSHIP-MIB 仅适用于非中继端口。
您可以尝试从 CISCO-VTP-MIB 中的 vlanTrunkPortDynamicStatus 进行检查。
If those interfaces are in trunk mode, you won't see them with that OID. CISCO-VLAN-MEMBERSHIP-MIB is only for non-trunking ports.
You can try vlanTrunkPortDynamicStatus from CISCO-VTP-MIB to check.