SNMP:cisco 千兆以太网接口无法访问?

发布于 2024-11-07 05:41:32 字数 1479 浏览 6 评论 0原文


我无法在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

-柠檬树下少年和吉他 2024-11-14 05:41:32

如果这些接口处于中继模式,您将不会看到它们具有该 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文