SNMP là gì?
SNMP viết tắt bởi Simple Network Management Protocol – là giao thức tầng ứng dụng được xác định bởi Hội đồng Kiến trúc Internet (IAB) trong RFC1157, nhằm hỗ trợ việc trao đổi thông tin quản lý giữa các thiết bị mạng.
SNMP là giao thức dùng để quản lý và giám sát các thành phần mạng. Hầu hết các thiết bị mạng đi kèm với SNMP agent, các agent này cần được kích hoạt và cấu hình để tương tác với các công cụ giám sát mạng hoặc Hệ thống Quản lý Mạng (NMS).
SNMP đều cung cấp ngôn ngữ chung cho việc truyền thông tin quản lý trong môi trường single-vendor và multi-vendor, có thể áp dụng cho cả mạng LAN và mạng WAN. Trong phiên bản mới nhất là SNMP version 3, nó đã có các cải tiến về bảo mật như xác thực và mã hóa thông điệp SNMP, bảo vệ gói tin trong quá trình truyền tải.
Các Thành phần thuộc SNMP
SNMP sở hữu 4 thành phần chính, bao gồm:
SNMP Agent
Ứng dụng SNMP Agent chạy trên phần cứng hoặc dịch vụ đang được giám sát, thu thập dữ liệu về nhiều thước đo khác nhau như tình trạng sử dụng băng thông hoặc dung lượng ổ đĩa. Khi bị truy vấn bởi người quản lý SNMP, agent sẽ trả lại thông tin cho trình quản lý. Một agent cũng có khả năng tự động thông báo về NMS khi có lỗi xảy ra. Hầu hết các thiết bị đều đi kèm với một SNMP Agent đã được cài đặt sẵn; thường chỉ cần được kích hoạt và cấu hình.
Các node và tài nguyên được quản lý bằng SNMP
Bao gồm các thiết bị và nguồn tài nguyên mà một agent đang chạy trên đó. Các thiết bị hoặc thành phần mạng, là những phần của mạng, đòi hỏi một số hình thức giám sát và quản lý nghiêm ngặt. Ví dụ bao gồm UPS, router, máy trạm, switch, máy in, server và nhiều hơn nữa.
Trình quản lý mạng NMS -Network Management System
Là nền tảng phần mềm hoạt động như một bảng điều khiển tập trung, sử dụng thông tin được cung cấp bởi các agent, NMS có khả năng tự động yêu cầu các agent gửi thông tin cập nhật qua SNMP định kỳ. Phạm vi của những người quản lý mạng có thể thực hiện với thông tin đó phụ thuộc vào số tính năng mà NMS hỗ trợ.
Có nhiều trình quản lý SNMP miễn phí có sẵn, nhưng chúng thường có giới hạn về khả năng hoặc số lượng node mà chúng hỗ trợ. Ở cấp độ cao hơn, các nền tảng doanh nghiệp cung cấp các tính năng nâng cao cho các mạng phức tạp, với sự hỗ trợ từ một số sản phẩm lên đến hàng chục nghìn node.
Cơ sở dữ liệu quản lý (Management Information Base – MIB)
MIB Là một tập tin văn bản (.mib) phân loại và mô tả tất cả các đối tượng của một thiết bị cụ thể có thể truy vấn hay kiểm soát thông qua SNMP. Để xác định và theo dõi trạng thái của các thuộc tính này, cơ sở dữ liệu này cần được tải vào NMS. Mỗi mục trong MIB được xác định bằng một định danh đối tượng (OID).
Cách thức hoạt động của SNMP
SNMP thực hiện nhiều chức năng dựa trên sự kết hợp giữa truyền tin bằng đẩy và kéo (push and pull) giữa các thiết bị mạng và hệ thống quản lý. Nó có khả năng thực hiện các lệnh đọc hoặc ghi, thay đổi mật khẩu hoặc cấu hình. SNMP cũng có tính năng báo cáo lượng băng thông, CPU hay bộ nhớ,…đã sử dụng và thông báo khi vượt quá ngưỡng được xác định trước.
Thông thường, SNMP hoạt động trong mô hình đồng bộ, giao tiếp được bắt đầu bởi người quản lý SNMP và các tác nhân phản hồi. Các lệnh và thông báo này sẽ sử dụng giao thức UDP hoặc TCP/IP, được biết đến như là đơn vị dữ liệu giao thức (PDU):
- GET: Tạo bởi trình quản lý SNMP và chuyển đến một agent để truy xuất giá trị của một biến số được xác định bằng OID trong MIB.
- RESPONSE: Gửi từ agent đến trình quản lý SNMP để phản hồi yêu cầu GET, chứa giá trị của các biến được yêu cầu.
- GETNEXT: Được gửi từ trình quản lý SNMP đến agent để lấy giá trị của OID tiếp theo trong cấu trúc phân cấp của MIB.
- GETBULK: Gửi từ trình quản lý SNMP đến agent để lấy thông tin từ các bảng dữ liệu lớn, thường thông qua nhiều lệnh GETNEXT.
- SET: Gửi từ trình quản lý SNMP đến agent để đặt cấu hình hoặc thực hiện lệnh.
- TRAP: Một thông báo không đồng bộ từ agent đến trình quản lý SNMP để báo cáo sự kiện quan trọng, như lỗi hoặc sự cố.
Kết luận
Dựa thông tin trên LANIT hy vọng bạn đã hiểu rõ SNMP là gì và lợi ích mà giao thức này mang lại. Hãy sử dụng SNMP thật hiệu quả để trở thành lập trình viên tương lai thành công. Còn rất nhiều các kiến thức lập trình thú vị khác đang chờ bạn khám phá nên đừng quên nhấn nút theo dõi nhé!