Errore di accesso imprevedibile Juniper SNMPv3


8

Stiamo riscontrando problemi in cui SNMPv3 cessa di accettare le richieste SNMP sui nostri switch della serie Juniper EX. In quelli che sembrano eventi casuali, i nodi Juniper rifiutano le credenziali di autenticazione SNMP.

Questo è ciò che finiamo per ottenere:

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:~$

I nostri dispositivi funzionavano, ma poi si fermano. I nomi utente sono corretti e caricati nel sistema.

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

Dopo aver affrontato questo problema per un po 'di tempo, abbiamo finalmente deciso di indagare. Visualizzo questa voce prima che il sistema smetta di accettare le richieste:

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.

Ho scoperto che semplicemente reinserendo il nome utente / le password ripristina l'accesso al dispositivo.

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

Dopo commitun'operazione, possiamo accedervi di nuovo.

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:~$

Questo problema si sta verificando su molti dispositivi diversi. I modelli includono EX2200-c, EX3300, EX4200 ed EX4550 sulla versione 12.3.

Perché sta succedendo questo e come posso farlo smettere?

Risposte:


6

Questo problema è il risultato della modifica dell'ID motore. Se ti imbatti in questo messaggio syslog, questa è la definizione esatta del problema.

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.

Purtroppo, ho scoperto che ciò sta accadendo senza una ragione apparente. Il commit eseguito prima della modifica di questo ID motore è stata una semplice syslog-hostaggiunta che ha comportato la modifica dell'ID motore. Juniper copre l' engine-idopzione nel loro TechLibrary , che dice che l'opzione predefinita è usare l'indirizzo IP predefinito del dispositivo.

Dopo aver battuto molto la testa contro la scrivania, abbiamo scoperto che semplicemente definirne uno con un'impostazione esplicita è l'opzione migliore, poiché rimane coerente.

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

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

Juniper ha anche una nota per cambiare l'id motore che deve essere fatto prima che funzioni. Significa effettivamente che dopo aver eseguito il commit di un nuovo ID motore, è necessario anche commettere un altro nome utente / password.

Nota: le chiavi di autenticazione e crittografia SNMPv3 vengono generate in base alle password associate e all'ID motore. Se si configura o si modifica l'ID motore, è necessario eseguire il commit del nuovo ID motore prima di configurare gli utenti SNMPv3. In caso contrario, le chiavi generate dalle password configurate si basano sull'ID motore precedente. Per l'ID motore, si consiglia di utilizzare l'indirizzo MAC della porta di gestione.

Dovrai impegnare nuovi utenti nella configurazione dopo la modifica del motore. Questo è importante perché gli utenti SNMPv3 non funzioneranno se non lo fai nonostante ciò che è effettivamente detto sotto show snmp v3 users. Quindi assicurati di definire nuovi utenti.

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

Prima della modifica:

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

Dopo la modifica:

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

Ciò fornisce una configurazione SNMP più affidabile che non è soggetta a modifiche dell'ID motore e all'eliminazione dell'accesso. Juniper consiglia di utilizzare l' use-mac-addressopzione al contrario di local engine-id-suffix. Questa opzione è suscettibile a problemi in una configurazione dello chassis virtuale. Se subentra un motore di routing di backup, l'id motore SNMP passerà me0all'interfaccia del nuovo master.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.