予測できないJuniper SNMPv3アクセスエラー


8

Juniper EXシリーズスイッチでSNMPv3がSNMPリクエストの受け入れを停止するという問題があります。ランダムな発生のように見える場合、ジュニパーノードはSNMP認証資格情報を拒否します。

これは私たちが最終的に得るものです:

rj@MHN00525SYS01:~$ snmpwalk -v 3 -a SHA -A "PASS" -l authPriv -x AES -X "PASS" 
  -u "username" mhn00416an01 iso.3.6.1.2.1.1.1.0
snmpwalk: Unknown user name
rj@MHN00525SYS01:~$

デバイスは機能していましたが、その後停止しました。ユーザー名は正しく、システムに読み込まれています。

rj@MHN00416AN01# run show snmp v3 users

Engine ID: 80 00 0a 4c 04 31 33 <...snip...>
    User                            Auth/Priv   Storage      Status
    username                         sha/aes128 nonvolatile  active

これにしばらく対処した後、ようやく調査することにしました。システムがリクエストの受け入れを停止する前に、このエントリが表示されます。

Nov  6 09:44:32  MHN00416AN01 mgd[7996]: UI_COMMIT: User 'rj' requested 'commit' 
  operation (comment: none)
Nov  6 09:44:35  MHN00416AN01 snmpd[1260]: LIBJSNMP_NS_LOG_ERR: ERR: snmpd: send_trap: USM 
  unknown security name (no such user exists) (plaintext scopedPDU header type 00: s/b 30)
Nov  6 09:44:35  MHN00416AN01 snmpd[1260]: SNMPD_ENGINE_ID_CHANGED: Warning: Local 
  engine ID has changed. Passwords for all the users under [edit snmp v3 usm local-engine] 
  need to be reconfigured.

ユーザー名/パスワードを再入力するだけで、デバイスへのアクセスが復元されることがわかりました。

rj@MHN00416AN01# set snmp v3 usm local-engine user username 
  authentication-sha authentication-password PASS

{master:0}[edit]
rj@MHN00416AN01# set snmp v3 usm local-engine user username 
  privacy-aes128 privacy-password PASS

commit操作後、再びアクセスできます。

rj@MHN00525SYS01:~$ snmpwalk -v 3 -a SHA -A "PASS" -l authPriv -x AES -X "PASS" 
  -u "username" mhn00416an01 iso.3.6.1.2.1.1.1.0
iso.3.6.1.2.1.1.1.0 = STRING: "Juniper Networks, Inc. ex3300-48p Ethernet Switch, kernel 
  JUNOS 12.3R3.4, Build date: 2013-06-14 02:21:01 UTC Copyright (c) 1996-2013 Juniper 
  Networks, Inc."
rj@MHN00525SYS01:~$

この問題は、さまざまなデバイスで発生しています。モデルには、バージョン12.3のEX2200-c、EX3300、EX4200、EX4550が含まれます。

なぜこれが起こっているのですか、どうすれば停止できますか?

回答:


6

この問題は、engine-idの変更の結果です。このsyslogメッセージに遭遇した場合、それが問題の正確な定義です。

Nov  6 09:44:35  MHN00416AN01 snmpd[1260]: SNMPD_ENGINE_ID_CHANGED: Warning: Local 
  engine ID has changed. Passwords for all the users under [edit snmp v3 usm local-engine] 
  need to be reconfigured.

残念ながら、私はこれが明確な理由なく起こっていることを発見しました。このengine-idが変更される前に実行されたコミットは、engine-idの変更にsyslog-hostつながる単純な追加でした。 ジュニパーは、engine-idTechLibrary のオプションについて説明しています。デフォルトのオプションは、デバイスのデフォルトのIPアドレスを使用することです。

デスクに対して頭を何度も叩いた後、一貫性を保つため、明示的な設定で定義することが最良のオプションであることがわかりました。

rj@MHN00416AN01# set snmp engine-id local ***.**.244.245

{master:0}[edit]
rj@MHN00416AN01# commit
configuration check succeeds
commit complete

ジュニパーは、エンジンが動作する前に実行する必要があるengine-idを変更するためのメモもあります。つまり、新しいengine-idをコミットしたら、別のユーザー名/パスワードもコミットする必要があります。

注: SNMPv3認証および暗号化キーは、関連するパスワードとエンジンIDに基づいて生成されます。エンジンIDを構成または変更する場合は、SNMPv3ユーザーを構成する前に、新しいエンジンIDをコミットする必要があります。それ以外の場合、構成されたパスワードから生成されたキーは、以前のエンジンIDに基づいています。エンジンIDには、管理ポートのMACアドレスを使用することをお勧めします。

エンジンの変更、新しいユーザーを構成にコミットする必要があります。で実際に言われていることにかかわらず、これを行わないとSNMPv3ユーザーは機能しないため、これは重要show snmp v3 usersです。したがって、必ず新しいユーザーを定義してください。

rj@MHN00416AN01# set snmp v3 usm local-engine user username 
  authentication-sha authentication-password PASS

{master:0}[edit]
rj@MHN00416AN01# set snmp v3 usm local-engine user username 
  privacy-aes128 privacy-password PASS

{master:0}[edit]
rj@MHN00416AN01# commit
configuration check succeeds
commit complete

変更前:

rj@MHN00416AN01# run show snmp v3

Local engine ID: 80 00 0a 4c 01 ** ** f4 f5
Engine boots:           1
Engine time:       421043 seconds
Max msg size:       65507 bytes

Engine ID: 80 00 0a 4c 04 31 33 <...snip...>
    User                            Auth/Priv   Storage      Status
    Username                         sha/aes128 nonvolatile  active

変更後:

Local engine ID: 80 00 0a 4c 04 31 33 <...snip...>   <---- previously Engine ID
Engine boots:           1
Engine time:       421110 seconds
Max msg size:       65507 bytes

Engine ID: local   <------ changed
    User                            Auth/Priv   Storage      Status
    Username                         sha/aes128 nonvolatile  active

これにより、engine-idの変更やアクセスの排除が発生しにくい、より信頼性の高いSNMPセットアップが提供されます。ジュニパーでは、ではuse-mac-addressなくオプションを使用することをお勧めしますlocal engine-id-suffix。このオプションは、仮想シャーシのセットアップで問題が発生する可能性があります。バックアップルーティングエンジンが引き継ぐと、SNMP engine-idがme0新しいマスターのインターフェースに変わります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.