Lỗi truy cập Juniper SNMPv3 không thể đoán trước


8

Chúng tôi đang gặp sự cố khi SNMPv3 ngừng chấp nhận các yêu cầu SNMP trên các thiết bị chuyển mạch dòng Juniper EX của chúng tôi. Trong những gì có vẻ như là ngẫu nhiên, các nút Juniper từ chối thông tin xác thực SNMP.

Đây là những gì chúng ta cuối cùng nhận được:

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

Các thiết bị của chúng tôi đã hoạt động, nhưng sau đó chỉ dừng lại. Tên người dùng là chính xác và được tải vào hệ thống.

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

Sau khi giải quyết chuyện này một thời gian, cuối cùng chúng tôi quyết định điều tra. Tôi đang thấy mục này trước khi hệ thống ngừng chấp nhận yêu cầu:

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.

Tôi đã thấy rằng chỉ cần nhập lại tên người dùng / mật khẩu khôi phục quyền truy cập vào thiết bị.

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

Sau một commithoạt động, chúng ta có thể truy cập lại.

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

Vấn đề này đang xảy ra trên một tấn các thiết bị khác nhau. Các mô hình bao gồm EX2200-c, EX3300, EX4200 và EX4550 trên phiên bản 12.3.

Tại sao điều này xảy ra và làm thế nào tôi có thể làm cho nó dừng lại?

Câu trả lời:


6

Vấn đề này là kết quả của việc thay đổi id động cơ. Nếu bạn gặp phải thông báo nhật ký hệ thống này, đó là định nghĩa chính xác của vấn đề.

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.

Thật không may, tôi đã thấy rằng điều này xảy ra không có lý do rõ ràng. Cam kết được thực hiện trước khi id động cơ này thay đổi là một syslog-hostbổ sung đơn giản dẫn đến thay đổi id động cơ. Juniper bao gồm engine-idtùy chọn trong Thư viện công nghệ của họ , cho biết tùy chọn mặc định là sử dụng địa chỉ IP mặc định của thiết bị.

Sau rất nhiều lần đập đầu vào bàn làm việc, chúng tôi đã thấy rằng chỉ cần xác định một cái với một thiết lập rõ ràng là lựa chọn tốt nhất, vì nó vẫn nhất quán.

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

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

Juniper cũng có một lưu ý cho việc thay đổi id động cơ cần được thực hiện trước khi nó hoạt động. Nó thực sự có nghĩa là một khi bạn cam kết một id công cụ mới, bạn cũng phải cam kết tên người dùng / mật khẩu khác.

Lưu ý: Khóa xác thực và mã hóa SNMPv3 được tạo dựa trên mật khẩu được liên kết và ID động cơ. Nếu bạn định cấu hình hoặc thay đổi ID công cụ, bạn phải cam kết ID công cụ mới trước khi định cấu hình người dùng SNMPv3. Mặt khác, các khóa được tạo từ mật khẩu được cấu hình dựa trên ID công cụ trước đó. Đối với ID công cụ, chúng tôi khuyên bạn nên sử dụng địa chỉ MAC của cổng quản lý.

Bạn sẽ cần phải cam kết người dùng mới vào cấu hình sau khi thay đổi động cơ. Điều này rất quan trọng vì người dùng SNMPv3 sẽ không hoạt động nếu bạn không làm điều này mặc dù những gì thực sự được nói theo show snmp v3 users. Vì vậy, hãy chắc chắn rằng bạn xác định người dùng mới.

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

Trước khi thay đổi:

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

Sau khi thay đổi:

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

Điều này cung cấp một thiết lập SNMP đáng tin cậy hơn, không dễ bị thay đổi id động cơ và loại bỏ quyền truy cập. Juniper khuyên bạn nên sử dụng use-mac-addresstùy chọn trái ngược với local engine-id-suffix. Tùy chọn này dễ bị các vấn đề trong thiết lập khung gầm ảo. Nếu một công cụ định tuyến dự phòng tiếp quản, SNMP engine-id sẽ thay đổi thành me0giao diện của chủ mới.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.