2.5 SNMPv2
2.5.1 Cấu trỳc bản tin SNMPv2
Cỏc bản tin trao đổi trong SNMPv2 chứa cỏc đơn vị dữ liệu giao thức PDU. Hỡnh 2.7 mụ tả cấu trỳc chung cỏc bản tin này.
Trường phiờn bản (Version) thể hiện phiờn bản của giao thức SNMPv2.
Trường Community là một chuỗi password xỏc nhận cho cả tiến trỡnh lấy và thay đổi dữ liệu. SNMP PDU chứa kiểu điều hành (get, set), yờu cầu đỏp ứng
(cựng số thứ tự với bản tin gửi đi) - cho phộp người điều hành gửi đồng thời
nhiều bản tin. Biến ghộp gồm cỏc thiết bị được đặc tả trong RFC 2358 và chứa cả giỏ trị đặt tới đối tượng.
Trường đơn vị dữ liệu giao thức (PDU) gồm cú cỏc trường con: Kiểu đơn vị dữ
liệu giao thức, nhận dạng cỏc yờu cầu (Request ID), trạng thỏi lỗi, chỉ số lỗi, cỏc giỏ trị và đối tượng.
Hỡnh 2.7 Cấu trỳc dạng bản tin SNMPv2
Version Community SNMPv2 PDU
SNMPv2 Message Variable ..... Object1, Value1 Request ID Error Status or Non-Rptr Error Index Or Max-Reps PDU Type Object2, Value2
- Cỏc kiểu đơn vị dữ liệu giao thức PDU thể hiện cỏc bản tin sử dụng trong SNMPv2 gồm cú:
GetRequest: Cõu lệnh GetRequest được sử dụng giữa Manager tới Agent. Cõu
lệnh này được sử dụng để đọc biến MIB đơn hoặc danh sỏch cỏc biến MIB từ cỏc
Agent đớch. GetRequest yờu cầu sử dụng hai địa chỉ, địa chỉ đầu là địa chỉ của
manger hoặc agent, địa chỉ thứ hai thể hiện vị trớ của biến hoặc đối tượng. Cõy cấu trỳc MIB đó trỡnh bày trong phần 2.4 định nghĩa cỏc địa chỉ của biến MIB.
GetNextRequest: Cõu lệnh GetNextRequest tương tự như cõu lệnh
GetRequest, tuy nhiờn tuỳ thuộc vào agent trong khoản mục kế tiếp của MIB. Cỏc biến được lưu trong thiết bị và được coi như đối tượng bị quản lớ. Vỡ vậy,
cõu lệnh GetNextRequest mở rộng cỏc biến và được đọc theo tuần tự.
SetRequest: Cõu lệnh SetRequest là cõu lệnh được gửi đi từ Manager tới
Agent như hai cõu lệnh trờn. SetRequest tỡm kiếm cỏc thụng tin mở rộng trong
bảng MIB và yờu cầu Agent đặt giỏ trị cho cỏc đối tượng quản lớ hoặc cỏc đối tượng chứa trong cõu lệnh. Sự thành cụng của cõu lệnh này phụ thuộc vào một số
yếu tố gồm sự tồn tại của cỏc đối tượng bị quản lớ và cỏc phương thức truy nhập.
GetResponse: Cõu lệnh GetResponse là cõu lệnh từ Agent tới Manager. Cõu
lệnh này cung cấp cơ chế đỏp ứng cho cỏc cõu lệnh GetRequest, GetNextRequest và SetRequest. Cỏc thụng tin trong cõu lệnh GetResponse gồm một số trường
chức năng cho phộp đỏp ứng cỏc cõu lệnh đó nhận trước đú.
Trap: Trap là cõu lệnh độc lập, khụng phụ thuộc vào đỏp ứng hoặc yờu cầu từ
cỏc Manager hoặc cỏc Agent. Trap đưa ra cỏc thụng tin liờn quan tới cỏc điều kiện được định nghĩa trước và được gửi từ cỏc Agent tới Manager.
GetBulkRequest: Chức năng của cõu lệnh GetBulkRequest tương tự như cõu
lệnh GetNextRequest ngoại trừ vấn đề liờn quan tới số lượng dữ liệu được lấy ra. GetBulkRequest cho phộp Agent gửi lại Manager dữ liệu liờn quan tới nhiều đối
tượng thay vỡ từng đối tượng bị quản lớ. Như vậy, GetBulkRequest cú thể giảm
bớt lưu lượng truyền dẫn và cỏc bản tin đỏp ứng thụng bỏo về cỏc điều kiện vi phạm.
InformRequest: Cõu lệnh InformRequest cung cấp khả năng hỗ trợ cỏc
Manager bố trớ theo cấu hỡnh phõn cấp.Cõu lệnh này cho phộp một Manager trao
đổi thụng tin với cỏc Manager khỏc. Cỏc cảnh bỏo và sự kiện được gửi đi trong
cõu lệnh InformRequest để phỏt hiện và khởi tạo lại cỏc tuyến truyền bản tin. Một trạm quản lớ cú thể thụng tin tới cỏc trạm quản lớ lõn cận biết cỏc điều kiện quan trọng trong vựng quản lớ.
- Cỏc cõu lệnh được thể hiện trong trường PDU Type, cỏc giỏ trị thể hiện như trong bảng 2.5:
Bảng 2.5: Cõu lệnh và giỏ trị trong trường PDU
Cõu lệnh Giỏ trị trong trường
PDU GetRequest 0 GetNextRequest 1 Response 2 SetRequest 3 GetBulkRequest 4 InformRequest 5 SNMPv2-Trap 6 Report 7
- Trường nhận dạng yờu cầu cho phộp SNMP gửi và nhận đồng thời nhiều bản
tin, phõn biệt cỏc bản tin thụng qua cỏc chỉ số nhận dạng.
- Trường error-status (trạng thỏi lỗi) được sử dụng trong cỏc dạng bản tin như
trong bảng 2.6 .
Bảng 2.6: Sử dụng trường trạng thỏi lỗi trong cỏc bản tin
SNMPv2 Error Get GetNext GetBulk Set Inform
noError x x x x x tooBig x x x x noSuchName1 badValue1 readOnly1 genErr x x x x noAccess x wrongType x
SNMPv2 Error Get GetNext GetBulk Set Inform wrongLength x wrongEncoding x wrongValue x noCreation x inconsistentValue x resourceUnavailable x commitFailed x undoFailed x authorizationError x2 x2 x2 x2 x2 notWritable x inconsistentName x
Chỳ ý: Với 1: Khụng được sử dụng bởi đối tượng SNMPv2 (chỉ cú năng lực uỷ
quyền). Dựng để tương thớch với SNMPv1.
Với 2: Khụng sử dụng đến trong SNMPv2 chỉ để tương thớch với SNMPv1
- Trường error-index: Khi trường error-status khỏc 0, giỏ trị error-index thể
hiện biến (đối tượng) trong danh sỏch liờn kết biến gõy ra lỗi. Biến đầu tiờn trong danh sỏch cú chỉ mục là 1. Biến thứ hai cú chỉ mục là 2…
- Trường cỏc biến liờn kết: Trường này cho phộp một toỏn tử đơn được ỏp
dụng trong một nhúm phiờn bản đối tượng. Nú bao gồm một chuỗi cỏc cặp, phần tử đầu tiờn là nhận dạng đối tượng và phần tử thứ hai là một trong số sau:
value: giỏ trị liờn quan với mỗi phiờn bản đối tượng; được mụ tả trong một PDU yờu cầu.
unspecified: giỏ trị NULL khi sử dụng trong yờu cầu lấy thụng tin.
noSuchObject: thể hiện một Agent khụng thể thực hiện với đối tượng
noSuchInstance: phiờn bản đối tượng khụng tồn tại cho toỏn tử này.
endOfMibView: thể hiện một cố gắng tham chiếu đến một nhận dạng đối
tượng bờn ngoài phần cuối của MIB tại Agent.