我有以下的(工作)perl腳本:SNMP v3與NET :: SNMP工作,但snmpwalk/snmpget沒有?
use Net::SNMP;
# create session to the host
my ($session, $error) = Net::SNMP->session(
-hostname => $hostname,
-version => 'snmpv3',
-username => 'my_user_name',
-authkey => 'my_authkey',#actually, here stands the real authkey as configured on the switch
-privkey => 'my_privkey',#same as on switch
-authprotocol => 'sha',
-privProtocol => 'des'
);
if (!defined($session)) {
print $error . "\n";
last;
}
# retrieve a table from the remote agent
my $result = $session->get_table(
-baseoid => $MAC_OID
);
if (!defined($result)) {
print $session->error . "\n";
$session->close;
last;
}
#print out the result of the snmp query
#....
現在我想用snmpwalk的或相同的按鍵SNMPGET。對於這一點,我創建了一個snmp.conf文件中.snmp我的主目錄包含以下內容組成:
defSecurityName my_user_name
defContext ""
defAuthType SHA
defSecurityLevel authPriv
defAuthPassphrase my_auth_key here
defVersion 3
defPrivPassphrase my_privkey here
defPrivType DES
當我看到它,我用的是相同的憑據的腳本和SNMPGET。爲什麼我會收到snmpget:身份驗證失敗(密碼錯誤,社區或密鑰)?
我曾經在一家使用Perl進行多廠商網絡管理的公司工作。我的0.02美元就是存在足夠的不一致性,如果某個SNMP客戶端庫可以使用某個SNMP客戶端庫而不是另一個,那麼您應該不會感到過分驚訝,並且如果隨機設備的SNMP代理是一件垃圾,那麼雙倍不會感到驚訝。 ;) – fennec 2012-02-15 03:05:44