SMI hỗtrợmột dạng cấu trúc dữliệu: bảng hai chiều đơn giản, với các thực thể
là các giá trịvô hướng. Để định nghĩa các bảng ta sửdụng loại sequence và sequence-of của ASN.1 và indexPart của macro OBJECT-TYPE.
Xét kiểu đối tượng tcpconnTable có nhận diện đối tượng là 1.3.1.2.1.6.13. Đối
tượng này bao gồm các thông tin vềcác kết nối TCP đang duy trì tương ứng với các
thực thểbịquản trị.Với mỗi kết nối nhưthế, các thông tin sau được lưu trữvào bảng.
• state:trạng thái kết nối của TCP (giá trịchỉmục này có thểlà một trong 11 trạng
thái TCP đã định nghĩa theo chuẩn phản ánh kết nối, giá trị được thiết lập và
thay đổi bởi phần tửTCP. Hơn nữa , chỉmục có thểmang giá trịdeleteTCP- đây
là giá trịthiết lập bởi trạm quản trị. Khi giá trịnày được lập, phần tửhuỷbỏkhối
điều khiển giao vận do cậy huỷbỏkết nối, điều này tương tựnhưmột giao vận
chuyển vềtrạng thái CLOSE).
• Local address: địa chỉIP của một đầu cuối của kết nối.
• Local port: cổng TCP của một đầu cuối của kết nối.
• Remote address: địa chỉIP của một đầu cuối kia của kết nối
• Remote port: cổng TCP của một đầu cuối kia của kết nối.
65 trang |
Chia sẻ: maiphuongdc | Lượt xem: 3595 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng Quản trị mạng theo giao thức SNMPV1, SNMPV2 và SNMPV3, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
được định nghĩa, nó cần
25
phải thực hiện với các loại nguyên. Có hai quy ước được kết hợp với sử dụng các dãy
số:
• Giá trị 0 có thể không sử dụng, điều này cho phép bắt các lỗi mã hoá chung.
• Chỉ sử dụng các giá trị đếm được nguyên. Có thể dùng một giá trị đếm được đặt
tên là other, dùng cho các trường hợp không thể đưa vào các nhãn đếm được
khác.
Nhận diện đối tượng là nhận diện duy nhất của đối tượng, gồm dãy các số
nguyên, đọc thứ tự từ trái sang phải, định nghĩa vị trí của đối tượng trong MIB.
Lớp APPLICATION của ASN.1 gồm các kiểu dữ liệu liên quan đến một ứng
dụng cụ thể. Mỗi ứng dụng, gồm cả SNMP, phải định nghĩa các kiểu dữ liệu
APPLICATION của riêng mình. Các kiểu dữ liệu sau phải được định nghĩa.
• Networksaddress.
• IpAddress:
• Counter:
• Gauge
• Timestick
• Opaque
e) Định nghĩa đối tượng
Một MIB bao gồm một tập các đối tượng. Mỗi đối tượng có một kiểu và một giá
trị. Kiểu đối tượng (object type) định nghĩa loại đăc biệt của đối tượng quản trị. Một
phiên bản đối tượng (object instance) là một phiên bản riêng của kiểu đối tượng được
hạn chế bởi một giá trị cụ thể. ASN.1 bao gồm một số các kiểu phổ biến được định
nghĩa trước đây và một ngữ pháp để định nghĩa các kiểu mới được lấy từ các kiểu đã
có.
Sự lựa chọn cách định nghĩa thích hợp nhất, và đã được sử dụng trong SNMP,
là sử dụng một macro để định nghĩa một tập các kiểu liên quan được sử dụng để định
nghĩa các đối tượng quản trị. Ta có các định nghĩa như sau:
• Macro defition (định nghĩa marco): định nghĩa các phiên bản marco hợp pháp;
mô tả cú pháp của một tập các loại liên quan.
26
• Macro instance (phiên bản macro): một phiên bản được tạo ra từ một định nghĩa
macro cụ thể bằng cách cung cấp các đối số cho các tham số trong định nghĩa
macro; mô tả một dạng cụ thể.
• Macro instance value (giá trị phiên bản macro): đại diện cho một phần tử cụ thể
bằng một giá trị cụ thể.
f) Định nghĩa các bảng
SMI hỗ trợ một dạng cấu trúc dữ liệu: bảng hai chiều đơn giản, với các thực thể
là các giá trị vô hướng. Để định nghĩa các bảng ta sử dụng loại sequence và sequence-
of của ASN.1 và indexPart của macro OBJECT-TYPE.
Xét kiểu đối tượng tcpconnTable có nhận diện đối tượng là 1.3.1.2.1.6.13. Đối
tượng này bao gồm các thông tin về các kết nối TCP đang duy trì tương ứng với các
thực thể bị quản trị.Với mỗi kết nối như thế, các thông tin sau được lưu trữ vào bảng.
• state:trạng thái kết nối của TCP (giá trị chỉ mục này có thể là một trong 11 trạng
thái TCP đã định nghĩa theo chuẩn phản ánh kết nối, giá trị được thiết lập và
thay đổi bởi phần tử TCP. Hơn nữa , chỉ mục có thể mang giá trị deleteTCP- đây
là giá trị thiết lập bởi trạm quản trị. Khi giá trị này được lập, phần tử huỷ bỏ khối
điều khiển giao vận do cậy huỷ bỏ kết nối, điều này tương tự như một giao vận
chuyển về trạng thái CLOSE).
• Local address: địa chỉ IP của một đầu cuối của kết nối.
• Local port: cổng TCP của một đầu cuối của kết nối.
• Remote address: địa chỉ IP của một đầu cuối kia của kết nối
• Remote port: cổng TCP của một đầu cuối kia của kết nối.
Chỉ có 5 mục này là có thể nhìn thấy trong bảng tcpConnTable. Điều này minh
họa rằng SNMP quản trị mạng là đơn giản: chỉ có một tập con hữu hạn của thông tin
trên một phần tử được quản lý được chứa trong đối tượng được quản lý tương ứng.
c) Cấu trúc mã hoá
Các luật mã hoá cơ bản (Basic Encoding Rules – BER) định nghĩa một hay
nhiều cách để mã hoá bất kỳ giá trị ASN.1 nào như một cấu trúc octet dựa trên cơ sở
sử dụng cấu trúc type – length – value (VLE). Tức là bất kỳ một ASN.1 nào cũng có
thể được mã hoá như là một bộ ba các thành phần sau :
27
• Kiểu (type): thể hiện kiểu ASN.1 cũng như lớp của dạng đó.
• Độ dài (length): thể hiện độ dài giá trị thực được đưa ra.
• Giá trị (Value): đưa ra giá trị của dạng ASN.1 như là một chuỗi octet
Mọi đối tượng trong SNMP được định nghĩa theo cách thông thường, định
nghĩa mô tả dạng dữ liệu của đối tượng, dải giá trị và dạng mà nó chấp nhận, và quan
hệ của nó đến các đối tượng khác trong MIB. Ký pháp ASN.1 được sử dụng để định
nghĩa mỗi đối tượng đơn lẻ và và cũng để định nghĩa toàn bộ cấu trúc của MIB.
2.1.1.6 Managed Objects
a) Managed object structure
sysDescr: { system 1 }
Syntax: OCTET STRING
Definition: "A textual description of the entity. This value
should include the full name and version
identification of the system's hardware type,
software operating-system, and networking software.
It is mandatory that this only contain printable
ASCII characters."
Access: read-only
Status: mandatory
sysDescr OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..255))
ACCESS read-only
STATUS mandatory
DESCRIPTION “A textual description of the entity. This
value shouldinclude the full name and version
identification of thesystem’s hardware type,
software operating-system, andnetworking
software. It is mandatory that this only
containprintable ASCII characters.”
::= {system 1 }
b) aggregate object
Một đối tượng tập hợp có thể là: một nhóm các đối tượng, hoặc cũng có thể gọi
là các đối tượng bảng, nó được thể hiện thông qua hai thuộc tính của bảng là cột và
dòng. Trong đó các cột định nghĩa các đối tượng (object), các dòng định nghĩa các giá
trị cụ thể của đối tượng hay còn gọi là các đối tượng instances (Object instance).
28
Ví dụ một bảng địa chỉ IP bao gồm các đối tượng sau
• IP address
• Interface
• Subnet mask (những subnet mà address này thuộc về)
• Broadcast address (value of l.s.b. in IP broadcast address)
• IP datagram lớn nhất nó chấp nhận
Và nhiều đối tượng instances của những đối tượng khác liên quan đến node.
Giá trị của NEW-MIB routeTablenext 5 là 3
Nếu tính theo giá trị cột thì giá trị NEW-MIB routeTablenext 5 là 2
29
ở đây giá trị OID của Table = 1. 3 , khi đó ta có:
1.3.1.5 => 5
1.3.2.5 => 2
1.3.1.9 => 9
1.3.2.9 => 3
1.3.2.7 => 2
1.3.1.1 => entry does not exist
1.3.2.1 => entry does not exist
Với giá trị OID của Table = 1.3
1.3.1.130.89.16.23 => 130.89.16.23
1.3.2.130.89.16.23 => 130.89.16.1
1.3.1.193.22.11.97 => 193.22.11.97
1.3.2.193.22.11.97 => 130.89.16.4
1.3.2.130.89.19.121 => 130.89.16.1
Ngoài ra ta có thể sử dụng bảng với nhiều trường làm chỉ mục:
30
Khi đó ta có:
1.3.3.192.1.23.24.1 => 130.89.16.1
1.3.3.192.1.23.24.2 => 130.89.16.4
c) Định nghĩa TABLE
--Definition of the route table
routeTable OBJECT-TYPE
SYNTAX SEQUENCE OF RouteEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "This entity’s routing table"
::={NEW-MIB 3}
routeEntry OBJECT-TYPE
SYNTAX RouteEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "A route to a particular destination"
INDEX {dest, policy}
::={routeTable 1}
31
RouteEntry::=
SEQUENCE{
Dest ipAddress,
Policy INTEGER,
Next ipAddress
}
dest OBJECT-TYPE
SYNTAX ipAddress
ACCESS read-only
STATUS current
DESCRIPTION "The address of a particular destination"
::={route-entry 1}
policy OBJECT-TYPE
SYNTAX INTEGER {
costs(1)--lowest delay
reliability(2)} --highest reliability
ACCESS read-only
STATUS current
DESCRIPTION "The routing policy to reach that destination"
::={route-entry 2}
Next OBJECT-TYPE
SYNTAX ipAddress
ACCESS read-write
STATUS current
DESCRIPTION "The internet address of the next hop"
::={route-entry 3}
2.1.2 Kiến trúc giao thức SNMP
SNMP được thiết kế là một giao thức mức ứng dụng là một phần của bộ giao
thức TCP/IP. Nó được cài đặt trên User Datagram Protocol (UDP). Hình 2.6 đưa ra
cấu trúc điển hình SNMP.
32
Hình 2.6 Kiến trúc quản trị mạng SNMP
SNMP có 05 message cơ sở (Get, GetNext, GetResponse, Set, và Trap) để kết
nối giữa manager và agent. Message Get và GetNext cho phép manager yêu cầu thông
tin của một biến cụ thể. Agent khi nhận được một message Get hoặc GetNext sẽ phát
đi một message GetResponse tới manager với thông tin được yêu cầu hoặc một thông
báo lỗi giải thích vì sao yêu cầu không được thực hiện. Tập hợp message cho phép
manager yêu cầu thay đổi giá trị một biến cụ thể trong trường hợp cảnh báo từ xa sẽ có
tác dụng sau một khoảng trễ. Agent sẽ phản hồi lại với một message GetRespone trong
trường hợp đã bị thay đổi hoặc thông báo bị lỗi và giải thích vì sao không thể thay đổi.
Message Trap cho phép agent tự phát thông tin cho manager trong hoàn cảnh “đặc
biệt”.
Hầu hết các message (Get,GetNext và Set) chỉ được phát ra bởi SNMP manager.
Bởi vì message Trap chỉ được khởi tạo bởi agent, nó là message sử dụng cho Remote
Telemetry Units (RTUs) khi có các cảnh báo. Và sẽ thông báo đến SNMP manager
ngay sau khi có sự cố xảy ra thay vì phải chờ manager yêu cầu (hỏi).
33
Hình 2.7 Kiến trúc quản trị mạng SNMP
a) Kiểm soát theo Trap
Nếu một trạm quản trị, quản trị số lượng lớn các Agent, và nếu mỗi Agent duy
trì một số lượng lớn các đối tượng, thì sẽ không thực tế khi các trạm quản trị kiểm soát
theo kiểu “bỏ phiếu” tất cả các Agent với các đối tượng dữ liệu có thể đọc. Do vậy,
SNMP và MIB liên quan được thiết kế sử dụng một kỹ thuật được gọi là kiểm soát
theo Trap.
Tại thời điểm ban đầu, và tại các khoảng thời gian theo chu kỳ như một lần
trong ngày, trạm quản trị kiểm soát theo kiểu “bỏ phiếu” tất cả các Agent để biết vài
thông tin mấu chốt như các đặc tính giao tiếp; một vài thống kê về tính năng giới hạn
như là số lượng trung bình các gói tin gửi và nhận trên mỗi giao tiếp trong một khoảng
thời gian. Khi các giới hạn này được xác lập, trạm quản trị ngừng kiểm soát theo kiểu
“bỏ phiếu” và mỗi Agent có trách nhiệm thông báo cho trạm quản trị về các sự kiện
không bình thường. Các sự kiện này được truyền trong thông báo SNMP và được gọi
là Trap. Khi trạm quản trị được thông báo do điều kiện bất thường, nó sẽ thực hiện một
vài hành động như: kiểm tra trực tiếp Agent vừa thông báo hoặc các Agent lân cận để
phát hiện lỗi. Kỹ thuật kiểm soát Agent sẽ tiết kiệm năng lực mạng và thời gian xử lý
Agent.
b) Uỷ quyền (Proxy)
Agen uỷ quyền Thiết bị được uỷ quyền
34
Trạm quản trị
Tiến trình quản
trị
SNMP
UDP
IP
Các giao thức
phụ thuộc mạng
Hình 2.8 Kiến trúc của Agent ủy quyền
Việc sử dụng SNMP đòi hỏi các Agent, cũng như các trạm quản trị, cần phải
hỗ trợ một giao thức chung phù hợp như là UDP và IP. Điều này hạn chế trực tiếp đến
việc quản trị các thiết bị như modem hoặc bộ nối mà không hỗ trợ giao thức TCP/IP
phù hợp. Hơn nữa có thể có nhiều hệ thống nhỏ (các máy tính cá nhân, workstation,
các bộ điều khiển có thể lập trình ) phải thực hiện TCP/IP để hỗ trợ các ứng dụng của
nó nhưng không muốn phải thêm gánh nặng của SNMP và việc duy trì MIB. Để các
thiết bị như vậy không phải thực hiện SNMP, người ta đã đưa ra khái niệm uỷ quyền.
Hình 2.8 thể hiện dạng cấu trúc giao thức của một Agent SNMP hoạt động
như một thống kê uỷ quyền cho một hoặc nhiều các thiết bị khác, có nghĩa là một
SNMP Agent hoạt động thay mặt cho các thiết bị được uỷ quyền. Mọi yêu cầu và trả
lời giữa một trạm quản trị và một thiết bị uỷ quyền đều được chuyển thông qua Agent
của nó. Agent chuyển đổi các yêu cầu và trả lời hoặc Trap thành dạng giao thức quản
trị phù hợp.
c) Các toán tử SNMP
SNMP chỉ hỗ trợ các toán tử là sửa đổi và duyệt các biến. Đặc biệt, ba toán tử
sau có thể được thực hiện trên các đối tượng vô hướng:
• Get: một trạm quản trị nhận một giá trị của đối tượng vô hướng từ một trạm bị
quản trị.
Chức năng ánh xạ
Tiến trình
Agent Cấu trúc giao
thức được
thiết bị uỷ
quyền sử
dụng
SNMP
UDP
IP
Các giao thức
phụ thuộc
mạng
Các giao thức
phụ thuộc
mạng
Tiến hành quản trị
Các giao thức được
thiết bị uỷ quyền sử
dụng
Các giao thức phụ
thuộc mạng
35
• Set: một trạm quản trị cập nhập một giá trị của đối tượng vô hướng cho một
trạm bị quản trị.
• Trap: một trạm quản trị gửi một giá trị của đối tượng vô hướng không được yêu
cầu tới một trạm quản trị.
Các toán tử này không có khả năng thay đổi cấu trúc của một MIB bằng cách
thêm hoặc bớt các phiên bản đối tượng (thêm hoặc bớt một dòng trong bảng) nhưng có
khả năng đưa ra các lệnh để thực hiện các hoạt động. Ngoài ra chúng chỉ cung cấp các
khả năng truy cập vào các đối tượng “lá” trong cây nhận dạng đối tượng. Các giới hạn
này làm đơn giản việc thực hiện của SNMP song cũng giới hạn khả năng của hệ thống
quản trị mạng.
d) Truyền thông SNMP
Quản trị mạng có thể xem như là một ứng dụng phân tán, nó yêu cầu sự tương
tác của một số phần tử ứng dụng mà được một giao thức ứng dụng hỗ trợ. Trong
SNMP, các phần tử ứng dụng là các ứng dụng trạm quản trị và các ứng dụng khác mà
sử dụng giao thức được hỗ trợ SNMP. Ta có thể coi SNMP là một liên hệ giữa một
Agent SNMP và một tập các quản trị SNMP được định nghĩa cục bộ tại trạm bị quản
trị do vậy có thể có nhiều Agent cùng sử dụng một tên. Nên trạm quản trị phải duy trì
dấu vết của tên truyền thông hoặc tên liên quan với mỗi Agent mà nó muốn truy cập.
Mỗi trạm quản trị điều khiển một MIB cục bộ của mình và phải có khả năng điều
khiển việc sử dụng MIB đó của một số các trạm điều khiển. Có ba hướng cho việc điều
khiển này:
• Dịch vụ xác nhận: trạm bị quản trị muốn giới hạn việc truy cập vào MIB với các
trạm quản trị cho phép. Trong SNMP, nó khẳng định rằng thông báo là từ nơi nó
được yêu cầu. Mọi thông báo từ một trạm quản trị đến một Agent bao gồm cả
tên truyền thông. Tên này được khoá mã và thông báo được coi là xác nhận khi
người gửi biết khoá mã.
• Chính sách truy cập: trạm bị quản trị có thể đưa ra quyền truy cập khác nhau cho
các trạm quản trị khác nhau. Bằng cách định nghĩa một truyền thông, một Agent
giới hạn việc truy cập vào MIB của nó với một tập các trạm quản trị. Bằng cách
36
dùng nhiều đường truyền thông, một Agent có thể cung cấp nhiều dạng truy cập
MIB cho trạm quản trị khác nhau.
• Dịch vụ uỷ quyền: một trạm quản trị có thể hoạt động như một uỷ quyền cho các
trạm bị quản trị khác. Điều này có thể yêu cầu dịch vụ xác nhận hoặc chính sách
truy cập cho các trạm bị quản trị khác trong hệ thống uỷ quyền
e) Phiên bản nhận dạng
Mọi đối tượng trong MIB có một nhận dạng kèm theo, được định nghĩa bởi vị
trí của đối tượng đó trong cấu trúc hình cây của MIB. Khi thực hiện một truy cập vào
một MIB, qua SNMP, nó là một phiên bản cụ thể của một đối tượng mà nó muốn.
• Các đối tượng cột (colummar Object): với các đối tượng xuất hiện dưới dạng
bảng, ta xem như là các đối tượng cột. Các đối tượng cột một mình nó không đủ
để nhận dạng đối tượng nên cần có một phiên bản của mỗi đối tượng và một tập
các giá trị của các đối tượng INDEX sẽ mô tả một đối tượng vô hướng nhất định
trong một hàng nhất định trong bảng.
• Các đối tượng hàng (row Objects): Vì đây không phải là các đối tượng “lá” nên
không có nhận dạng phiên bản và SNMP không truy cập được. Trong định nghĩa
MIB về các đối tượng này, đặc tính ACCESS của chúng được gán là “non-
accessible”.
• Các đối tượng vô hướng (scalar Objects): để phân biệt sự khác nhau giữa dạng
đối tượng và phiên bản đối tượng, SNMP quy định nhận dạng phiên bản của đối
tượng vô hướng theo bảng gồm nhận dạng của nó kết hợp với 0.
f) Trật tự theo thứ tự
Một nhận dạng đối tượng là một chuỗi các số nguyên thể hiện trật tự hoặc cấu
trúc nhánh cây của các đối tượng trong MIB, vì vậy chúng thể hiện một trật tự theo thứ
tự. Một trật tự của các nhận dạng đối tượng và phiên bản đối tượng là rất quan trọng vì
trạm quản trị mạng có thể không biết chính xác cách sắp xếp của MIB mà một Agent
đưa cho nó mà cần một cách để tìm kiếm và truy cập các đối tượng mà không cần chỉ
rõ tên đối tượng.
2.1.3 Mô tả giao thức SNMP
37
Trong SNMP, thông tin trao đổi giữa một trạm quản trị và một Agent theo dạng
thông báo SNMP. Mỗi thông báo bao gồm số hiệu phiên bản thể hiện phiên bản
SNMP, Protocol Data Unit (PDU) là định dạng thông điệp mà các nhà quản lý và các
đại lý sử dụng để gửi và nhận thông tin. SNMP định dạng PDU chuẩn:
• get
• getnext
• getbulk (SNMPv2 (xem 2.2.1/a) và SNMPv3)
• set
• getresponse
• trap
• notification (SNMPv2 (xem 2.2.1/b) và SNMPv3)
• inform (SNMPv2 (xem 2.2.1/c) và SNMPv3)
• report (SNMPv2 (xem 2.2.1/d) và SNMPv3)
Ngoài việc sử dụng các công cụ hỗ trợ thao tác bằng lệnh có những gói thực
hiện các thao tác của SNMP, các lệnh set và get được sử dụng như sau:
$/usr/sbin/tethereal -i lo -x -V -F libpcap -f "port 161"
Lệnh trap sử dụng như sau:
$/usr/sbin/tethereal -i lo -x -V -F libpcap -f "port 162"
a) Get request
Get request là yêu cầu từ NMS, NMS sẽ gửi một yêu cầu đến agent, khi agent
nhận được yêu cầu này nó sẽ xử lý với năng lực tốt nhất có thể, nếu một thiết bị như
router chẳng hạn nó không đủ tài nguyên để xử lý yêu cầu này thì nó sẽ bỏ qua yêu
cầu, còn nếu thiết bị nào vẫn đáp ứng được việc xử lý yêu cầu nó sẽ trả về một
getResponse cho NMS. Các đối tượng mà NMS yêu cầu được thể hiện trong
38
getrequest lưu trong biến rằng buộc (binding). Biến này lưu danh sách các đối tượng
mà NMS muốn biết theo cú pháp OID=value.
Ví dụ:
$snmpget cisco.ora.com public .1.3.6.1.2.1.1.6.0
system.sysLocation.0 = ""
Đây là một câu lệnh ”snmpget” trên Unix. “cisco.ora.com” là tên của thiết bị,
“public” là chuỗi ra, chỉ đây là yêu cầu chỉ đọc (read-only), “.1.3.6.1.2.1.1.6.0” là OID.
“.1.3.6.1.2.1.1” chỉ tới nhóm “system” trong MIB. “.6” chỉ tới một trường trong
“system” là “sysLocation”. Trong câu lệnh này ta muốn truy vấn Cisco router rằng
việc định vị hệ thống đã được cài đặt chưa. Câu trả lời system.sysLocation.0 = "" tức
là chưa cài đặt. Câu trả lời của “snmpget” theo dạng của varbind: OID=value. Còn
phần cuối trong OID ở “snmpget” là “.0” nằm trong quy ước của MIB. Khi truy vấn
một đối tượng trong MIB ta cần chỉ rõ 2 trường “x.y’, ở đây là “.6.0”. “x” là OID thực
tế của đối tượng. Còn y được dùng trong các đối tượng có hướng như một bảng và y
xác định hàng nào của bảng, với trường hợp đối tượng vô hướng như trường hợp này
“y” = “0”. Các hàng trong bảng được đánh số từ số 1 trở đi. Câu lệnh ”get” hữu ích
trong việc truy vấn một đối tượng riêng lẻ trong MIB. Khi muốn biết thông tin về
nhiều đối tượng thì ”get” tốn khá nhiều thời gian. Câu lệnh “getnext” giải quyết được
vấn đề này.
Hình 2.9 Trình tự xử lý yêu cầu Get
b) getnetxt
getnext đưa ra một dãy các lệnh để lấy thông tin từ một nhóm trong MIB. Agent
sẽ lần lượt trả lời tất cả các đối tượng có trong câu truy vấn của getnext tương tự như
get, cho đến khi nào hết các đối tượng trong dãy. Ví dụ ta dùng lệnh snmpwalk.
snmpwalk tương tự như snmpget nhưng không chỉ tới một đối tượng cụ thể nào mà chỉ
tới một nhánh nào đó:
39
$snmpwalk cisco.ora.com public system
system.sysDescr.0="Cisco IOS Software, C2600 Software(C2600-IPBASE-
M),
Version 12.3(8)T3, RELEASE SOFTWARE (fc1)
Technical Support:
Copyright (c) 1986-2004 by Cisco Systems, Inc.
Compiled Tue 20-Jul-04 17:03 by eaarmas"
system.sysObjectID.0 = OID: enterprises.9.1.19
system.sysUpTime.0 = Timeticks: (27210723) 3 days, 3:35:07.23
system.sysContact.0 = ""
system.sysName.0 = "cisco.ora.com"
system.sysLocation.0 = ""
system.sysServices.0 = 6
Hình 2.10 duyệt cây MIB với lệnh snmpwalk
Ở đây ta muôn lấy thông tin của nhóm “system”, agent sẽ gửi trả toàn bộ thông
tin của “system” theo yêu cầu. Quá trình tìm nhóm “system” trong MIB thực hiện theo
cây từ gốc, đến một nút nếu có nhiều nhánh thì chọn nhánh tìm theo chỉ số của nhánh
từ nhỏ đến lớn, system.1 (system.sysLocation), system.2,…
40
c) set request
set để thay đổi giá trị của một đối tượng hoặc thêm một hàng mới vào bảng. Đối
tượng này cần phải được định nghĩa trong MIB là “readwrite” hay “write-only”. NMS
có thể dùng set để đặt giá trị cho nhiều đối tượng cùng một lúc.
Hình 2.11 Trình tự thực hiện lệnh set
$snmpget cisco.ora.com public system.sysLocation.0
system.sysLocation.0 = ""
$snmpset
cisco.ora.com private system.sysLocation.0 s "Atlanta, GA"
system.sysLocation.0 = "Atlanta, GA"
$snmpget cisco.ora.com public system.sysLocation.0
system.sysLocation.0 = "Atlanta, GA"
Câu lệnh đầu là dung get để lấy giá trị hiện tại của “system.sysLocation”. Trong
câu lệnh snmpset các trường cisco.ora.com và system.sysLocation.0 có ý nghĩa giống
với ”get”, còn private để chỉ đối tượng “read-write’, và đặt giá trị mới bằng: s “Atlanta,
GA”. Trong đó s tức là đặt giá trị của “system.sysLocation.0” thành kiểu string, và giá
trị mới là "Atlanta, GA" . Varbind này được định nghĩa trong RFC 1213 là kiểu string
tối đa 255 ký tự:
sysLocation OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..255))
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The physical location of this node (e.g., 'telephone
closet, 3rd floor')."
::= { system 6 }
41
SYNTAX của sysLocation là DisplayString (kích thước từ 0 đến 255). Lệnh
snmpset thành công và báo cáo giá trị mới của sysLocation. Khi muốn biết đã thành
công hay chưa chỉ cần chạy lại lệnh snmpget:
$snmpget cisco.ora.com public system.sysLocation.0
system.sysLocation.0 = "Atlanta, GA"
có thể cài đặt nhiều đối tượng cùng lúc, tuy nhiên nếu có một hành động bị lỗi,
toàn bộ sẽ bị hủy bỏ.
d) Thông báo lỗi của get, getnext, getbulk và set
Một số lỗi báo thông dụng của agent xem bảng 2.2 sau:
SNMPv1
error message Mô tả
noError(0) Không có lỗi
tooBig(1)
Yêu cầu quá lớn để có thể trả lời được (nhiều yêu
cầu trong một câu hỏi)
noSuchName(2) OID yêu cầu không tìm thấy, tức OID không tồn tại
ở agent
badValue(3)
Câu lệnh “set” dùng không đúng với các object
“read-write” hay “write-only”.
readOnly(4) Lỗi này ít dùng. Lỗi “noSuchName” tương đương
với lỗi này
genErr(5) Dùng cho tất cả các lỗi còn lại, không nằm trong các
lỗi trên
Bảng 2.2 Một số thông báo lỗi của SNMPv1
2.1.4 Truyền và nhận một Message SNMP
a) Truyền Message SNMP
Để truyền một trong năm dạng PDU cho một phần tử SNMP khác, phần tử
SNMP phải thực hiện các hoạt động sau:
• Sử dụng ASN.1 để tạo ra PDU.
• PDU này được chuyển sang dịch vụ xác nhận cùng với các địa chỉ nguồn và
đích của truyền thông và tên một truyền thông. Dịch vụ xác nhận thực hiện
những biến đổi theo yêu cầu sau đó mã hoá hoặc thêm mã xác nhận và trả lại kết
quả.
42
• Phần tử giao thức tạo ra một thông báo, thêm vào trường số hiệu phiên bản, tên
truyền thông vào kết quả của bước trên.
• Đối tượng ASN.1 mới này sau đó được mã hoá sử dụng BER và gửi đến dịch vụ
giao vận.
b) Nhận Message SNMP
Khi nhận một thông báo từ một phần tử SNMP khác, một phần tử SNMP phải
thực hiện các hoạt động sau:
• Kiểm tra cú pháp cơ bản của thông báo và loại bỏ thông báo nếu cú pháp sai
• Kiểm tra số hiệu phiên bản và loại bỏ thông báo nếu không tương hợp.
Trong SNMP, chỉ có các đối tượng “lá” trong cây nhận dạng đối tượng, các đối
tượng vô hướng là có thể truy cập. Tuy nhiên SNMP có khả năng nhóm các toán tử
cùng dạng (get, set, trap) vào một thông báo, do vậy nếu một trạm quản trị muốn nhận
các giá trị của tất cả các đối tượng trong một nhóm nhất định tại một Agent nhất định,
nó có thể dùng một thông báo đơn, yêu cầu tất cả các giá trị và nhận lại một đáp ứng
đơn các liệt kê tất cả các giá trị. Kỹ thuật này có thể làm giảm rất nhiều tải trọng truyền
thông của quản trị mạng. Để thực hiện điều đó, các PDU của SNMP đều có trường
variable-bindings (mục 2.1.1.4/b). Trường này bao gồm một thứ tự các tham chiếu đến
các phiên bản đối tượng cùng với giá trị của các đối tượng đó.
c) GetRequest PDU
Một phần tử SNMP đưa ra GetRequestPDU thay mặt cho một ứng dụng trạm
quản trị. Phần tử bao gồm các trường hợp sau trong PDU:
• Dạng PDU: thể hiện một GetRequestPDU.
• Request-id: phần tử gửi gán các số như vậy để người dùng mỗi yêu cầu gửi đi
đến cùng một Agent là xác định duy nhất. Nó cho phép ứng dụng SNMP liên kết
các đáp ứng truyền đến với yêu cầu còn lại, và cũng cho phép một phần SNMP
loại bỏ các PDU kép được sinh ra do dịch vụ giao vận không tin cậy.
• Variable bindings (các liên kết biến): liệt kê các phiên bản đối tượng có giá trị
được yêu cầu.
Phần tử SNMP nhận đáp ứng một GetRequestPDU bằng một GetResponsePDU
có chứa cùng một request-id. Toán tử GetRequest có tính hạt nhân: hoặc lấy được tất
43
cả các giá trị hoặc không lấy bất cứ giá trị nào. Nếu phần tử đáp ứng có khả năng cung
cấp tất cả các giá trị của các biến được liệt kê trong danh sách biến liên kết, thì
GetResponsePDU bao gồm trường các liên kết biến với giá trị được cấp cho mỗi biến.
Nếu ít nhất một biến không thể cấp giá trị thì sẽ không có giá trị nào được trả về. Các
điều khiển sau có thể xảy ra:
• Một đối tượng được đặt tên trong danh sách biến có thể không phù hợp với bất
kỳ nhận dạng đối tượng nào trong MIB tương ứng, hoặc trên đối tượng là một
dạng gộp mà không có giá trị phiên
Các file đính kèm theo tài liệu này:
- tapbaigiang_sv_8932.pdf