I/ Giới thiệu về SNMP (Simple Network Managerment Protocol).
1/ Lịch sử hình thành và phát triển.
. Mặc dù một số kết nối RS-232 vẫn còn bám desperately cho các sản
phẩm phần cứng âm thanh trên khắp thế giới, trong nhiều năm qua, Ethernet
và Giao thức Internet (IP) đã được thay thế các định dạng cũ hơn cịn nối tiếp
truyền thơng như là kết nối được lựa chọn để giám sát và kiểm tra, kiểm soát
âm thanh, cũng như xem video, mạng , và các thiết bị công nghiệp. Kể từ khi
thơ ấu của mạng máy tính, mạng envisioned thiết kế một thế giới mà một
người của hệ thống âm thanh, video hệ thống, hệ thống HVAC, và toaster tất
cả các kết nối vào cùng một mạng.Sau đó, nhà khoa học máy tính phát triển
một giao thức có khả năng quản lý bất kỳ mạng điện thoại. Kết quả là SNMP
(Simple Network Managerment Protocol) được hiểu là: Giao thức quản lý
mạng đơn giản .SNMP đã được giới thiệu vào năm 1988 và hiện nay bao gồm
ba phiên bản khác biệt SNMPv1, SNMPv2, và SNMPv3. Do có kỳ hạn thanh
tốn của SNMP, nhiều nhà sản xuất thiết bị bao gồm hỗ trợ cho các giao thức
này trong các sản phẩm của họ, và có rất nhiều các giải pháp quản lý SNMP
tồn tại off-the-shelf phổ biến cho các hệ điều hành và ngơn ngữ lập trình. Tuy
nhiên, khả năng quản lý SNMP vẫn cịn thiếu cho ngày hơm nay hệ thống
kiểm sốt của hệ điều hành, địi hỏi phải kiểm sốt hệ thống lập trình để viết
riêng của họ quản lý SNMP mã.
2/ Tổng quan về SNMP.
- Hệ thống quản lý nói chung được gọi là NMS( Network Managerment
System) bao gồm:
+ WMI (Web management interface)
+ CLI (Command Line Interface)
+ SNMP (Simple Network Management Protocol)
Trong đó, SNMP là phương pháp thơng dụng, rẻ tiền, và được sử dụng
rộng rãi nhất.
- Công nghệ SNMP Simple Network Management Protocol là dựa trên
TCP/IP protocol dùng trong việc quản lý các device trên network. Những
thiết bị thông thường (giá từ ngàn USD trở lên cho tới vài trăm ngày dollar)
được dùng SNMP quản lý bao gồm router, optical switch, firewall, printer
những thiết bị khơng có CPU hay những bộ vi xử lý phức tạp.. thậm chí cả
PC và hay các server chạy web server và database. Nếu bạn sử dụng WinXP
bạn có thể mở các chức năng SNMP của máy bạn lên sau đó từ 1 máy khác
bạn có thể đọc được các thơng tin của máy bạn thông qua SNMP. Không
phải là cái switch hay cái router hay cái printer nào cũng có chạy SNMP
đâu, chỉ có những cái nào mắc tiền thì người ta mới cài đặt vào để quản lý
nó mà thơi.
- Chức năng quản lý này bao gồm truy cập thông tin, thay đổi cấu hình, và
thơng báo những sự cố và trục trắc của device. Trên các thiết bị network này
thường có 1 program theo dõi và kiểm soát điều kiện hoạt động của thiết bị.
Nếu nó khám phá ra có sự cố thì có thể gởi các message tới 1 máy quản lý
chính (NOC) thơng qua SNMP TrapAgent. Trên các thiết bị này, người ta
thường chạy các SNMP agent để lắng nghe các SNMP packet (UDP packet)
đến từ port 161. Khi nhận được request từ các máy khác, thì agent này sẻ trả
lời lại dựa trên 1 bảng thông tin MIB (management information block) hay
nó sẻ chạy các program thích họp để xử lý yêu cầu đó.
- Quản lý đơn giản Mạng Protocol (SNMP) được sử dụng trong mạng lưới
hệ thống quản lý để giám sát mạng kèm theo các thiết bị cho các điều kiện
đảm bảo rằng sự chú ý của cơ quan hành chính. SNMP là một phần khơng thể
thiếu của Internet Protocol Suite như được định nghĩa bởi Internet
Engineering Task Force (IETF). Nó gồm có một bộ các tiêu chuẩn cho mạng
lưới quản lý, bao gồm một lớp ứng dụng giao thức, một cơ sở dữ liệu schema,
và một tập hợp các dữ liệu đối tượng.
- SNMP chẳng qua là một tập hợp đơn giản các hoạt động giúp nhà quản trị
mạng có thể quản lý, thay đổi trạng thái của mạng. Ví dụ chúng ta có thể dùng
SNMP để tắt một interface nào đó trên router của mình, theo dõi hoạt động
của card Ethernet, hoặc kiểm soát nhiệt độ trên switch và cảnh báo khi nhiệt
độ quá cao.
- SNMP có thể dùng để quản lý các hệ thống Unix, Window, máy in, nguồn
điện… Nói chung, tất cả các thiết bị có thể chạy các phần mềm cho phép lấy
được thông tin SNMP đều có thể quản lý được. Khơng chỉ các thiết bị vật lý
mới quản lý được mà cả những phần mềm như web server, database.
- Một hướng khác của quản trị mạng là theo dõi hoạt động mạng, có nghĩa
là theo dõi toàn bộ mạng, trái với theo dõi các router, host, hay các thiết bị
riêng lẻ. RMON (Remote Network Monitoring) có thể giúp ta hiểu làm sao
một mạng có thể tự hoạt động, làm sao các thiết bị riêng lẻ trong một mạng có
thể hoạt động đồng bộ trong mạng đó.
3/ khái niệm về SNMP
- SNMP (Simple Network Management Protocol): là giao thức được sử dụng
rất phổ biến để giám sát và điều khiển thiết bị mạng như switch, router,
bridge... Với những văn phịng nhỏ chỉ có vài thiết bị mạng và đặt tập trung
một nơi thì có lẽ bạn khơng thấy được lợi ích của SNMP. Nhưng với các hệ
thống mạng lớn, thiết bị phân tán nhiều nơi và bạn cần phải ngồi một chỗ mà
có thể quản tất cả thiết bị, bạn mới thấy được lợi ích của SNMP.Microsoft
Windows Server 2003 cung cấp phần mềm SNMP agent để có thể làm việc
với phần mềm quản lý SNMP từ nhà cung cấp thứ 3 nhằm giám sát các trạng
thái của thiết bị quản lý và các ứng dụng.
- SNMP là giao thức quản lý phổ biến được những người dung Internet với
giao thức TCP/IP định nghĩa. SNMP là một giao thức truyền thông để thu thập
thông tin từ những thiết bị trên mạng. Mỗi thiết bị chạy một chương trình con
thu thập thơng tin và cung cấp thơng tin đó cho bộ phận quản lý. Các đối
tượng được quản lý sẽ định nghiã từng phần thông tin về một thiết bị như số
gói tin mà thiết bị này nhận được
- SNMP bao gồm ba chuẩn:
+ SNMP version 1: chuẩn của giao thức SNMP được định nghĩa trong
RFC 1157 và là một chuẩn đầy đủ của IETF. Vấn đề bảo mật của SNMP
v1 dựa trên nguyên tắc cộng đồng, khơng có nhiều password, chuổi văn
bản thuần và cho phép bất kỳ một ứng dụng nào đó dựa trên SNMP có thể
hiểu các hiểu các chuổi này để có thể truy cập vào các thiết bị quản lý. Có
3 tiêu chuẩn trong: read-only, read-write và trap
SNMP version1 hoạt động với các tính năng sau:
Get: Được sử dụng bởi các NMS, để lấy các giá trị của một hay
nhiều đối tượng từ một trường đại lý
Get next: Được sử dụng bởi các NMS, để lấy các giá trị của các đối
tượng kế tiếp dụ trong một bảng hoặc một trong một danh sách đại
lý
Set: Được sử dụng bởi các NMS để đặt giá trị của các đối tượng
trong một trường đại lý.
Trap: . Được sử dụng bởi các đại lý để thông báo cho NMS
asynchronously của một sự kiện đáng kể.
+ SNMP version 2: phiên bản này dựa trên các chuổi “community”. Do
đó phiên bản này được gọi là SNMPv2c, được định nghĩa trong RFC 1905,
1906, 1907, và đây chỉ là bản thử nghiệm của IETF. Mạc dù chỉ là thử
nghiệm nhưng nhiều nhà sản xuất đã đưa nó vào thực nghiệm.
SNMP version 2 hoạt động với các tính năng sau:
GetBulk: Được sử dụng bởi các NMS để lấy hiệu quả lớn của
khối dữ liệu.
Inform : Cho phép một NMS để gửi thơng tin đến một trap
NMS và sau đó nhận được phản hồi.
+ SNMP version 3: là phiên bản tiếp theo được IETF đưa ra bản đầy đủ.
Nó được khuyến nghị làm bản chuẩn, được định nghĩa trong RFC 1905,
RFC 1906, RFC 1907, RFC 2571, RFC 2572, RFC 2573, RFC 2574 và
RFC 2575. Nó hổ trợ các loại truyền thơng riêng tư và có xác nhận giữa
các thực thể.
SNMP version 3 có tính năng bảo mật Enhancement:
Chặn người dùng dựa trên mơ hình an ninh USM(User-based
Security Model) cho bài viết SNMP an ninh
Xem dựa trên Access Control Model (VACM: View-based
Access Control Model ) để kiểm soát truy cập.
Tự động cấu hình bằng cách sử dụng các đại lý SNMP. SNMP
SET lệnh
Giới thiệu giao thức SNMP.
- Giao thức SNMP được thiết kế để cung cấp một phương thức đơn giản
để quản lý tập trung mạng TCP/IP. Nếu bạn muốn quản lý các thiết bị từ 1 vị
trí tập trung, giao thức SNMP sẽ vận chuyển dữ liệu từ client (thiết bị mà
bạn đang giám sát) đến server nơi mà dữ liệu được lưu trong log file nhằm
phân tích dễ dàng hơn. Các phần mềm ứng dụng dựa trên giao thức SNMP
như:Tivoli của IBM, MOM của Microsft và HP Openview vv…
SNMP sử dụng giao thức UDP
- UDP (User Datagram Protocol) là đối lập với TCP(Transmission
Control Protocol). UDP nhanh hơn, nhưng khơng tin cậy. Nó thi hành và sử
dụng đơn giản hơn là TCP.Tuy nhiên nó cung cáp nhiều chức năng cho phép
1 trạm quản lý tập trung có thể liên lạc với agent từ xa được đặt ở bất kì thiết
bị được quản klý nào mà nó có thể liên lạc tới. Ngoài ra việc sủ dụng UDP
sẽ giảm độ trễ trong mạng so với việc sử dụng TCP.
Hoạt động của SNMP
Có hai nhân tố chính trong SNMP: manager và agent:
+ Manager :là một server có chạy các chương trình có thể thực hiện một
số chức năng quản lý mạng. Manager có thể xem như là NMS (Network
Manager Stations). NMS có khả năng thăm dị và thu thập các cảnh báo từ
các Agent trong mạng. Thăm dò trong việc quản lý mạng là “nghệ thuật” đặt
ra các câu truy vấn đến các agent để có được một phần nào đó của thơng tin.
Các cảnh báo của agent là cách mà agent báo với NMS khi có sự cố xảy ra.
Cảnh bảo của agent được gửi một cách không đồng bộ, không nằm trong
việc trả lời truy vấn của NMS. NMS dựa trên các thông tin trả lời của agent
để có các phương án giúp mạng hoạt động hiệu quả hơn. Ví dụ khi đường
dây T1 kết nối tới Internet bị giảm băng thông nghiêm trọng, router sẽ gửi
một thơng tin cảnh báo tới NMS. NMS sẽ có một số hành động, ít nhất là
lưu lại giúp ta có thể biết việc gì đã xảy ra. Các hành động này của NMS
phải được cài đặt trước.
+Agent : là một phần trong các chương trình chạy trên các thiết bị mạng
cần quản lý. Nó có thể là một chương trình độc lập như các deamon trong
Unix, hoặc được tich hợp vào hệ điều hành như IOS của Cisco trên router.
Ngày nay, đa số các thiết bị hoạt động tới lớp IP được cài đặt SMNP agent.
Các nhà sản xuất ngày càng muốn phát triển các agent trong các sản phẩm
của họ công việc của người quản lý hệ thống hay quản trị mang đơn giản
hơn. Các agent cung cấp thông tin cho NMS bằng cách lưu trữ các hoạt độn
khác nhau của thiết bị. Một số thiết bị thường gửi một thơng báo “tất cả đều
bình thường” khi nó chuyển từ một trạng thái xấu sang một trạng thái tốt.
Điều này giúp xác định khi nào một tình trạng có vấn đề được giải quyết.
- Mơ hình hoạt động giữa Manager và Agent:
- SNMP sử dụng UDP (User Datagram Protocol)( UDP (User Datagram
Protocol) là một trong những giao thức cốt lõi của giao thức TCP/IP. Dùng
UDP, chương trình trên mạng máy tính có thể gởi những dữ liệu ngắn được
gọi là datagram tới máy khác. UDP không cung cấp sự tin cậy và thứ tự
truyền nhận mà TCP làm; các gói dữ liệu có thể đến không đúng thứ tự hoặc
bị mất mà không có thơng báo. Tuy nhiên UDP nhanh và hiệu quả hơn đối
với các mục tiêu như kích thước nhỏ và yêu cầu khắt khe về thời gian. Do
bản chất không trạng thái của nó nên nó hữu dụng đối với việc trả lời các
truy vấn nhỏ với số lượng lớn người yêu cầu.
- Những ứng dụng phổ biến sử dụng UDP như DNS (Domain Name
System), ứng dụng streaming media, Voice over IP, Trivial File Transfer
Protocol (TFTP), và game trực tuyến. như là giao thức truyền tải thông tin
giữa các manager và agent. Việc sử dụng UDP, thay vì TCP (Giao thức TCP
(Transmission Control Protocol - "Giao thức điều khiển truyền vận") là một
trong các giao thức cốt lõi của bộ giao thức TCP/IP. Sử dụng TCP, các ứng
dụng trên các máy chủ được nối mạng có thể tạo các "kết nối" với nhau, mà
qua đó chúng có thể trao đổi dữ liệu hoặc các gói tin. Giao thức này đảm bảo
chuyển giao dữ liệu tới nơi nhận một cách đáng tin cậy và đúng thứ tự. TCP
còn phân biệt giữa dữ liệu của nhiều ứng dụng (chẳng hạn, dịch vụ Web và
dịch vụ thư điện tử) đồng thời chạy trên cùng một máy chủ.
- TCP hỗ trợ nhiều giao thức ứng dụng phổ biến nhất trên Internet và các
ứng dụng kết quả, trong đó có WWW, thư điện tử và Secure Shell.
- Trong bộ giao thức TCP/IP, TCP là tầng trung gian giữa giao thức IP
bên dưới và một ứng dụng bên trên. Các ứng dụng thường cần các kết nối
đáng tin cậy kiểu đường ống để liên lạc với nhau, trong khi đó, giao thức IP
khơng cung cấp những dịng kiểu đó, mà chỉ cung cấp dịch vụ chuyển gói tin
khơng đáng tin cậy. TCP làm nhiệm vụ của tầng giao vận trong mơ hình OSI
đơn giản của các mạng máy tính.
- Các ứng dụng gửi các dòng gồm các byte 8-bit tới TCP để chuyển qua
mạng. TCP phân chia dòng byte này thành các đoạn (segment) có kích thước
thích hợp (thường được quyết định dựa theo kích thước của đơn vị truyền
dẫn tối đa (MTU) của tầng liên kết dữ liệu của mạng mà máy tính đang nằm
trong đó). Sau đó, TCP chuyển các gói tin thu được tới giao thức IP để gửi
nó qua một liên mạng tới mơ đun TCP tại máy tính đích. TCP kiểm tra để
đảm bảo khơng có gói tin nào bị thất lạc bằng cách gán cho mỗi gói tin một
"số thứ tự" (sequence number). Số thứ tự này còn được sử dụng để đảm bảo
dữ liệu được trao cho ứng dụng đích theo đúng thứ tự. Mô đun TCP tại đầu
kia gửi lại "tin báo nhận" (acknowledgement) cho các gói tin đã nhận được
thành công; một "đồng hồ" (timer) tại nơi gửi sẽ báo time-out nếu không
nhận được tin báo nhận trong khoảng thời gian bằng một round-trip time
(RTT), và dữ liệu (được coi là bị thất lạc) sẽ được gửi lại. TCP sử dụng
checksum (giá trị kiểm tra) để xem có byte nào bị hỏng trong q trình
truyền hay khơng; giá trị này được tính tốn cho mỗi khối dữ liệu tại nơi gửi
trước khi nó được gửi, và được kiểm tra tại nơi nhận.
- Vì UDP là phương thức truyền mà trong đó hai đầu thơng tin khơng cần
thiết lập kết nối trứơc khi dữ liệu được trao đổi (connectionless), thuộc tính
này phù hợp trong điều kiện mạng gặp trục trặc, hư hỏng v.v.
- SNMP có các phương thức quản lý nhất định và các phương thức này
đuợc định dạng bởi các gói tin PDU (Protocol Data Unit). Các manager và
agent sử dụng PDU để trao đổi với nhau
Network Management Station (NMS)
Manager cũng được gọi là Network Management Station( NMS). Các chức
năng khác của NMS bao gồm các đặc tính report, network topology mapping
và lập tài liệu, các công cụ cho phép bạn giám sát traffic trên mạngvv…
Các SNMP Primitive
Bao gồm get, get-next và set. Manager dùng get primitive để nhận một tập
thông tin đơn từ một agent. Dùng get-next nếu có nhiều hơn một item, khi
dữ liệu manager cần nhận từ agent chứa đựng nhiều hơn một item, primitive
này được dung một giá trị cụ thể. Manager có thể dùng primitive này để yêu
cầu agent chạy trên thiết bị từ xa đặt một biến cụ thể cho giá trị hiện tại. Có
hai primitive điều khiển mà responder (manager) dùng để trả lời lại đó là :
get-response và trap. Một được dùng trong việc trả lời các yêu cầu trực tiếp
(get-response) và một là asynchronous response nhằm thu các sự chú ý của
các requester(trap). Mặc dù các sự trao đổi SNMP thường được khởi tạo bởi
phần mềm manager , primitive này cũng có thể được sử dụng khi agent cần
thông báo cho manager các sự kiện quan trọng, điều này thường được thông
báo như một trap được gửi bởi agent đến NMS.
II/ Mơ hình SNMP.
- get
- get-next
- get-bulk (cho SNMP v2 và SNMP v3)
- set
- get-response
- trap (cảnh báo)
- notification (cho SNMP v2 và SNMP v3)
- inform (cho SNMP v2 và SNMP v3)
- report (cho SNMP v2 và SNMP v3)
1. Get
-Get được gửi từ NMS yêu cầu tới agent. Agent nhận yêu cầu và xử lý với
khả năng tốt nhất có thể. Nếu một thiết bị nào đó đang bận tải nặng, như
router, nó khơng có khả năng trả lời u cầu nên nó sẽ hủy lời yêu cầu này.
Nếu agent tập hợp đủ thông tin cần thiết cho lời yêu cầu, nó gửi lại cho NMS
một ”get-response”
Để agent hiểu được NMS cần tìm thơng tin gì, nó dựa vào một mục trong
”get” là ”variable binding” hay varbind. Varbind là một danh sách các đối
tượng của MIB mà NMS muốn lấy từ agent. Agent hiểu câu hỏi theo dạng:
OID=value để tìm thơng tin trả lời. Câu hỏi truy vấn cho trường hợp trong
hình vẽ trên:
$ 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 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 hỏi
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”; ”.0”
nằm trong quy ước của MIB. Khi hỏi 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 để hiểu 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 ’get-next” giải quyết được vấn đề này.
2. Get-next
- Get-next đư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 mà chỉ tới một nhánh nào đó:
$snmpwalk cisco.ora.com public system
system.sysDescr.0 = "Cisco Internetwork Operating System Software
..IOS (tm) 2500 Software (C2500-I-L), Version 11.2(5), RELEASE
SOFTWARE (fc1)..Copyright (c) 1986-1997 by cisco Systems, Inc...
Compiled Mon 31-Mar-97 19:53 by ckralik"
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
- Ở đây ta muôn lấy thơng tin của nhóm ”system”, agent sẽ gửi trả tồn bộ
thơng tin của ”system” theo u cầu. Q 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:
3.G et-bulk
- Get-bulk được định nghĩa trong SNMPv2. Nó cho phép lấy thông tin quản
lý từ nhiều phần trong bảng. Dùng ”get” có thể làm được điều này. Tuy
nhiên, kích thước của câu hỏi có thể bị giới hạn bởi agent. Khi đó nếu nó
khơng thể trả lời tồn bộ u cầu, nó gửi trả một thơng điệp lỗi mà khơng có
dữ liệu. Với trường hợp dùng câu lệnh ”get-bulk”, agent sẽ gửi cang nhiều
trả lời nếu nó có thể. Do đó, việc trả lời một phần của yêu cầu là có thể xảy
ra. Hai trường cần khai báo trong ”get-bulk” là: ”nonrepeaters” và ”maxrepetitions”. ”nonrepeaters” báo cho agent biết N đối tượng đầu tiên có thể
trả lời lại như một câu lệnh ”get” đơn. ”mã-repeaters” báo cho agent biết cần
cố gắng tăng lên tối đa M yêu cầu ”get-next” cho các đối tượng còn lại:
$ snmpbulkget -v2c -B 1 3 linux.ora.com public sysDescr ifInOctets
ifOutOctets
system.sysDescr.0 = "Linux linux 2.2.5-15 #3 Thu May 27 19:33:18 EDT
1999 i686"
interfaces.ifTable.ifEntry.ifInOctets.1 = 70840
interfaces.ifTable.ifEntry.ifOutOctets.1 = 70840
interfaces.ifTable.ifEntry.ifInOctets.2 = 143548020
interfaces.ifTable.ifEntry.ifOutOctets.2 = 111725152
interfaces.ifTable.ifEntry.ifInOctets.3 = 0
interfaces.ifTable.ifEntry.ifOutOctets.3 = 0
ở đây, ta hỏi về 3 varbind: sysDescr, ifInOctets, và ifOutOctets. Tổng số
varbind được tính theo cơng thức
N + (M * R)
N: nonrepeater, tức số các đối tượng vô hướng
M: max-repeatition
R: số các đối tượng có hướng trong yêu cầu chỉ có sysDescr là vơ hướng è N
=1
M có thể đặt cho là 3 , tức là 3 trường cho mỗi ifInOctets và ifOutOctets. Có
2 đối tượng có hướng là ifInOctets và ifOutOctets è R = 2
Tổng số có 1 + 3*2 = 7 varbind
Còn trường ”–v2c” là do ”get-bulk” là câu lệnh của SNMPv2 nên sử dụng ”
-v2c” để chỉ rằng sử dụng PDU của SNMPv2. ”-B 1 3” là để đặt tham số N
và M cho lệnh.
4. 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à ”read-write” hay
”write-only”. NMS có thể dùng ”set’ để đặt giá trị cho nhiều đối tượng cùng
một lúc:
$ 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”. ”private” để chỉ đối
tượng ”read-write’, và đặt giá trị mới bằng: ”s "Atlanta, GA"”. ”s” tức là đặt
giá trị của ”system.sysLocation.0” thành 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 }
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, tồn bộ sẽ bị hủy bỏ.
5. Error Response của ”get”, ”get-next”, ”get-bulk” và ”set”
Có nhiều loại lỗi báo lại từ agent:
SNMPv1 Error Message Ý nghĩa
noError(0) Khơng có lỗi
tooBig(1) u cầu q lớn để có thể dồn vào một câu trả lời
noSuchName(2) OID yêu cầu khơng tìm thấy, tức 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
Các loại lỗi của SNMPv1 mang tính chất chung nhất, khơng rõ ràng. Do đó
SNMPv2 đưa ra thêm một số loại lỗi như sau:
SNMPv2 Error Message Ý nghĩa
noAccess(6) Lỗi khi lệnh “set” cố gắng xâm nhập vào một biến cấm xâm
nhập. Khi đó, biến đó có trường “ACCESS” là “not-accessible”
wrongType(7) Lỗi xảy ra khi lệnh “set” đặt một kiểu dữ liệu khác với kiểu
định nghĩa sẵn của đối tượng. Ví dụ khi “set” đặt giá trị kiểu string cho một
đối tượng kiểu số nguyên INTEGER
wrongLength(8) Lỗi khi lệnh “set” đưa vào một giá trị có chiều dài lớn hơn
chiều dài tối đa của
đối tượng
wrongEncoding(9) Lỗi khi lệnh “set” sử dụng cách mã hóa khác với cách
đối tượng đã định nghĩa.
wrongValue(10) Một biến được đặt một giá trị mà nó khơng hiểu. Khi một
biến theo kiểu liệt kê
“enumeration” được đặt một giá trị không theo kiểu liệt kê.
noCreation(11) Lỗi khi cố đặt một giá trị cho một biến khơng tồn tại hoặc
tạo một biến khơng có
trong MIB inconsistentValue Một biến MIB ở trạng thái không nhất
quán, và nó khơng chấp nhận bất cứ câu lệnh “set” nào.
resourceUnavailable(13) Khơng có tài ngun hệ thống để thực hiện lệnh
“set”
commitFailed(14) Đại diện cho tất cả các lỗi khi lệnh “set” thất bại
undoFailed(15) Một lệnh “set” không thành công và agent không thể phục
hồi lại trạng thái trước
khi lệnh “set” bắt đầu thất bại.
authorizationError(16) Một lệnh SNMP không được xác thực, khi một người
nào đó đưa ra mật mã khơng đúng.
notWritable(17) Một biến không chấp nhận lệnh “set”
inconsistentName(18) Cố gắng đặt một giá trị, nhưng việc cố gắng thất bại
vì biến đó đang ở tình
trạng khơng nhất qn.
6. SNMP Traps
- Trap là cảnh báo của agent tự động gửi cho NMS để NMS biết có tình
trạng xấu ở agent
Khi nhận được một ”trap” từ agent, NMS khơng trả lời lại bằng ”ACK”. Do
đó agent không thể nào biết được là lời cảnh báo của nó có tới được NMS
hay khơng. Khi nhận được một ”trap” từ agent, nó tìm xem ”trap number”
để hiểu ý nghĩa của ”trap” đó:
Số và tên kiểu trap Định nghĩa
coldStart (0) Thông báo agent vừa khởi động lại. Tất cả các biến quản lý sẽ
được reset, các biến kiểu
“Counters” và “Gauges” được đặt về 0. “coldStart” dùng để xác định một
thiết bị mới gia nhập vào
mạng. Khi một thiết bị khởi động xong, nó gửi một “trap” tới NMS. Nếu địa
chỉ NMS là đúng, NMS có
thể nhận được và xác định xem có quản lý thiết bị đó hay không.
warmStart (1) Thông báo agent vừa khởi tạo lại, không có biến nào bị reset.
linkDown (2) Gửi đi khi một interface trên thiết bị chuyển sang trạng thái
“down”.
linkUp (3) Gửi đi khi một interface trở lại trạng thái “up”.
authenticationFailure (4) Cảnh báo khi một người nào đó cố truy cập vào
agent đó mà khơng được xác thực.
egpNeighborLoss (5) Cảnh báo một EGP lân cận bị “down”
enterpriseSpecific (6)Đây là một “trap” riêng, chỉ được biết bởi agent và
NMS tự định nghĩa riêng chúng. NMS sử dụng phương pháp giải mã đặc
biệt để hiểu được thông điệp này.
”trap” được đưa ra trong MIB qua ”rdbmsOutOfSpace”:
rdbmsOutOfSpace TRAP-TYPE
ENTERPRISE rdbmsTraps
VARIABLES { rdbmsSrvInfoDiskOutOfSpaces }
DESCRIPTION
"An rdbmsOutOfSpace trap signifies that one of the database servers
managed by this agent has been unable to allocate space for one of the
databases managed by this agent. Care should be taken to avoid flooding the
network with these traps."
::= 2
7. SNMP Notification:
Để chuẩn hóa định dạng PDU ”trap” của SNMPv1 do PDU của ”get” và
”set” khác nhau, SNMPv2 đưa ra ”NOTIFICATION-TYPE”. Định dạng
PDU của ”NOTIFICATION-TYPE” là để nhận ra ”get” và ”set”.
”NOTIFICATION-TYPE” được định nghĩa trong RFC 2863:
linkDown NOTIFICATION-TYPE
OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
STATUS current
DESCRIPTION
"A linkDown trap signifies that the SNMPv2 entity, acting in an agent role,
has detected that the ifOperStatus object for one of its communication links
left the down state and transitioned into some other state (but not into the
notPresent state). This other state is indicated by the included value of
ifOperStatus."
::= { snmpTraps 3 }
OID của “trap” này là 1.3.6.1.6.3.1.1.5.3, tức
iso.org.dod.internet.snmpV2.snmpModules.snmpMIB.sn
mpMIBObjects.snmpTraps.linkDown.
8. SNMP inform
- SNMPv2 cung cấp cơ chế truyền thông giữa những NMS với nhau, gọi là
SNMP inform. Khi một NMS gửi một SNMP inform cho một NMS khác,
NMS nhận được sẽ gửi trả một ACK xác nhận sự kiện. Việc này giống với
cơ chế của “get” và “set”.
9. SNMP report
- Được định nghĩa trong bản nháp của SNMPv2 nhưng khơng được phát
triển. Sau đó được đưa vào SNMPv3 và hy vọng dùng để truyền thông giữa
các hệ thống SNMP với nhau
III/ SNMP message.
- Cả hai đại lý và hệ thống quản lý SNMP sử dụng các tin nhắn để kiểm tra
và giao tiếp thông tin về việc quản lý đối tượng. SNMP các tin nhắn được gửi
qua người này Datagram Protocol (UDP). IP được sử dụng để định tuyến các
tin nhắn giữa các hệ thống quản lý và lưu trữ.
- Khi chương trình quản lý SNMP gửi yêu cầu đến một mạng lưới điện
thoại, đại lý chương trình trên thiết bị nhận được yêu cầu và truy yêu cầu
thông tin từ MIBs. Các đại lý được yêu cầu gửi thông tin lại cho người khởi
xướng chương trình quản lý SNMP. Một đại lý SNMP gửi thơng tin:
+ Khi nó để đáp ứng u cầu thơng tin từ một hệ thống quản lý.
+ Khi một bẫy sự kiện xảy ra.
- Để thực hiện các nhiệm vụ, quản lý hệ thống đại lý và các chương trình
sử dụng các bài viết sau đây:
GET:Các tin nhắn yêu cầu cơ bản SNMP. Đã gửi bởi một hệ thống
quản lý, nó u cầu thơng tin về một MIB mục nhập trên một đại
lý - ví dụ, số tiền của lái xe miễn phí khơng gian.
GET-NEXT: Mở rộng một dạng u cầu thơng báo rằng có thể
được sử dụng để duyệt tồn bộ Hierarchy quản lý đối tượng.Khi
một q trình GET-NEXT yêu cầu cho một đối tượng, đại lý trả lại
danh tánh và giá trị của một đối tượng mà lý sau những thơng tin
mà trước đó đã được gửi đi được. GET-NEXT các yêu cầu rất hữu
ích đối với hầu hết là năng động, bảng biểu, chẳng hạn như một
tuyến đường nội bộ IP bảng.
SET: Một thông báo rằng có thể được dùng để gửi và cập nhật
MIB chỉ định một giá trị cho các đại lý khi gửi bài là được phép.
GET-BULK: Một yêu cầu rằng các dữ liệu chuyển giao của các đại
lý được thực hiện như lớn nhất có thể trong phạm vi cho restraints
kích thước của tin nhắn. Điều này minimizes số giao thức trao đổi
yêu cầu, để lấy một số lượng lớn thông tin quản lý.
NOTIFY: Cũng được gọi là một bài viết trap, THƠNG BAO là
một tin nhắn khơng mong muốn được gửi bởi một đại lý cho một
hệ thống quản lý đại lý khi phát hiện một số loại sự kiện. Ví dụ,
một trap tin nhắn được gửi đi khi có thể, một hệ thống khởi động
lại xảy ra. Việc quản lý hệ thống nhận được tin nhắn là trap gọi tắt
là điểm đến bẫy.
- Theo mặc định, UDP cổng 161 được sử dụng để lắng nghe cho SNMP các
thông điệp và cổng 162 được sử dụng để lắng nghe cho SNMP traps. Bạn có
thể thay đổi các thiết lập của cấu hình cổng của địa phương và dịch vụ tập tin.
- cách thức quản lý các hệ thống đại lý và giao tiếp thơng tin:
Các q trình giao tiếp:
1. Một hệ thống quản lý SNMP một hình thức tin nhắn có chứa một
thơng tin yêu cầu (GET), tên của cộng đồng mà thuộc hệ thống quản
lý, và các điểm đến của các bài viết-đại lý của địa chỉ IP
(131.107.3.24).
2. SNMP Các bài viết được gửi đến các đại lý.
3.
Các đại lý nhận được các gói và decodes nó. Những tên cộng đồng
(cơng cộng) được xác nhận là có thể chấp nhận được.
4. Các dịch vụ cuộc gọi SNMP subagent thích hợp, để lấy các thông tin
yêu cầu các phiên từ MIB.
5. Các SNMP được phiên thơng tin từ subagent và một hình thức trở về
SNMP tin nhắn có chứa số lượng các hoạt động trong đợt tập huấn, và
các điểm đến-với hệ thống quản lý của địa chỉ IP (131.107.7.29).
6. SNMP Các bài viết được gửi đến các hệ thống quản lý.
IV/ MIB.
- Loại dữ liệu agent và manager trao đổi được xác định bởi một database
gọi là management information base (MIB). MIB là một nơi chứa thông tin
ảo. Chú ý rằng nó là một cơ sở dữ liệu nhỏ và được đặt tại agent. Thông tin
được thu thập bởi agent được lưu trữ trong MIB.
- MIB (cơ sỡ quản lý thông tin) là một tập hợp những đối tượng được
quản lý. SNMP và các MIB của SNMP định nghĩa ngữ pháp và từ vựng để
quản lý mạng. Tùy thuộc vào nhà cung cấp mà họ sẽ sản xuất ra những sản
phẩm kế thừa những tiêu chuẩn SNMP và cho phép thiết bị trao đổi những
thông tin quản lý.
- MIB là một cơ sở dữ liệu của những đối tượng được quản lý, MIB có cấu
trúc phân cấp và MIB chỉ tập trung vào quản lý cấu trúc. Có những đối
tượng MIB chung và do nhà cung cấp định nghĩa. Có hơn 1000 đối tượng
khác nhau đã đăng ký với Internet để được quản lý. Một đối tượng được
quản lý là một đại diện luận lý của một thực thể vật lý thật trên mạng. Mỗi
đối tượng thu thập một vài thơng tin như là số lượng gói đã nhận và giữ
thơng tin đó như là một giá trị để cung cấp cho hệ thống quản lý.
- MIB có một cấu trúc cây, đỉnh của cây được định nghĩa bởi ISO (Tổ chức
quốc tế về tiêu chuẩn hóa). Những mức thấp hơn trong cây được định nghĩa
bởi những tổ chức khác và một vài nhánh được định nghĩa bởi những đối
tượng do nhà cung cấp định nghĩa. Đỉnh cây bao gồm một nhóm các đối
tượng bao gồm hệ thống (những thiết bị đã được mô tả), giao diện (được mô
tả trong quá trình truyền tải trên giao diện mạng), IP (thống kê các gói IP),
ICMP (thơng điệp ICMP), TCP (thống kê tải TCP), UDP (thống kê tải
UDP), EGP (thống kê giao thức cổng bên ngoài) và SNMP (thống kê tải
SNMP). RMON là một mở rộng của MIB thu thập thông tin về toàn bộ các
đoạn trên mạng.
Một MIB được SMI (Cấu trúc quản lý thơng tin) định nghĩa có những cơng
cụ tạo và nhận dạng những dạng dữ liệu. Những dạng dữ liệu bao gồm giá
trị nguyên, địa chỉ mạng, bộ đếm, bộ đếm thời gian và bảng thông tin. SMI
cũng định nghĩa một cấu trúc phân cấp định danh để nhận dạng những đối
tượng được quản lý. Những đối tượng được gắn những cái tên và định vị
trên cấu trúc cấp bậc giúp nhận dạng những gì các đối tượng làm. Những đối
tượng bao gồm các trường định nghĩa cách lưu trữ thơng tin và truy cập
thơng tin (ví dụ như chỉ đọc hay đọc/viết). Một đối tượng được định nghĩa
thông qua SMI và được biên dịch để phát sinh mã để có thể kết hợp với
những chương trình chạy trên những thiết bị riêng biệt. Sau đó các đối tượng
thu thập những thông tin nhất định đã được định nghĩa và cung cấp thông tin
nầy cho hệ thống quản lý.
SNMP cải tiến
- MIB được định nghĩa như là một phần của SNMP (Simple Network
Management Protocol - giao thức quản lý mạng đơn giản) - một giao thức
quản lý mạng dùng trong môi trường TCP/IP. Với một hệ thống quản lý
mạng tương thích SNMP, nhà quản lý mạng có thể theo dõi và quản lý máy
tính và những thiết bị khác kết nối với mạng.
MIB là một file dữ liệu tập hợp đầy đủ các đối tượng được quản lý trong
mạng. Ở đây, đối tượng đơn giản là các biến lưu giữ thơng tin về trạng thái
của một vài q trình thực thi trên thiết bị hay những thông tin (dạng text) về
tên và mô tả thiết bị. Thông tin nầy được định nghĩa rất nghiêm ngặt để cho
những hệ thống quản lý khác có thể truy cập và sử dụng.
Một thiết bị thường có nhiều đối tượng mơ tả nó. Một SNMP “con” sẽ được
cài ở mỗi thiết bị quản lý SNMP và có trách nhiệm cập nhật các biến đối
tượng. Hệ thống quản lý sẽ hỏi SNMP “con” nầy những thơng tin về hệ
thống. Ngược lại, SNMP “con” cũng có thể cảnh báo với hệ thống về những
sự kiện đặc biệt trên thiết bị.
Có nhiều nhóm đối tượng như hệ thống, giao diện, IP, TCP. Hệ thống là một
nhóm MIB chứa các biến đối tượng lưu giữ thông tin như tên thiết bị, vị trí,
và các thơng tin mơ tả khác. Nhóm giao diện giữ những thơng tin về card
mạng và theo dõi những số liệu thống kê như số byte truyền đi và nhận được
qua giao diện. Nhóm IP gồm các đối tượng theo dõi dòng dữ liệu, sự phân
đoạn gói dữ liệu và những thơng tin tương tự. Nhóm TCP gồm các đối tượng
theo dõi sự kết nối.
- MIB có thể xem như là một cơ sở dữ liệu của các đối tượng quản lý mà
agent lưu trữ được. Bất kỳ thơng tin nào mà NMS có thẻ truy cập được đều
được định nghĩa trong MIB. Một agent có thể có nhiều MIB nhưng tất cả các
agent đều có một lọai MIB gọi là MIB-II được định nghĩa trong RFC 1213.
MIB-I là bản gốc của MIB nhưng ít dùng khi MIB-II được đưa ra. Bất kỳ
thiết bị nào hổ trợ SNMP đều phải hổ trợ MIB-II. MIB-II định nghĩa các
tham số như tình trạng của interface (tốc độ của interface, MTU, các octet
gửi, các octet nhận. ...) hoặc các tham số gắn liền với hệ thống (định vị hệ
thống, thông tin liên lạc với hệ thống, ...). Mục đích chính của MIB-II là
cung cấp các thơng tin quản lý theo TCP/IP. Có nhiều
kiểu MIB giúp quản lý cho các mục đích khác nhau:
• ATM MIB (RFC 2515)
• Frame Relay DTE Interface Type MIB (RFC 2115)
• BGP Version 4 MIB (RFC 1657)
• RDBMS MIB (RFC 1697)
• RADIUS Authentication Server MIB (RFC 2619)
• Mail Monitoring MIB (RFC 2249)
• DNS Server MIB (RFC 1611)