Giao thức SNMP

  • Th11, T5, 2024
  • IOT
  • 0
  • 0 views
  • 12 minutes Read

SNMP (Simple Network Management Protocol) là một giao thức quản lý mạng đơn giản được phát triển vào cuối những năm 1980, chủ yếu để giám sát và quản lý các thiết bị mạng như router, switch, server, printer, và nhiều thiết bị khác trên mạng TCP/IP.

SNMP là một phần của bộ giao thức Internet (Internet Protocol Suite) và hoạt động qua các gói tin UDP (User Datagram Protocol) trên cổng 161 và 162.

Nội dung bài viết

Chức năng của SNMP

  • Giám sát hiệu suất và trạng thái của các thiết bị mạng trong thời gian thực.
  • Quản lý cấu hình và vận hành của các thiết bị từ xa.
  • Phát hiện và xử lý lỗi mạng bằng cách thu thập thông tin về tình trạng và hiệu suất của các thiết bị.
  • Cảnh báo và xử lý sự cố thông qua cơ chế “trap” khi thiết bị gặp sự cố hoặc thay đổi trạng thái

Các thành phần cơ bản trong SNMP

SNMP hoạt động trên mô hình Client-Server, với ba thành phần chính:

  • SNMP Manager: Là hệ thống trung tâm, thường là một máy chủ quản lý hoặc phần mềm quản lý mạng. SNMP Manager gửi yêu cầu tới các thiết bị (Agent) để lấy thông tin và nhận các cảnh báo (trap) từ các thiết bị khi có sự cố.
  • SNMP Agent: Là một phần mềm cài đặt trên các thiết bị được quản lý (như router, switch, hoặc server). SNMP Agent sẽ thu thập và lưu trữ thông tin về thiết bị, sau đó phản hồi các yêu cầu từ SNMP Manager hoặc gửi cảnh báo khi phát hiện sự cố.
  • MIB (Management Information Base): Là một cơ sở dữ liệu gồm các đối tượng mà SNMP có thể giám sát và quản lý. MIB định nghĩa cấu trúc dữ liệu và cho phép chuẩn hóa cách SNMP Manager lấy và điều khiển dữ liệu từ Agent.

Cách thức hoạt động của SNMP

SNMP sử dụng các yêu cầu và phản hồi thông qua một số lệnh cơ bản để thu thập và điều khiển thông tin trên các thiết bị:

  • Get: Yêu cầu dữ liệu từ SNMP Agent, ví dụ như yêu cầu thông tin CPU hoặc dung lượng bộ nhớ.
  • Set: Gửi lệnh để thay đổi giá trị của một thuộc tính trên thiết bị từ xa (ví dụ: bật hoặc tắt một cổng trên switch).
  • GetNext: Dùng để lấy dữ liệu của các đối tượng tiếp theo trong danh sách MIB khi các đối tượng đó không được chỉ định rõ.
  • GetBulk: Dùng để lấy dữ liệu của nhiều đối tượng cùng lúc, giúp giảm số lượng yêu cầu khi lấy nhiều dữ liệu.
  • Trap: SNMP Agent gửi thông báo tới SNMP Manager khi có sự kiện đặc biệt, như khi một thiết bị gặp lỗi hoặc khi một cổng bị ngắt kết nối.

Các phiên bản của SNMP

SNMP có ba phiên bản chính, mỗi phiên bản cung cấp các mức độ bảo mật và tính năng khác nhau:

  • SNMPv1: Là phiên bản đầu tiên của SNMP, đơn giản và dễ triển khai nhưng có bảo mật yếu. Các yêu cầu và phản hồi được gửi dưới dạng văn bản không mã hóa, dễ bị nghe trộm và giả mạo.
  • SNMPv2c: Cải tiến từ SNMPv1, có các lệnh mới như GetBulk và có hiệu suất tốt hơn, nhưng vẫn có bảo mật kém tương tự SNMPv1.
  • SNMPv3: Phiên bản mới nhất, bổ sung các cơ chế bảo mật mạnh mẽ như mã hóa và xác thực, giúp bảo vệ dữ liệu khi truyền trên mạng. SNMPv3 cho phép xác thực người dùng và kiểm soát quyền truy cập tốt hơn, đảm bảo rằng chỉ những người được ủy quyền mới có thể truy cập và điều khiển thiết bị.

Mô hình dữ liệu MIB

MIB là một cơ sở dữ liệu gồm các đối tượng quản lý (Managed Object) mà SNMP có thể lấy thông tin và điều khiển. Mỗi đối tượng MIB có một định danh duy nhất, gọi là OID (Object Identifier). Một OID là một chuỗi số dùng để xác định rõ ràng một đối tượng trong MIB và thường có cấu trúc dạng cây phân cấp.

Ví dụ:

  • 1.3.6.1.2.1.1.1.0: Đây là OID của thuộc tính “sysDescr” trong MIB, dùng để lấy mô tả về hệ thống.

MIB chuẩn hóa cách thức quản lý thiết bị, giúp SNMP Manager có thể dễ dàng truy cập thông tin từ nhiều loại thiết bị và nhà cung cấp khác nhau.

Các loại Trap trong SNMP

Trap là một thông báo không yêu cầu, được SNMP Agent gửi đến SNMP Manager khi xảy ra sự kiện cụ thể. Các loại Trap phổ biến:

  • LinkDown: Gửi khi một kết nối mạng bị gián đoạn.
  • LinkUp: Gửi khi một kết nối mạng được thiết lập thành công.
  • ColdStart: Gửi khi thiết bị khởi động lại từ đầu (do ngắt nguồn điện).
  • WarmStart: Gửi khi thiết bị khởi động lại mà không mất nguồn điện.

Trap giúp SNMP Manager kịp thời phát hiện và xử lý các sự cố xảy ra trong hệ thống mạng.

Ưu điểm của SNMP

  • Dễ triển khai và tích hợp: SNMP là giao thức đơn giản, có thể dễ dàng tích hợp vào các hệ thống quản lý mạng.
  • Khả năng mở rộng: Có thể giám sát và quản lý nhiều loại thiết bị khác nhau thông qua MIB và OID.
  • Tương thích rộng rãi: Được hỗ trợ trên hầu hết các thiết bị mạng từ các nhà sản xuất khác nhau.
  • Thích hợp cho giám sát và quản lý mạng: SNMP cung cấp đầy đủ các thông tin cần thiết để giám sát và quản lý hiệu suất của thiết bị.

Nhược điểm của SNMP

  • Bảo mật hạn chế: Các phiên bản cũ như SNMPv1 và SNMPv2c không cung cấp mã hóa, nên dễ bị tấn công và không phù hợp với các mạng yêu cầu bảo mật cao.
  • Cần cấu hình phức tạp: Việc thiết lập MIB và OID trên nhiều thiết bị khác nhau có thể phức tạp, đòi hỏi kiến thức chuyên môn cao.
  • Dễ gây quá tải mạng: Với các hệ thống lớn hoặc yêu cầu giám sát chặt chẽ, lưu lượng SNMP có thể gây ra quá tải trên mạng.

Ứng dụng của SNMP trong quản lý mạng

SNMP được ứng dụng rộng rãi trong nhiều lĩnh vực và chức năng quản lý mạng:

  • Giám sát và quản lý thiết bị mạng: SNMP giúp giám sát trạng thái, hiệu suất, và tài nguyên của các thiết bị mạng như router, switch, và firewall.
  • Phát hiện sự cố mạng: SNMP Manager có thể tự động phát hiện các sự cố mạng thông qua Trap và đưa ra cảnh báo để kịp thời xử lý.
  • Quản lý cấu hình thiết bị từ xa: SNMP cho phép cấu hình và điều khiển thiết bị từ xa, giúp quản trị viên tiết kiệm thời gian và giảm bớt công việc thủ công.
  • Báo cáo và phân tích hiệu suất: SNMP giúp thu thập dữ liệu về hiệu suất mạng để lập báo cáo và phân tích, giúp tối ưu hóa tài nguyên và phát hiện các vấn đề tiềm ẩn.