Thứ Ba, 5 tháng 3, 2013

Kiến thức cơ bản về SNMP

Ngày nay khi sử dụng các thiết bị mạng ta thường thấy thông số thiết bị có hỗ trợ SNMP. Vậy SNMP là gì? Có vai trò gì trong hệ thống mạng?

SNMP là giao thức quản lý mạng cơ bản dịch từ cụm từ “Simple Network Management Protocol”. Giao thức này được sử dụng rất phổ biến để giám sát và điều khiển các thiết bị mạng.

Giao thức SNMP được thiết kế để cung cấp một phương thức đơn giản nhằm quản lý tập trung mạng TCP/IP. Người quản trị có thể thông qua giao thức này để quản lý các hoạt động hay thay đổi các trạng thái hệ thống mạng.

Giao thức SNMP được sử dụng để quản lý các hệ thống Unix, Window…, các thiết bị mạng như router, gateway, firewall, switch…, thông qua một số phần mềm cho phép quản trị với SNMP.

Ví dụ cho việc sử dụng hệ thống quản trị SNMP với giao thức SNMP trên phần mềm với các ứng dụng trong hệ thống mạng:
  • 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ủ 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 thiết bị switch có 1 cổng bị down
  • Điều khiển tắt các cổng trên switch
Có 2 nhân tố chính trong SNMP:  manager và agent. Các SNMP agent sẽ giữ một sơ sở dữ liệu, được gọi là Management Information Base (MIB), trong đó chứa các thông tin khác nhau về hoạt động của thiết bị mà agent đang giám sát. Phần mềm quản trị SNMP Manager sẽ thu thập thông tin này qua giao thức SNMP.

kt_SNMP_01.jpg

Ưu điểm khi thiết kế hệ thống quản trị với SNMP sẽ giúp đơn giản hóa các quá trình quản lý các thành phần trong mạng, giảm chi phí triển khai. 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.

SNMP được định nghĩa với bốn chức năng hoạt động chính để cho phép các phần mềm quản lý có thể quản lý các agents:

Định nghĩa dữ liệu: Các qui ước cho cú pháp để định nghĩa dữ liệu mà một tác nhân agent dùng. Các đặc tả này được gọi là cấu trúc thông tin quản lý (Structure of Management Information – SMI).

MIB: Trên 100 chuẩn Internet định nghĩa các MIBs khác nhau, mỗi MIB cho một lĩnh vực công nghệ khác nhau. Định nghĩa MIB tuân theo các phiên bản cấu trúc thông tin quản lý SMI phù hợp.

Giao thức: các thông điệp được dùng bởi các agent và manager để trao đổi thông tin quản trị

Bảo mật và quản trị (Security và Administration): Các định nghĩa làm thế nào để bảo mật quá trình trao đổi thông tin giữa tác nhân agent và phần mềm quản trị manager.

Bằng cách chia SNMP ra thành các lĩnh vực hoạt động này, mỗi phần đã được cải tiến và phát triển độc lập nhiều năm qua. Tuy nhiên, ta cần phải nắm một vài đặc điểm quan trọng của các phiên bản chính thức của SNMP.


Phiên bản SNMP


Mô tả


1

Dùng SMIv1 dùng phương thức xác thực đơn giản với community nhưng chỉ dùng MIB-I.

2

Dùng SMIv2. Loại bỏ việc sử dụng communities thêm vào các thông điệp Getbulk và Inform nhưng đã bắt đầu với phiên bản MIB-II.

2c

Phiên bản giả cho phép SNMPv1 giao tiếp với SNMPv2. Tương đương với SNMPv2.

3

Phần lớn tương tự như SNMPv2 nhưng thêm vào các tính năng bảo mật. Hỗ trợ tương thích ngược. Dùng MIB-II.


Phiên bản SNMPv1 định nghĩa chuỗi ký tự community string để sử dụng như một dạng mật khẩu đơn giản. SNMPv2 không còn yêu cầu dùng chuỗi ký tự community string tuy nhiên để duy trì tính tương thích, thuộc tính này giữ lại như là một tùy chọn. SNMPv3 cũng vẫn duy trì tính tương thích ngược này.

Các thông điệp SNMP

Các thông điệp SNMPv1 và SNMPv2 định nghĩa cách thức mà một phần mềm manager và một tác nhân agent có thể giao tiếp với nhau. Ví dụ, một manager có thể dùng ba thông điệp khác nhau để lấy các thông tin MIB từ các tác nhân agents với một thông điệp SNMP response được trả về từ tác nhân agent. SNMP dùng UDP để truyền thông tin, dùng thông tin SNMP response để cung cấp thông tin và công nhận (ack) việc nhận các thông điệp khác.


Message


Phiên bản ban đầu


Thông điệp trả lời


Thường được gửi bởi


Mục đích chính

Get1ResponseManagerYêu cầu giá trị của một biến
GetNext1ResponseManagerYêu cầu cho giá trị MIB kế tiếp trong cây MIB
GetBulk2ResponseManagerYêu cầu gửi nhiều biến MIB với chỉ một request. Hữu ích cho việc thu thập các thông tin có cấu trúc phức tạp như bảng định tuyến IP
Response1NoneAgentĐược dùng để trả lời cho thông tin trong các yêu cầu Get và Set
Set1ResponseManagerĐược gửi bởi một phần mềm manager đến agent để thiết lập một giá trị cho một biến. Agent sẽ trả lời bằng thông điệp response
Trap1NoneAgentCho phép các agents gửi các thông tin tự do đến một manager. Manager sẽ không trả lời với bất kỳ thông điệp SNMP nào
Inform2ResponseManagerMột thông điệp được dùng giữa SNMP manger để cho phép dữ liệu MIB được trao đổi


Cả ba biến thể của thông điệp SNMP get message và thông điệp SNMP response thường được dùng khi ta chủ động dùng một SNMP manager. Khi một người dùng của SNMP hỏi thông tin, phần mềm manager sẽ gửi một trong ba kiểu lệnh get đến agent. Phía agent sẽ trả lời bằng thông điệp SNMP response. Các biến thể khác nhau của lệnh get thì rất hữu dụng, đặc biệt khi mà các phần mềm quản lý muốn xem một phần lớn thông tin của MIB. Toàn bộ thông tin MIB của một agent có thể được tìm ra bằng các thông điệp liên tiếp Getnext hoặc với thông điệp GetBulk, dùng một tiến trình được gọi là MIB walk.

Lệnh SNMP set cho phép các phần mềm quản lý thay đổi một vài thứ trên agent. Ví dụ, việc sử dụng các phần mềm quản lý có thể chỉ ra một cổng của router có nên bị shutdown hay không. Máy trạm quản lý có thể gửi ra một lệnh set cho một biến MIB trên tác nhân agent nằm trên thiết bị. Tác nhân agent chạy trên thiết bị sau đó sẽ thiết lập các biến trong đó ra lệnh cho hệ điều hành Cisco IOS tắt cổng của router xuống.

SNMP trap là các thông điệp được gửi từ agent đến trạm quản trị. Ví dụ khi một cổng bị hỏng hóc, một agent của SNMP có thể gửi ra một thông điệp trap đến SNMP manager. Phần mềm quản trị sau đó có thể chỉ ra các thông tin về sự cố trên màn hình, gửi email cho kỹ sư hỗ trợ….Cần lưu ý là không có thông điệp trả lời khi nhận được một trap.

Về phương diện kỹ thuật, chỉ có các thông điệp trap và response là không mong đợi nhận bất kỳ các thông điệp ack nào. Cuối cùng, các thông điệp inform cho phép hai SNMP giao tiếp với nhau để trao đổi các thông tin MIB về các agents và cả hai cùng đang quản lý.

SNMP MIBs

Các phiên bản SNMPv1 và v2 bao gồm một dạng MIB chuẩn, được gọi là MIB-I và MIB-II. MIB-II được tạo ra giữa các phiên bản SNMPv1 và v2 với SNMP hỗ trợ MIB-II. Sau khi tạo ra MIB-II, IETF tiếp tục thay đổi chiến lược của định nghĩa MIB.

Có các nhóm nghiên cứu khác nhau trong nhiều lĩnh vực đã tạo ra các định nghĩa MIB khác nhau cho các lĩnh vực tương ứng của họ. Kết quả là, hàng trăm bản MIB chuẩn được định nghĩa. Thêm vào đó, các hãng khác nhau định nghĩa các MIB khác nhau.

Phiên bản Remote Monitoring MIB (RMON, RFC 2819) là một bản đặc biệt của MIB đã được chuẩn hóa ngoài MIB-II. Một tác nhân SNMP agent có thể hỗ trợ RMON MIB có thể được lập trình thông qua các lệnh SNMP set để bắt gói tin, tính toán các thông tin thống kê, giám sát các giới hạn cho các biến MIB, báo cáo ngược về cho trạm quản lý khi các giới hạn là đạt mức ngưỡng. Dùng RMON, một hệ thống mạng có thể triển khai một số thao tác giám sát và dùng kết hợp với SNMP có thể thu thập các thông tin cần thiết cho công tác quản trị.

Bảo mật cho giao thức SNMP

SNMPv3 thêm vào các đặc điểm bảo mật so với SNMPv2 và SNMPv2c. SNMPv3 bổ sung thêm hai hướng chính về bảo mật so với SNMPv2 và SNMPv2c: xác thực và mã hóa.

SNMPv3 sử dụng MD5 và SHA để tạo ra các giá trị hash cho từng thông điệp snmp. Thao tác này giúp cho phép xác thực các đầu cuối cũng như là ngăn ngừa thay đổi dữ liệu và các kiểu tấn công. Thêm vào đó, các phần mềm quản trị SNMPv3 và các agent có thể dùng DES để mã hóa gói tin, cho phép bảo mật tốt hơn. SNMPv3 đề nghị trong tương lai sẽ hỗ trợ AES nhưng đây không phải là một phần của đặc tả SNMPv3 ban đầu.

Conclusion:

Hướng dẫn viết một số Ví dụ cơ bản sử dụng SNMP4j trên Java


0 nhận xét:

Đăng nhận xét