Simple Network Management Protocol
SNMP
1
Bài toán quản lý, giám sát, cảnh báo các thiệt bị và ứng dụng ............................................................. 3
1.1
Giám sát thiệt bị mạng .................................................................................................................. 3
1.1.1
Bài toán thứ nhất : Giám sát tài nguyên máy chủ ................................................................. 3
1.1.2
Bài toán thứ hai : Giám sát lưu lượng trên các port của switch, router................................. 3
1.1.3
Bài toán thứ ba : Hệ thống tự động cảnh báo sự cố tức thời ................................................. 4
1.2
Phương thức giám sát: .................................................................................................................. 4
1.2.1
1.2.2
2
Phương thức Poll................................................................................................................... 4
Phương thức Albert ............................................................................................................... 5
Giao thức SNMP ................................................................................................................................... 6
2.1
Giới thiệu SNMP: ......................................................................................................................... 6
2.1.1
Khái niệm: ............................................................................................................................. 6
2.1.2
Ưu điểm ................................................................................................................................ 6
2.1.3
Các phiên bản SNMP ............................................................................................................ 6
2.2
Cấu trúc SNMP ............................................................................................................................. 7
2.2.1
Network Management Station .............................................................................................. 7
2.2.2
Network Element: ................................................................................................................. 7
2.2.3
SNMP Agent ......................................................................................................................... 7
2.3
Một số khái niệm liên quan ........................................................................................................... 8
2.3.1
2.3.2
Object access ......................................................................................................................... 8
2.3.3
3
Object ID ............................................................................................................................... 8
Management Information Base - MIB .................................................................................. 9
MIB ..................................................................................................................................................... 10
1
3.1
3.2
SMIv1 ......................................................................................................................................... 11
3.3
SMIv2 ......................................................................................................................................... 14
3.4
MIB-2 .......................................................................................................................................... 16
3.5
4
Giới thiệu về MIB ....................................................................................................................... 10
Host-resources-mib ..................................................................................................................... 19
Các phiên bản SNMP .......................................................................................................................... 23
4.1
Tổng quan ................................................................................................................................... 23
4.2
SNMPv1 ...................................................................................................................................... 23
4.2.1
Cấu trúc bản tin SNMPv1 ................................................................................................... 23
4.2.2
Phương thức hoạt động: ...................................................................................................... 24
4.3
SNMPv2:..................................................................................................................................... 35
4.3.1
Cấu trúc bản tin SNMPv2: .................................................................................................. 35
4.3.2
Phương thức hoạt động: ...................................................................................................... 35
4.4
SMMPv3: .................................................................................................................................... 40
4.4.1
Cấu trúc bản tin SNMPv3: .................................................................................................. 41
4.4.2
Phương thức hoạt động: ...................................................................................................... 42
4.4.3
Mô hình bảo mật của SNMPv3: .......................................................................................... 42
2
1
1.1
Bài toán quản lý, giám sát, cảnh báo các thiệt bị và ứng dụng
Giám sát thiệt bị mạng
Sau đây là 3 bà tốn phổ biến nhất trong cơng việc quản trị mạng mà SNMP có thể giải quyết tốt
những vấn đề sau đây:
1.1.1 Bài toán thứ nhất : Giám sát tài nguyên máy chủ
Giả sử bạn có nhiều máy chủ chạy các hệ điều hành khác nhau. Làm thế nào có thể giám sát tài
nguyên của tất cả máy chủ hàng ngày, hàng giờ để kịp thời phát hiện các máy chủ sắp bị quá tải ? Giám
sát tài nguyên máy chủ nghĩa là theo dõi tỷ lệ chiếm dụng CPU, dung lượng còn lại của ổ cứng, tỷ lệ sử
dụng bộ nhớ RAM, … Vì ta khơng thể kết nối vào từng máy để xem do số lượng nhiều mà mỗi hệ điều
hành thì có cách kiểm tra khác nhau. Và vấn đề đó thì SNMP có thể làm được.
1.1.2 Bài toán thứ hai : Giám sát lưu lượng trên các port của switch, router
Bạn có nhiều thiết bị mạng của nhiều hãng khác nhau, mỗi thiết bị có nhiều port. Làm thế nào để
giám sát lưu lượng đang truyền qua tất cả các port của các thiết bị suốt 24/24, kịp thời phát hiện các port
sắp quá tải ? Và cũng không thể kết nối vào từng thiết bị để gõ lệnh lấy thơng tin vì thiết bị của các hãng
khác nhau có lệnh khác nhau. Có SNMP giám sát lưu lượng tốt trong việc này.
3
1.1.3 Bài toán thứ ba : Hệ thống tự động cảnh báo sự cố tức thời
Chúng có thể gặp nhiều vấn đề trong quá trình hoạt động như : port nào đó bị mất tín hiệu, có
ai đó đã cố kết nối vào thiết bị nhưng nhập sai username và password, thiết bị vừa mới bị khởi động lại,
….Làm thế nào để người quản trị biết được sự kiện khi nó vừa mới xảy ra ? Và SNMP ứng dụng thu thập
sự kiện và cảnh báo từ tất cả các thiết bị và hiện lên màn hình hoặc gửi email cho người quản trị biết.
1.2
Phương thức giám sát:
Hai phương thức giám sát “Poll” và “Albert” là 2 phương thức cơ bản của các kỹ thuật giám sát
hệ thống, nhiều phần mềm và giao thức được xây dựng dựa trên 2 phương thức này.
1.2.1
Phương thức Poll
Nguyên tắc hoạt động : manager sẽ thường xuyên hỏi thông tin của thiết bị cần giám sát. Nếu
Manager khơng hỏi thì Device khơng trả lời, nếu Manager hỏi thì Device phải trả lời. Bằng cách hỏi
thường xuyên, Manager sẽ luôn cập nhật được thông tin mới nhất từ Device.
4
1.2.2 Phương thức Albert
Nguyên tắc hoạt động: Mỗi khi trong Device xảy ra một sự kiện nào đó thì nó sẽ tự động gửi
thông báo cho Manager, gọi là Albert. Manager không hỏi thông tin định kỳ từ Device.
5
2
2.1
Giao thức SNMP
Giới thiệu SNMP:
2.1.1 Khái niệm:
SNMP là “giao thức quản lý mạng đơn giản” do đó nó có những quy định riêng mà các thành
phần trong mạng phải tuân theo cấu trúc, định dạng của dòng dữ liệu trao đổi với nhau và quy định trình
tự, thủ tục để trao đổi dịng dữ liệu đó. Một thiết bị hiểu được và hoạt động tuân theo giao thức SNMP
được gọi là “có hỗ trợ SNMP” hoặc “tương thích SNMP”. SNMP dùng để quản lý, nghĩa là có thể theo
dõi, có thể lấy thơng tin, có thể được thơng báo, và có thể tác động để hệ thống hoạt động như ý muốn.
VD một số khả năng của phần mềm SNMP :
+ Theo dõi tốc độ đường truyền của một router, biết được tổng số byte đã truyền/nhận.
+ Lấy thông tin máy chủ đang có bao nhiêu ổ cứng, mỗi ổ cứng còn trống bao nhiêu.
+ Tự động nhận cảnh báo khi switch có một port bị down.
+ Điều khiển tắt (shutdown) các port trên switch.
SNMP dùng để quản lý mạng, nghĩa là nó được thiết kế để chạy trên nền TCP/IP và quản lý các
thiết bị có nối mạng TCP/IP. Các thiết bị mạng không nhất thiết phải là máy tính mà có thể là
switch, router, firewall, adsl gateway, và cả một số phần mềm cho phép quản trị bằng SNMP.
2.1.2 Ưu điểm
SNMP được thiết kế để đơn giản hóa quá trình quản lý các thành phần trong mạng. Nhờ đó các
phần mềm SNMP có thể được phát triển nhanh và tốn ít chi phí. SNMP được thiết kế để có thể mở rộng
các chức năng quản lý, giám sát. Khơng có giới hạn rằng SNMP có thể quản lý được cái gì. Khi có một
thiết bị mới với các thuộc tính, tính năng mới thì người ta có thể thiết kế “custom” SNMP để phục vụ cho
riêng mình SNMP được thiết kế để có thể hoạt động độc lập với các kiến trúc và cơ chế của các thiết bị
hỗ trợ SNMP.
Các thiết bị khác nhau có hoạt động khác nhau nhưng đáp ứng SNMP là giống nhau. VD bạn có
thể dùng 1 phần mềm để theo dõi dung lượng ổ cứng còn trống của các máy chủ chạy HĐH Windows và
Linux; trong khi nếu không dùng SNMP mà làm trực tiếp trên các HĐH này thì bạn phải thực hiện theo
các cách khác nhau.
2.1.3 Các phiên bản SNMP
SNMP có 4 phiên bản: SNMPv1, SNMPv2c, SNMPv2u và SNMPv3. Các phiên bản này khác nhau
một chút ở định dạng bản tin và phương thức hoạt động. Hiện tại SNMPv1 là phổ biến nhất do có nhiều
thiết bị tương thích nhất và có nhiều phần mềm hỗ trợ nhất. Trong khi đó chỉ có một số thiết bị và phần
6
mềm hỗ trợ SNMPv3.
2.2
Cấu trúc SNMP
Một management station có thể quản lý nhiều element, một element cũng có thể được quản lý bởi
nhiều management station. Vậy nếu một element được quản lý bởi 2 station thì điều gì sẽ xảy ra ? Nếu
station lấy thơng tin từ element thì cả 2 station sẽ có thơng tin giống nhau. Nếu 2 station tác động đến
cùng một element thì element sẽ đáp ứng cả 2 tác động theo thứ tự cái nào đến trước.
2.2.1 Network Management Station
Thơng thường là một máy tính chạy phần mềm quản lý SNMP (SNMP management application),
dùng để giám sát và điều khiển tập trung các network element.
2.2.2 Network Element:
Là các thiết bị, máy tính, hoặc phần mềm tương thích SNMP và được quản lý bởi network
management station. Như vậy element bao gồm device, host và application.
2.2.3 SNMP Agent
SNMP agent là một tiến trình chạy trên network element, có nhiệm vụ cung cấp thơng tin của
element cho station, nhờ đó station có thể quản lý được element. Chính xác hơn là application chạy trên
station và agent chạy trên element mới là 2 tiến trình SNMP trực tiếp liên hệ với nhau.Ví dụ:
+ Để dùng một máy chủ quản lý các máy con chạy HĐH Windows thông qua SNMP thì
phải cài đặt một phần mềm quản lý SNMP trên máy chủ, bật SNMP service trên máy con.
+ Để dùng một máy chủ giám sát lưu lượng của một router thì phải cài phần mềm quản
lý SNMP trên máy chủ, bật tính năng SNMP trên route.
7
2.3
Một số khái niệm liên quan
2.3.1 Object ID
Một thiết bị hỗ trợ SNMP có thể cung cấp nhiều thơng tin khác nhau, mỗi thơng tin đó gọi là một
object. Ví dụ:
+ Máy tính có thể cung cấp các thơng tin: tổng số ổ cứng, tổng số port nối mạng, tổng số
byte đã
truyền/nhận, tên máy tính, tên các process đang chạy, ….
+ Router có thể cung cấp các thơng tin: tổng số card, tổng số port, tổng số byte đã
truyền/nhận, tên
router, tình trạng các port của router, ….
Mỗi object có một tên gọi và một mã số để nhận dạng object đó, mã số gọi là Object ID (OID).
Để lấy một thơng tin có OID đã chuẩn hóa thì SNMP application phải gửi một bản tin SNMP có
chứa OID của object đó cho SNMP agent, SNMP agent khi nhận được thì nó phải trả lời bằng thơng tin
ứng với OID đó.
2.3.2 Object access
Mỗi object có quyền truy cập là READ_ONLY hoặc READ_WRITE. Mọi object đều có thể đọc
được nhưng chỉ những object có quyền READ_WRITE mới có thể thay đổi được giá trị. VD : Tên của
một thiết bị (sysName) là READ_WRITE, ta có thể thay đổi tên của thiết bị thông qua giao thức SNMP.
Tổng số port của thiết bị (ifNumber) là READ_ONLY, dĩ nhiên ta không thể thay đổi số port của nó.
8
2.3.3
Management Information Base - MIB
MIB (cơ sở thông tin quản lý) là một cấu trúc dữ liệu gồm các đối tượng được quản lý các thiết bị
chạy trên nền TCP/IP. MIB được thể hiện thành 1 file (MIB file), và có thể biểu diễn thành 1 cây (MIB
tree). MIB có thể được chuẩn hóa hoặc tự tạo.
9
3
3.1
MIB
Giới thiệu về MIB
MIB (Management Information Base ) là một cấu trúc dữ liệu gồm các đối tượng được quản lý
(managed object), được dùng cho việc quản lý các thiết bị chạy trên nền TCP/IP. MIB là kiểu kiến trúc
chung mà các giao thức quản lý trên TCP/IP nên tuân theo, trong đó có SNMP. MIB được thể hiện thành
1 file (MIB file), và có thể được biểu diễn thành 1 cây (MIB tree). MIB có thể được chuẩn hóa hoặc tự
tạo.
Một node trong cây là một Object, có thể được gọi bằng tên hoặc id. Ví dụ:
+ Node iso.org.dod.internet.mgmt.mib-2.system có OID là .1.3.6.1.2.1 chứa tất cả các object
lien quan đến thong tin của một hệ thống như tên thiết bị ( iso.org.dod.internet.mgmt.mib2.system.sysName hay 1.3.6.1.2.1.1.5), liên hệ nhà sản xuất (iso.org.dod.internet.mgmt.mib2.system.sysContact hay 1.3.6.1.2.1.1.4)…
+ Các OID của các hãng tự thiết kế nằm dưới iso.org.dod.internet.private.enterprise, ví dụ :
Cisco nằm dưới iso.org.dod.internet.private.enterprise.cisco hay 1.3.6.1.4.1.9, Microsoft nằm dưới
10
iso.org.dod.internet.private.enterprise.microsoft
hay
1.3.6.1.4.1.311,
IBM
nằm
dưới
iso.org.dod.internet.private.enterprise.ibm hay 1.3.6.1.4.1.2 … số 2 (IBM) hay số 9 (Cisco) hay số 311
(Microsoft) là số dành riêng cho các công ty do IANA cấp. Nếu IBM hay Cisco chế tạo ra một thiết bị
nào đó, thì thiết bị này có thể hỗ trợ các MIB chuẩn đã được định nghĩa s n hay hỗ trợ MIB được thiết kế
riêng. Các MIB nào thiết kế riêng thì phải nằm bên dưới OID của cơng ty đó.
Các Object ID trong MIB được sắp xếp thứ tự nhưng không lien tục, khi biết được một OID thì
khơng chắc chắn có thể xác định được OID tiếp theo trong MIB.
Muốn hiểu được một OID nào thì cần có file MIB mơ tả OID đó. Một MIB file khơng nhất thiết
phải chứa tồn bộ cây ở trên mà có thể chỉ chứa mơ tả cho một nhánh con. Bất cứ nhánh con nào và tất cả
lá của nó đều có thể gọi là một mib.
Một manager có thể quản lý được một device chỉ khi ứn dụng SNMP manager và ứng dụng SNMP
agent cùng hỗ trợ một MIB. Các ứng dụng này cũng có thể hỗ trợ cùng lúc nhiều MIB.
3.2
SMIv1
Structure of Management Information vesion 1- MIB là một cấu trúc dữ liệu định nghĩa các đối
tượng được quản lý, được thiết kế để quản lý các thiết bị không chỉ riêng TCP/IP. Trong RFC 1155 mô tả
cấu trúc của mib file, cấu trúc này gọi là SMI (Structure of Management Information). Sau này mở rộng
11
thêm cấu trúc mib thành SMIv2, và phiên bản trong RFC1155 được gọi là SMIv1.
Mối đối tượng gồm 3 phần: Name, Syntax, Encoding
Name : là định danh của Object có kiểu OBJECT IDENTIFIER. OID là một chuỗi thứ tự các số
nguyên biểu diễn các nút (node) của một cây từ gốc tới ngọn.
Gốc (root node) trong MIB khơng có tên. Dưới root là 3 node con:
+ ccitt(0) : do CCITT(Consultative Committee for International Telephone and Telegraph) quản
lý.
+ iso(1) : do tổ chức ISO quản lý (International Organization for Standardization).
+ ccitt-iso(3) : do cả iso và ccitt cùng quản lý.
Dưới node iso(1), tổ chức iso thiết kế 1 node đanh cho các tổ chức khác là org(3).
Dưới org(3) có nhiều node con, một node dành riêng cho US Departtment of Defense - dod(6).
Bộ quốc ph ng Mỹ được coi là nơi sáng lập ra mạng internet, dưới dod(6) chỉ có 1 node dành cho
cộng đồng internet ngày nay là node internet(1).
Tất cả mọi thứ thuộc cộng đồng internet đều nằm dưới .iso.org.dod.internet, mọi object của các thiết
bị TCP/IP đều bắt đầu với tiền tố .1.3.5.1
RFC 1155 định nghĩa cây con như sau:
internet
OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }
directory
OBJECT IDENTIFIER ::= { internet 1 }
mgmt
OBJECT IDENTIFIER ::= { internet 2 }
experimental
OBJECT IDENTIFIER ::= { internet 3 }
private
OBJECT IDENTIFIER ::= { internet 4 }
enterprises
OBJECT IDENTIFIER ::= { private 1 }
+
private.enterprises.
12
Systax : mơ tả kiểu object là gì. Syntax được lấy từ chuẩn ASN.1 nhưng không phải tất cả kiểu đều
được hỗ trợ. SMIv1 chỉ hỗ trợ 5 kiểu nguyên thủy (primitive types) lấy từ ASN.1 và 6 kiểu định nghĩa
thêm (defined types).
Primitive types: INTEGER, OCTET-STRING, OBJECT IDENTIFIER, NULL, SEQUENCE.
Defines types:
+ NetworkAddress: kiểu địa chỉ internet (ip).
+ IpAddress: kiểu địa chỉ internet 32 bit (ipv4), gồm 4 octet lien tục.
+ Counter: kiểu số nguyên không âm 32 bit và tăng đều, khi số này tăng đến giới hạn thì phải
quay lại 0. Giá trị tối đa là 232 -1
+ Gauge: kiểu số ngun khơng âm 32 bit, có thể tăng hoặc giảm nhưng không tăng quá giá trị tối
đa 2 -1.
32
+ TimeTicks: kiểu số nguyên không âm, chỉ khoảng thời gian trơi qua kể từ một thời điểm nào
đó, tính bằng phần trăm giây.
+ Opaque: kiểu này cho ph p truyền một giá trị có kiểu tùy ý nhưng được đóng lại thành từng
OCTET-STRING theo quy cách của ASN.1.
Encoding: cơ chế Encoding là chuẩn BER trong ASN.1
ấu t
i u
-TYPE:
RFC 1155 quy định cấu trúc của một record “định nghĩa đối tượng quản lý” (a managed object
definition), kiểu dữ liệu này được gọi là OBJECT-TYPE. Nó bao gồm các trường:
+ SYNTAX: kiểu của object, là một trong các primitive types hay defined types ở trên.
+ ACCESS: mức truy cập của object, mang một trong các giá trị read-only, read-write, write-only,
not-accessible.
+ STATUS: mang một trong các giá trị mandatory (bắt buộc phải hỗ trợ), optional (có thể hỗ trợ hoặc
khơng), obsolete (đã bị thay thế). Một agent nếu hỗ trợ một chuẩn mib nào đó thì bắt buộc phải hỗ trợ tất
cả các object có status mandatory, c n status optional thì có thể hỗ trợ hoặc khơng.
+ DESCRIPTION: d ng giải thích cho ý nghĩa của object.
13
3.3
SMIv2
SMIv2 (Structure of Management Information version 2) được trình bày trong RFC2578, bao gồm
nhiều thay đổi trong cấu trúc mib file.
Các ki u dữ liệu mới hoặ thay đổi so với SMIv1
+ INTEGER32 : số nguyên nằm trong khoảng -231 và 231-1 (-2147483648 đến 2147483647).
+ OCTET STRING: kiểu chuỗi ký tự, độ dài tối đa 65535.
+ OBJECT IDENTIFIER: định danh của object, không quá 128 phần tử (sub-identifier), mỗi
phần tử là số nguyên không quá 232-1.
+ COUNTER32: kiểu số nguyên không âm tăng dần, tối đa là 232-1, khi vượt giá trị tối đa thì
quay lại từ 0. Counter32 khơng bắt buộc giá trị bắt đầu phải là 0.
+ GAUGE3: kiểu số nguyên không âm tăng hoặc giảm, giới hạn trong khoảng 0 ~ 232-1, nó
khơng thể vượt ra giới hạn này.
+ COUNTER64 : kiểm số nguyên không âm tăng dần, tối đa là 264-1 (18446744073709551615).
+ UNSIGNED32 : kiểu số nguyên từ 0 ~ 232-1.
Ki u dữ liệu OBJECT-TYPE
14
Trong SMIv1 kiểu OBJECT-TYPE bao gồm : SYNTAX, ACCESS, STATUS, DESCRIPTION.
Trong SMIv2 kiểu OBJECT-TYPE bao gồm các trường : SYNTAX, UNITS, MAX-ACCESS, STATUS,
DESCRIPTION, REFERENCE, INDEX, AUGMENTS, DEFVAL.
+ SYNTAX : kiểu dữ liệu của object, là một kiểu theo chuẩn ASN.1 hoặc các kiểu định nghĩa riêng
của SMIv2.
+ UNITS : là dịng text mơ tả một unit nào đó gắn liền với object, trường này khơng bắt buộc phải có.
+ MAX_ACCESS : có 5 quyền truy xuất object có ưu tiên từ thấp đến cao là "not-accessible",
"accessible-for-notify", "read-only", "read-write", "read-create"; MAX_ACCESS quy định quyền cao
nhất tác động đến object, quyền cao hơn bao gồm các quyền thấp hơn. VD object có MAX_ACCESS là
“read-write” thì có thể được đọc/ghi nhưng khơng thể tạo.
+ STATUS : trạng thái của object, mang một trong các giá trị “current” (định nghĩa của object đang
có hiệu lực và đang được sử dụng), “obsolete” (định nghĩa này đã cũ và có thể bỏ đi), “depricated” (định
nghĩa này đã cũ và các chuẩn tiếp theo có thể định nghĩa lại).
+ DESCRIPTION : dịng text mơ tả thơng tin ý nghĩa của object.
+ REFERENCE : là dịng text mơ tả đến các tài liệu khác có liên quan đến object này, reference
khơng bắt buộc phải có.
+ INDEX : chỉ ra trường index của object hiện tại. VD ifDescr có INDEX = ifIndex.
+ AUGMENTS : tương tự như INDEX và có thể dùng thay thế INDEX, nhưng chỉ một trong 2
trường INDEX hoặc AUGMENTS tồn tại, không thể tổn tại cùng lúc cả 2.
+ DEFVAL : giá trị mặc định (default value) của object khi nó được tạo ra.
Ki u dữ liệu NOTIFICATION-TYPE
Kiểu NOTIFICATION-TYPE được dùng để mô tả những thông tin quản lý mạng được truyền không
theo yêu cầu (ví dụ bản tin TrapPDU hoặc InformRequestPDU của SNMPv2, chúng được tự động gửi đi
khi có sự kiện xảy ra mà khơng cần phải có request từ thiết bị khác).
Các notification phải được định nghĩa trong mib, cấu trúc của chúng bao gồm các mệnh đề sau :
+ OBJECT : danh sách có thứ tự các object có liên quan đến notification, vd bản tin notification cho 4
interface của thiết bị thì OBJECT phải chứa ifIndex của 4 interface đó.
15
+ STATUS : mang một trong 3 giá trị “current”, “obsolete” hoặc “depricated”.
+ DESCRIPTION : dịng text mơ tả ý nghĩa của notification.
+ REFERENCE : mô tả các tài liệu có liên quan đến định nghĩa của notification, REFERENCE
khơng bắt buộc phải có.
3.4
MIB-2
RFC1155 mơ tả cách trình bày một mib file như thế nào chứ không định nghĩa các object. RFC1213
là một chuẩn định nghĩa nhánh mib nằm dưới iso.org.dod.internet.mgmt.mib-2 (tất nhiên phải theo cấu
trúc mà RFC1155 quy định). Chúng ta sẽ khảo sát một phần RFC1213 để hiểu ý nghĩa của một số object
trước khi dùng công cụ để đọc chúng.
RFC1156 là đặc tả mib chuẩn cho các thiết bị TCP/IP, được coi là Internet-Standard Mib (mib version 1).
RFC1213 là đặc tả mib chuẩn version 2, thường gọi là mib-2. Chú ý phân biệt mib-1 và mib-2 là các
chuẩn đặc tả định nghĩa của các object, c n SMIv1 và SMIv2 là đặc tả cấu trúc của mib file. Mib-1 và
mib-2 sử dụng cấu trúc của SMIv1.
Mib-2 là một trong những mib được hỗ trợ rộng rãi nhất. Nếu một thiết bị được tuyên bố là có hỗ
trợ SNMP thì hãng sản xuất phải chỉ ra nó hỗ trợ các RFC nào, và thường là RFC1213. Nhiều bạn chỉ biết
thiết bị của mình “có hỗ trợ SNMP” nhưng khơng rõ hỗ trợ các RFC nào, và dùng phần mềm giám sát
SNMP hỗ trợ
RFC1213 để giám sát thiết bị nhưng không thu được kết quả. Lý do là phần mềm thì hỗ trợ RFC1213
nhưng thiết bị thì khơng.
Vị trí của MIB-2 trong mib như sau :
16
Các kiểu dữ liệu mới được định nghĩa trong mib-2 gồm :
+ Display String : kế thừa từ kiểu OCTET STRING nhưng chỉ bao gồm các ký tự in được (printable
characters) và dài không quá 255 ký tự.
+ Physical Address : giống kiểu OCTET STRING, được dùng để biểu diễn địa chỉ vật lý của thiết bị.
Dưới mib-2 có 10 node con bao gồm: system(1), interfaces(2), at(3), ip(4), icmp(5), tcp(6), udp(7),
egp(8), trasmision(10) ,snmp(11).
Name
Syntax
Description
Internet-standard mib version (RFC1213)
mib-2(1)
OID : .1.3.6.1.2.1
System(1)
D ng văn bản mơ tả node hiện đang hỗ trợ
sysDescr(1)
DisplayString
mib này, có thể bao gồm tên, version, kiểu
phần cứng, hệ điều hành, …
Định danh đã được đăng ký của hảng sản
sysObjectID(2)
Object identifier
xuất hệ thống. Giá trị này phải khó nhầm lẫn
và miêu tả được đây là loại thiết bị gì
Thời gian tính từ khi module quản trị mạng
sysUpTime(3)
của hệ thống khởi động lại (kiểu TimeTicks
TimeTicks
tính bằng phần trăm giây)
sysContact(4)
sysName(5)
DisplayString
DisplayString
17
D ng văn bản chỉ định người cần liên lạc
nếu có các vấn đề đối với hệ thống
Tên được gán cho node để quản lý
sysLocation(6)
DisplayString
Vị trí vật lý đặt node
Chỉ ra node có thể hoạt động ở các layer
nào của OSI. Giá trị của nó là tổng tất cả các
sysServices(7)
2(Layer-1) với Layer là số lớp OSI. VD một
Integer
router hoạt động ở lớp 3 thì giá trị này sẽ là
2(3-1) =4
interfaces(2)
ifNumber(1)
ifTable(2)
Tổng số giao tiếp mạng hiện có trong hệ
Integer
Sequence
ifEntry(1)
thống
Danh sách các thơng tin của từng interface
Một entry chứa các object mang thông tin
ifEntry
của một interace trong danh sách
Giá trị duy nhất của mỗi interface, giá trị
ifIndex(1)
này chạy từ 1 đến ifNumber, và khơng thay
Integer
đổi ít nhất cho đến khi hệ thống khởi động
lại
ifDescr(2)
DisplayString
D ng text mang thông tin của một interface
Kiểu interface, dựa vào giao thức lớp
ifType(3)
physical/link
của
interface.
ethernetCsmacd(6),
Integer
fddi(15),
VD
:
e1(19),
atm(37), sonet(39), v35(45), …
Kích thước của datagram lớn nhất có thể
ifMtu(4)
Integer
ifSpeed(5)
Gauge
fPhysAddress(6)
PhysicalAddress
Địa chỉ vật lý của interface
ifAdminStatus(7)
Integer
Trạng thái mong muốn của interface
ifOperStatus(8)
Integer
Trạng thái hoạt động thực tế của interface
truyền/nhận trên interface
Băng thơng hiện tại của interface, tính bằng
bit per second
Giá trị của sysUpTime tại thời điểm
ifLastChange(9)
interface đi vào trạng thái hoạt động như
TimeTicks
hiện tại
ifInOctets(10)
ifInUcastPkts(11
Counter
ifInNUcastPkts(12)
Tổng số octet đã nhận trên interface
Counter
Counter
Số gói unicast được đưa đến giao thức lớp
cao hơn
Số gói nonunicast được đưa đến giao thức
lớp cao hơn (broadcast, multicast)
18
Số gói tin nhận được bị hủy (kể cả các
ifInDiscards(13)
gói không bị lỗi) để ngăn không cho chúng
Counter
đến tầng xử lý cao hơn, vd khi tràn bộ đệm
nhận
ifInErrors(14)
ifInUnknownProtos(15
)
ifOutOctets(16)
Số gói tin nhận được có chứa lỗi
Counter
Số gói tin nhận được từ interface nhưng bị
discard vì nó thuộc giao thức khơng được hỗ
Counter
trợ
Tổng số octet đã truyền ra interface
Counter
Tổng số gói tin unicast mà tầng giao thức
ifOutUcastPkts(17)
cao hơn yêu cầu truyền ra (kể cả các gói sẽ
Counter
bị discard)
Tổng số gói tin non-unicast mà tầng giao
ifOutNUcastPkts (18)
thức cao hơn yêu cầu truyền ra (kể cả các
Counter
gói sẽ bị discard)
Số gói tin cần truyền ra bị hủy (kể cả các
ifOutDiscards(19)
gói khơng bị lỗi) để ngăn không cho chúng
Counter
đến tầng xử lý cao hơn, vd khi tràn bộ đệm
phát
ifOutErrors(20)
Counter
Số gói tin khơng thể truyền ra do có lỗi
ifOutQLen(21)
Gauge
Độ dài của hàng đợi bản tin truyền đi
Tham chiếu đến định nghĩa mib dành riêng
cho loại media của interface. VD nếu
interface thuộc ethernet thì giá trị này chỉ ra
ifSpecific(22)
Object identifier
tài liệu mô tả các
object của riêng ethernet. Nếu node khơng
cung cấp được thơng tin này thì giá trị của
ifSpecific phải là .0.0
3.5
Host-resources-mib
RFC2790 là mib dùng cho host, nó cung cấp định nghĩa nhiều object như thơng tin hệ thống, lưu trữ,
device, software, performance. Dịch vụ SNMP agent trên Windows và Linux đều hỗ trợ RFC2790.
Vị trí của Host-mib trong mib như sau :
host
OBJECT IDENTIFIER ::= { mib-2 25 }
Tức là .iso.org.dod.internet.mgmt.mib-2.host hay .1.3.6.1.2.1.25.
19
Các kiểu dữ liệu mới được định nghĩa trong host-mib gồm :
+ Kbytes : kiểu INTEGER32, thể hiện kích thước của thiết bị lưu trữ, đơn vị tính là 1024 Bytes.
+ ProductID : xác định nhà sản xuất, model, phiên bản của phần cứng hay phần mềm.
+ AutonomousType : kiểu giá trị định danh có thể mở rộng độc lập, ví dụ nó có thể chỉ ra một cây
mib con nào đó được định nghĩa bởi một tài liệu khác.
+ DateAndTime : kiểu ngày và giờ, định dạng như sau :
“year-mon-day,hour:min:sec.centiSec,±HourFromUCT:MinFromUTC”. Ví dụ “15/01/2010 1:30:15
PM, GMT+7” được biểu diễn là “2010-01-15,13:30:15.0,+7:0”
một số object quan trọng trong công tác giám sát server như tình trạng hệ thống, tình trạng lưu trữ (ổ
cứng), tỷ lệ sử dụng cpu & bộ nhớ của từng process, danh sách các phần mềm cài đặt
Name
Syntax
Description
Host-Recources-Mib (RFC2790) OID :
host-mib(25)
.1.3.6.1.2.1.25
hrSystem(1)
hrSystemUptime(1)
TimeTicks
20
Thời gian trôi qua kể từ khi host khởi
động,tính bằng phần trăm giây
hrSystemDate(2)
DateAndTime
Ngày giờ local của host
Index của thiết bị mà host được cấu
hrSystemInitialLoadDevice(3)
Integer32
hình để load hệ điều hành (danh sách
thiết
bị
và
index
nằm
trong
hrDeviceEntry)
hrSystemInitialLoadParamete
rs(4)
DisplayString
hrSystemNumUsers(5)
Gauge32
hrSystemProcesses(6)
Gauge32
Chuỗi tham số cung cấp cho thiết bị
chứa HĐH khi khi động
Số lượng session của các user đang log
vào host
Số lượng process đang chạy trên host
Số lượng process tối đa mà hệ thống có
hrSystemMaxProcesses(7)
Integer32
thể hỗ trợ, nếu hệ thống khơng giới hạn
số process thì object này
0
hrStorage(2)
(chưa được định nghĩa)
hrStorageTypes(1)
hrMemorySize(2)
KBytes
hrStorageTable(3)
Sequence
hrStorageEntry(1)
hrStorageIndex(1)
hrStorageType(2)
hrStorageDescr(3)
Dung lượng bộ nhớ vật lý chính của
host, thường là RAM
Bảng chứa các vùng lưu trữ logic trên
host
hrStorageEntry
Integer32
AutonomousType
DisplayString
Giá trị duy nhất của mỗi thiết bị lưu trữ
vật lý trên host
Kiểu thiết bị lưu trữ
Mơ tả thiết bị lưu trữ
Kích thước tính bằng byte của một đơn
hrStorageAllocationUnits(4)
Integer32
vị lưu trữ dữ liệu, vd trên windows ntfs
mặc định mỗi
block là 4KB
hrStorageSize(5)
Integer32
hrStorageUsed(6)
Integer32
hrStorageAllocationFail
ures(7)
Counter32
21
Kích thước của thiết bị lưu trữ, đơn vị
tính là hrStorageAllocationUnits
Dung lượng đã sử dụng, tính bằng
hrStorageAllocationUnits
Số lần các yêu cầu lưu trữ bị từ chối do
không c n dung lượng trống
hrDevice(3)
Bảng chứa thông tin về bộ xử lý của
hrProcessorTable(3)
host
hrProcessorEntry(1)
hrProcessorFrwID(1)
ProductID
hrProcessorLoad(2)
Integer
Mã sản phẩm của bộ xử lý
Tỷ lệ phần trăm thời gian rỗi của cpu,
tính trung bình trong 1 phút vừa qua
hrSWRunPerf(5)
Bảng chứa các kết quả đo hiệu suất
chiếm dụng cpu & ram của từng
hrSWRunPerfTable(1)
process
hrSWRunPerfEntry(1)
hrSWRunPerfCPU(1)
Integer32
hrSWRunPerfMem(2)
KBytes
Thời gian chiếm dụng cpu của process,
tính bằng centi-second
Lượng bộ nhớ được cấp phát cho
process
hrSWInstalled(6)
Giá trị của sysUpTime từ khi có một
hrSWInstalledLastChange(1)
TimeTicks
phần mềm nào đó được cài, thay đổi
hay gỡ bỏ
Giá
hrSWInstalledLastUpdateTime(2)
TimeTicks
trị
của
sysUpTime
từ
khi
hrSWInstalledTable được cập nhật
hoàn toàn lần gần nhất
hrSWInstalledTable(3)
Sequence
Danh sách các phần mềm được cài trên
host
hrSWInstalledEntry(1)
hrSWInstalledIndex(1)
Integer32
Giá trị duy nhất của từng phần mềm
trên host
Tên của từng phần mềm trên host, có
hrSWInstalledName(2)
DisplayString
thể bao gồm cả tên nhà sản xuất,
version.
hrSWInstalledID(3)
ProductID
Mã sản phẩm của phần mềm
Kiểu
hrSWInstalledType(4)
Integer
phần
mềm,
gồm
:
unknown(1),operatingSystem(2),
deviceDriver(3), application(4)
hrSWInstalledDate(5)
DateAndTime
22
Thời điểm thay đổi gần nhất trong cây
thư mục của phần mềm. Nếu host
không biết thông tin này thì object này
phải
mang
giá
trị
0000-01-
01,0:0:0,+0:0
4
4.1
Các phiên bản SNMP
Tổng quan
Các phiên bản SNMP hiện tại:
+ SNMPv1: Phiên bản đầu tiên của SBMP.
+ SNMPv2c: SNMP version 2 chia làm hai phiên bản khác nhau ở cơ chế bảo mật, trong
đó một phiên bản vẫn dựa vào cơ chế bảo mật community string như ở SNMPv1 gọi là
Community-based SNMPv2 hay SNMPv2c.
+ SNMPv2u: Đây là phiên bản SNMPv2 sử dụng cơ chế bảo mật có chứng thực
băm(hash) và mả hoá đối xứng dữ liệu, gọi là User-based SNMPv2 hay SNMPv2u. (Sau này
phiên bản SNMPv3 ra đời thay thế hoàn toàn SNMPv2u, nên hiện nay rất ít thiết bị hỗ trợ
SNMPv2vu).
+ SNMPv3: Phiên bản bảo mật nhất của SNMP sử dụng mơ hình bảo mật dựa trên người
dùng (User-based security model) với các cô chế chứng thực bằng băm (MD5, SHA) và mã hoá
(DES, AES) hiện đại. Việc lập trình ứng dụng hỗ trợ được SNMPv3 phức tạp hơn, do đó hầu hết
các phần mềm hỗ trợ SNMPv3 đều có tính phí, trong khí đó các phiên bản miễn phí chỉ hỗ trợ
SNMPv1 và SNMPv2.
Các phiên bản SNMP khác nhau những gì:
+ Khác nhau ở phương thức hoạt động (operation): SNMPv1 có 5 phương thức, ở
SNMPv2 và SNMPv3 được bổ sung thêm các phương thức hoạt động khác.
+ Khác nhau ở cấu trúc bản tin SNMP (message format): Ở mỗi phiên bản SNMP sẽ có
cấu trúc bản tin khác nhau.
4.2
SNMPv1
4.2.1 Cấu trúc bản tin SNMPv1
SNMP chạy trên nền tảng UDP. Cấu Trúc của một bản tin SNMP bao gồm: version,
community string và data.
23
SNMP PACKET
VERSION
-
DATA (GetRequest PDU,
GetNextRequest PDU,
SetRequest PDU,
GetResponse PDU, Trap
PDU)
Version: Xác định phiên bản SNMP ( SNMPv1 thì verison = 0).
-
Community string : Là một chuỗi kí tự được cài đặt giống nhau trên cả SNMP
COMMUNITY STRING
anget và SNMP manager đóng vai tr như là “mật khẩu” giữa hai bên trong quá trình trao đổi
thơng tin. Community string có ba loại: Read-community, Write-community và Trapcommunity.
-
Phần Data trong gói tin được gọi là PDU (Protocol Data Unit). SNMPv1 có năm
phương thức hoạt động tương ứng với năm loại PDU. Tuy nhiên chỉ có hai loại định dạng bản tin
là PDU và Trap-PDU; trong đó các bản tin của phương thức GetRequest, GetNextRequest,
SetRequest, GetResponese có cùng định dạng là PDU, cịn lai là bản tin Trap có định dạng là
Trap-PDU.
4.2.2
Phương thức hoạt động:
Giao thức SNMPv1 có 5 phương thức hoạt động là: GetRequest PDU, GetNextRequest
PDU, SetRequest PDU, GetResponse PDU, Trap. Mỗi bản tin đều có chứ OID để biết object
mang trong nó là gì. OID trong GetRequest cho biết nó muốn lấy thơng tin của object nào. OID
trong Getresponse cho biết nó mang thơng tin của object nào. OID trong SetResquest cho biết nó
mó muốn thiết lập thôn tin cho object nào. OID trong Trap chỉ ra nó thơng báo sự kiện xảy ra
với object nào.
GetRequest: Agent lắng nghe request ở cổng UDP 161 và Manager nhận Trap ở cổng
UDP 162. Bản tin GetRequest được manager gửi đến angent đế lấy một thông tin nào đó. Trong
bản tin GetRequest có OID của object muốn lấy thơng tin. Trong bản tin GetRequest có thế chứa
nhiều OID, nghĩa là dùng mo654t GetRequest có thề lấy về cúng lúc nhiều thông tin.
Cấu trúc PDU của GetRequest:
24
+ request-id: Mã số của request. ID này là số ngẫu nhiên cho manager tạo ra, agent khi
gửi bản tin response cho request nào thì phải gửi requestID như lúc nhận. Giữa manager và agent
có thể có nhiều request&response, một request và respone được gọi là cùng một phiên trao đổi
khí chúng có requestID giống nhau.
+ error-status: nếu error-stutus
0 là phương thức thực hiện thành cơng, khơng có lỗi xày
ra.Nếu error-status < 0(error-status > 0) là có lỗi xảy ra. Trong bản tin GetRequest,
GetNextRequest, SetRequest thì error-status ln là 0.
+ error-index: Số thứ tự của của objectID liên quan đến lổi nếu có. Trong variablebinding có nhiều objectID được đánh số từ 1 đến n, một bản tin GetRequest cùng lúc có thế lấy
nhiều object.
+ variable-bindings: Danh sách các cặp [objectID - value] cần lấy thơng tin, trong đó
objectID là định danh của object cần lấy thơng tin, cịn value không mang giá trị. Khi agent gửi
bản tin trả lời thì nó sẽ copy lại bản tin này và điền vào value bằng giá trị của object.
VD: Giám sát switch bằng phần mềm PRTG. Dùng phần mềm bắt gòi tin Wireshark, thấy
được cấu trúc bán tin Getrequest.
25