Hotline: 098 821 7749 info@acinternational.com.vn

Xu hướng CNTT

SNMP là gì?

Cỡ chữ
SNMP là gì?
 

Nội dung bài viết:

1. SNMP là gì?
2. Thông tin đăng nhập cho thiết bị SNMP
3. SNMP hoạt động như thế nào?
4. OID và MIB là gì?
5. Cách sử dụng SNMP để giám sát?
6. Các giá trị mà giao thức SNMP mang lại
 
 

1. SNMP là gì?

- SNMP là viết tắt của từ Simple Network Monitoring Protocol (tiếng Việt gọi là Giao thức giám sát mạng đơn giản). Nó là một giao thức để truyền thông tin quản lý trong mạng, đặc biệt là sử dụng trong mạng LAN, tùy thuộc vào phiên bản đã chọn.


- Tính hữu ích của nó trong quản trị mạng đến từ thực tế là nó cho phép thu thập thông tin về các thiết bị kết nối mạng theo cách chuẩn hóa trên nhiều loại phần cứng và phần mềm.
 
- Hầu như không có quản trị viên mạng nào từ bỏ SNMP. Thay vào đó, hầu hết họ đều tin tưởng vào nó vì gần như tất cả các loại thiết bị từ nhiều nhà sản xuất khác nhau đều hỗ trợ SNMP, giúp họ giám sát toàn diện nhờ công nghệ SNMP.
 
- Các phiên bản của giao thức SNMP:
  • Hiện tại, có ba (03) phiên bản chính của SNMP. Phiên bản đầu tiên được phát triển khá nhanh vào cuối những năm 80 khi quản trị mạng thiếu các công cụ quản trị mạng phù hợp không phụ thuộc vào các nhà sản xuất phần cứng.
  • SNMP v1 được định nghĩa vào năm 1988 và dựa trên SGMP (RFC 1028). Sau đó, nó đã được chấp nhận và sử dụng rộng rãi. Nó vẫn được sử dụng cho đến ngày nay, gần 30 năm sau, đây được coi như gần là vĩnh cửu trong CNTT. SNMP v1 cung cấp các chức năng cơ bản để thăm dò dữ liệu và tương đối dễ sử dụng. Nó không tạo ra nhiều chi phí vì nó không bao gồm bất kỳ thuật toán mã hóa nào. Vì vậy, vì lý do bảo mật, chỉ sử dụng SNMP v1 trong mạng LAN. Hạn chế lớn nhất của nó là kiến ​​trúc bộ đếm 32 bit (32-bit Counter Architecture), không đủ cho các mạng gigabyte ngày nay hoặc lớn hơn.
  • Nếu người dùng muốn quản lý mạng trong mạng WAN, giao thức CMISE / CMIP là giao thức phù hợp để sử dụng.
  • SNMP v2 hỗ trợ bộ đếm 64 bit nhưng vẫn gửi dữ liệu quan trọng dưới dạng văn bản (Text), vì vậy nó không thực sự tăng cường bảo mật. Và nếu người dùng bắt gặp SNMP v2, đó hầu hết là "SNMP v2c" mà các nhà sản xuất hoặc nhà mạng đang nói đến, với chữ "c" là viết tắt của từ "cộng đồng - Community". Hai phiên bản SNMP v2 khác tồn tại, SNMP v2p và SNMP v2u, nhưng chúng chỉ được triển khai trong một số trường hợp hiếm hoi.
 

2. Bảo mật cho thiết bị SNMP

- Được định nghĩa vào năm 2002, SNMP v3 bao gồm các ưu điểm của SNMP v2c và bổ sung các giải pháp bảo mật như tài khoản người dùng (User Accounts), xác thực (Authentication) và mã hóa (Encryption) tùy chọn các gói dữ liệu. Điều này tăng cường bảo mật và làm cho SNMP v3 trở thành phiên bản SNMP được đề xuất khi nói đến bảo mật. Tuy nhiên, nó cũng khiến việc cấu hình trở nên khó khăn hơn, cụ thể là quản lý người dùng. Do đó, cần nhiều sức mạnh xử lý hơn, đặc biệt là với các khoảng thời gian giám sát ngắn tạo ra một số lượng lớn các bản tin SNMP.
 
- SNMP v3 có ba cấp độ bảo mật khác nhau:
  • NoAuthNoPriv - Viết tắt của từ “No Authentication, No Privacy”, nghĩa là “Không xác thực, Không bảo mật”. Không cần xác thực và tin nhắn không được mã hóa. Vì những lý do rõ ràng, cấp độ bảo mật này chỉ nên được sử dụng trong các mạng đóng, bảo mật.
  • AuthNoPriv - Viết tắt của từ “Authentication, No Privacy”, nghĩa là “Xác thực, Không bảo mật”. Tin nhắn gửi đi phải được xác thực để được thực hiện; tuy nhiên, chúng không được mã hóa trong quá trình truyền. Về mặt lý thuyết, một tác nhân độc hại vẫn có thể chặn dữ liệu được gửi giữa tác nhân và người quản lý trong quá trình truyền được ủy quyền nhưng không thể đưa ra các yêu cầu Nhận (GET request) hoặc Đặt (SET request) bổ sung.
  • AuthPriv - Viết tắt của từ “Authentication and Privacy”, nghĩa là “Xác thực và Bảo mật”. Đây là cách triển khai SNMPv3 an toàn nhất. Tin nhắn SNMP phải được xác thực và tất cả dữ liệu được mã hóa trong quá trình truyền. Bằng cách này, tác nhân độc hại bị ngăn không cho gửi yêu cầu Nhận (GET request) hoặc Đặt (SET request) của riêng họ và không cho xem dữ liệu được tạo bởi các yêu cầu hợp pháp.
 

3. SNMP hoạt động như thế nào?

- Một mạng thường có ít nhất một máy tính hoặc máy chủ chạy phần mềm giám sát. Nó là chủ thể quản lý “Managing Entity”. Một mạng cũng có thể sẽ có một vài, hoặc nhiều, hoặc thậm chí thực sự nhiều, các thiết bị khác: thiết bị chuyển mạch (Switch), bộ định tuyến (Router), máy trạm (Client), giá đỡ máy chủ (Server rack), máy in (Printer), máy pha cà phê (Coffee machine) hoặc bất cứ thứ gì khác cần được giám sát. Chúng là các thiết bị được quản lý “Managed devices”.
 
- Tin nhắn SNMP được gửi và nhận giữa những Trình quản lý “Managers”các tác nhân “Agents”. Thông thường, trình quản lý SNMP Manager trong mạng được cài đặt trên thực thể quản lý và các tác nhân SNMP được cài đặt trên thiết bị được quản lý.

 
- Về cơ bản, việc truyền các tin nhắn SNMP có thể được so sánh với giao tiếp thông thường giữa máy khách và máy chủ, cung cấp cả công nghệ kéo và đẩy (Pull and Push Technologies). Công nghệ kéo (tiếng Anh có thể viết là “Pull” hoặc “Poll” Technologies) là loại giao tiếp phổ biến nhất trong đó ứng dụng khách, chẳng hạn như phần mềm quản lý mạng trên thực thể quản lý, gửi yêu cầu thu thập phản hồi từ máy chủ hoặc thiết bị được quản lý. Đối tác của nó, công nghệ đẩy “Push Technology”, cho phép thiết bị được quản lý “nói” và gửi tin nhắn SNMP khi có sự kiện.
 
- Ví dụ, trong giao thức SNMP, yêu cầu GET từ trình quản lý SNMP (máy khách) tuân theo mô hình kéo, trong khi bẫy SNMP Trap được "đẩy" bởi tác nhân SNMP Agent (máy chủ) mà không có bất kỳ yêu cầu nào trước đó.
 
- Các loại tin nhắn SNMP:
  Có nhiều loại thông báo SNMP khác nhau có thể được sử dụng để thiết lập giám sát mạng qua SNMP:
  • GetRequest - Đây là loại tin nhắn SNMP phổ biến nhất mà trình quản lý SNMP gửi đi để yêu cầu dữ liệu. Thiết bị mục tiêu sẽ trả về giá trị được yêu cầu cùng với tin nhắn phản hồi “Response”.
  • GetNextRequest - Trình quản lý SNMP có thể gửi loại tin nhắn này để khám phá thông tin nào có sẵn từ thiết bị. Bằng cách bắt đầu từ OID 0, trình quản lý có thể tiếp tục gửi yêu cầu cho dữ liệu có sẵn tiếp theo cho đến khi không còn dữ liệu “tiếp theo”. Bằng cách này, người dùng có thể khám phá tất cả dữ liệu có sẵn trên một thiết bị nhất định ngay cả khi họ có thể không có bất kỳ kiến ​​thức nào về hệ thống hoặc thiết bị phản hồi.
  • GetBulkRequest - Được thêm vào SNMP Phiên bản 2, đây là phiên bản mới hơn, được tối ưu hóa của yêu cầu GetNextRequest. Phản hồi được trưng cầu sẽ chứa nhiều dữ liệu theo yêu cầu cho phép. Về cơ bản, đây là một cách để thực hiện một số GetNextRequests cùng một lúc, cho phép người dùng tạo danh sách tất cả dữ liệu và thông số có sẵn.
  • SetRequest - Đây là lệnh do trình quản lý khởi xướng để đặt “Set” hoặc thay đổi “Change” giá trị của một tham số thông qua SNMP trên tác nhân thiết bị hoặc hệ thống. Loại tin nhắn này có thể được sử dụng để quản lý hoặc cập nhật cài đặt cấu hình hoặc các thông số khác. Nhưng hãy cẩn thận! Một SetRequest không chính xác có thể làm hỏng hệ thống và thiết lập mạng nghiêm trọng.
  • Response - Phản hồi là tin nhắn mà tác nhân thiết bị gửi khi có Yêu cầu “Request” từ Trình quản lý. Khi gửi phản hồi đối với yêu cầu loại GetRequest, gói tin chứa dữ liệu hoặc giá trị được yêu cầu sẽ được gửi đi. Trong trường hợp SetRequest, gói tin sẽ phản hồi với giá trị mới được thiết lập như một xác nhận rằng SetRequest đã được hoàn thành thành công.
  • Trap(v2) - Một bẫy “trap” được gửi (“push out”) bởi tác nhân SNMP mà không cần trình quản lý yêu cầu. Thay vào đó, bẫy “trap” được gửi theo các điều kiện xác định, chẳng hạn như trong trường hợp có lỗi hoặc khi vượt qua ngưỡng đặt trước. Nếu người dùng muốn hưởng lợi từ các bẫy “trap” để giám sát, đây là một ý tưởng tuyệt vời về giám sát chủ động, trước tiên họ có thể phải định cấu hình các bẫy “trap” với sự trợ giúp của trình quản lý SNMP.
  • InformRequest - Loại tin nhắn này đã được thêm vào SNMP v2 để cung cấp cho trình quản lý khả năng xác nhận rằng nó đã nhận được tin nhắn bẫy “trap” của tác nhân. Một số tác nhân “Agents” được cấu hình để tiếp tục gửi bẫy “trap” cho đến khi nhận được thông báo.
  • Report - SNMP v3 là cần thiết để sử dụng chức năng tin nhắn Báo cáo “Report”. Chúng cho phép Trình quản lý SNMP xác định loại sự cố đã được phát hiện bởi tác nhân SNMP Agent từ xa. Dựa trên lỗi được phát hiện, SNMP engine có thể cố gắng gửi một tin nhắn SNMP đã được sửa “Corrected SNMP Message”. Nếu không thể, nó có thể chuyển một dấu hiệu chỉ báo lỗi cho ứng dụng mà yêu cầu SNMP không thành công được gửi đi. [RFC3412]
 

- Cách thức truyền tải tin nhắn SNMP
  • Giao thức Quản lý Mạng Đơn giản SNMP là một phần của bộ giao thức Internet Protocol Suit như một giao thức lớp ứng dụng “Application Layer” (lớp 7) của mô hình OSI.
  • SNMP sử dụng Giao thức dữ liệu người dùng UDP (UDP - User Datagram Protocol) để truyền các tin nhắn thông điệp của mình. Điều cần thiết là các gói tin UDP packet có thể chuyển từ tác nhân “Agent” đến trình quản lý “Manager” để giám sát thành công. Điều này thường hoạt động theo mặc định trên mạng cục bộ nhưng cần có cấu hình bộ định tuyến bổ sung để cho phép các gói tin như vậy truyền qua các mạng rộng hơn.
  • Các tác nhân SNMP Agent nhận các yêu cầu UDP Request trên cổng port 161. Các yêu cầu được gửi từ trình quản lý SNMP có thể được gửi từ bất kỳ cổng nào. Thông thường, nó là 161. Các tác nhân Agent gửi bẫy “trap” qua cổng 162. Trình quản lý SNMP cũng nhận được bẫy “trap” trên cổng 162.
 
4. OID và MIB là gì?

- OID
  • OID là viết tắt của từ “Object Identifier”, tức là “Mã nhận diện đối tượng”. OID xác định duy nhất các đối tượng được quản lý được định nghĩa trong các tệp MIB.
  • Giải thích:
  • Trên máy in, các đối tượng điển hình cần theo dõi là các trạng thái hộp mực khác nhau và có thể là số lượng tệp đã in. Trên một switch, các đối tượng quan tâm điển hình là lưu lượng đến và đi cũng như tỷ lệ mất gói (package loss) hoặc số lượng gói được gửi đến một địa chỉ quảng bá.
  • Hệ thống phân cấp đối tượng OID (OID hierachy) thường được mô tả như một cây với các cấp độ khác nhau từ gốc đến các lá đơn. Mỗi OID có một địa chỉ tuân theo các cấp của cây OID.
  • Ví dụ:
    • Đây là cấu trúc mẫu của một OID:
 
Iso(1).org(3).dod(6).internet(1).private(4).transition(868).products(2).chassis(4)
.card(1).slotCps(2)-cpsSlotSummary(1).cpsModuleTable(1).cpsModuleEntry(1)
.cpsModuleModel(3).3562.3
 
Hoặc chỉ cần
 
1.3.6.1.4.868.2.4.1.2.1.1.1.3.3562.3
 
  • ID đối tượng MIB cấp cao nhất và chung được ấn định bởi các tổ chức tiêu chuẩn khác nhau như ISO. Các nhà cung cấp xác định OID cho các sản phẩm của chính họ trong các nhánh riêng của cây OID.
 
  • Có hai loại đối tượng: đối tượng vô hướng (scalar) và đối tượng dạng bảng (tabular). Các đối tượng vô hướng xác định một cá thể đối tượng duy nhất trong khi các đối tượng dạng bảng xác định nhiều cá thể đối tượng liên quan được nhóm trong các bảng MIB.
 
- MIB
  • MIB là viết tắt của cụm từ “Management Information Base”, nghĩa là “Cơ sở Thông tin Quản lý”, và đề cập đến một định dạng độc lập để định nghĩa thông tin quản lý. Nói cách khác, MIB chứa các OID theo một cách được xác định rõ ràng. Trong MIB, mọi đối tượng đều nhận được định nghĩa xác định các thuộc tính của nó trong thiết bị được quản lý. Các đối tượng được truy cập bằng giao thức SNMP.
 
- Tại sao cần có OID và MIB
  • Mọi thông tin quản lý có thể thu được qua SNMP - có thể là mức sử dụng bộ nhớ của máy chủ, lưu lượng truy cập trên bộ chuyển mạch Switch hoặc các tệp được xếp hàng đợi trên máy in - đều được xử lý riêng bằng OID của nó. Thuộc tính này là lý do tại sao cần có OID. Chúng giúp quản trị viên xác định và giám sát các đối tượng mà họ có trong mạng của mình và do đó, việc giám sát có ý nghĩa.
  • Để thực thể quản lý và thiết bị được quản lý trong mạng giao tiếp thành công, cả hai đều cần biết những OID nào khả dụng.
  • Đây là lý do tại sao MIB tồn tại và tại sao quản trị viên hệ thống cần chúng. Mọi đối tượng cần được giám sát trên một thiết bị phải được cung cấp bởi (các) MIB của thiết bị. Do đó, quản trị viên phải đảm bảo rằng tất cả MIB cần thiết được lưu trữ trên các thiết bị tác nhân SNMP Agent cũng như trên hệ thống thực thể quản lý “Managing Entity System”. Có thể dễ dàng nhận ra tệp MIB thông qua phần mở rộng .my hoặc .mib.

 
- Các nhà sản xuất thiết bị thường cung cấp các MIB cần thiết cùng với các sản phẩm hỗ trợ SNMP của họ. Tùy thuộc vào giải pháp giám sát được sử dụng, người ta có thể phải chuyển đổi MIB sang các phiên bản MIB cụ thể của sản phẩm.
 
- Tại sao SNMP lại phổ biến đến vậy: SMI
  • Có nhiều yếu tố khác nhau khiến SNMP trở nên phổ biến. Cấu trúc Thông tin Quản lý SMI (SMI - Structure of Management Information) cung cấp một cấu trúc được hiểu và chuẩn hóa phổ biến cho các loại dữ liệu và để chuyển chúng. Cũng vui lòng xem xét liên kết này để hiểu rõ lý do tại sao SMI cũng gắn bó chặt chẽ với OID và MIB: https://www.paessler.com/blog/snmp-deep-dive-how-smi-contributes-to-snmp
 

6. Các giá trị mà giao thức SNMP mang lại

- Tại sao ai đó sẽ sử dụng SNMP? Đúng như tên gọi của nó Simple Network Management Protocol, nó có thể được sử dụng để quản lý mạng. Để quản lý mạng, quản trị viên cần thông tin về mạng đó. Đây là nơi SNMP có giá trị lớn nhất. Nó thu thập tất cả dữ liệu từ nhiều thiết bị và cho phép đặt dữ liệu này vào tình huống cụ thể, một lần nữa cho phép theo dõi các vấn đề, đưa ra quyết định dựa trên dữ liệu thực và kiểm soát bất cứ khi nào cần thiết. Đó là tất cả những gì quản lý mạng. Và đó là lý do tại sao các quản trị viên hệ thống tìm thấy lợi ích từ việc sử dụng SNMP để giám sát mạng.
 
- Nhưng còn nhiều điều hơn thế. Một công cụ giám sát phù hợp, chẳng hạn như PRTG, cũng sẽ giúp tận dụng tối đa dữ liệu mà quản trị viên nhận được nhờ SNMP và trao quyền cho mọi quản trị viên mạng giám sát và quản lý mạng của họ một cách chủ động và kịp thời.
 
- Tổ chức tốt
  • Nó có thể là một cuộc phiêu lưu để theo dõi số lượng lớn các thiết bị mạng mà các mạng hiện đại bao gồm. Lý tưởng nhất là các giải pháp giám sát hỗ trợ quản trị viên bằng cách đưa ra cách phù hợp để cấu trúc và nhóm các thiết bị cũng như trình bày tổng quan rõ ràng cho phép đi vào chi tiết bất cứ khi nào cần để đảm bảo sức khỏe tổng thể của hệ thống.
 
- Cảnh báo & thông báo
  • Nhờ các công cụ giám sát, các quản trị viên hệ thống biết chính xác nơi cần hành động khi có vấn đề phát sinh, và đôi khi họ còn biết trước khi nó xảy ra. Việc được thông báo đúng lúc là hoàn toàn quan trọng, vì vậy, các giải pháp giám sát nên cung cấp đủ cách để thông báo cho quản trị viên - như email, thông báo đẩy “Push Notifications”, tin nhắn văn bản SMS (ví dụ: an toàn khi không có internet), thực thi một chương trình, hoặc thậm chí cảnh báo trên đồng hồ thông minh.
 
- Báo cáo & thống kê
  • Giám sát mạng sẽ dẫn đến rất nhiều dữ liệu trong cơ sở dữ liệu giám sát. Hãy để những con số tự nói lên và sử dụng chúng để tạo báo cáo và thống kê. Phân tích sẽ không chỉ cung cấp cái nhìn sâu sắc về mạng mà còn giúp chứng minh nhu cầu CNTT cho kế toán hoặc ban quản trị. Bảng điều khiển trực quan cũng sẽ giúp thành công hơn.
 
- Lập kế hoạch trước
  • Phân tích dữ liệu sẽ hiển thị xu hướng cho các mạng riêng lẻ và cho phép lập kế hoạch trước. Kết quả mà bạn sẽ giành được là: độ tin cậy, tốc độ và hiệu quả.
 
- Thiết lập cấu hình với sự thoải mái
  • Việc thiết lập giám sát cho các mạng lớn có thể rất tẻ nhạt và tốn thời gian. Các công cụ giám sát sẽ tự động hóa và tăng tốc độ đó cho người dùng và cung cấp, ví dụ, các tính năng tự động khám phá mạng linh hoạt hoặc các mẫu mặc định cho các sản phẩm cơ sở hạ tầng mạng được sử dụng rộng rãi. Và ai có thể nghĩ? Những công nghệ này có lẽ cũng sử dụng SNMP!
 
 
Nguồn: https://www.paessler.com/it-explained/snmp
Dịch: N.V.Hùng