Thứ hai, 18/08/2014 | 00:00 GMT+7

Giới thiệu về SNMP (Giao thức quản lý mạng đơn giản)

Một phần lớn của việc trở thành administrator hệ thống là thu thập thông tin chính xác về server và cơ sở hạ tầng của bạn. Có một số công cụ và tùy chọn để thu thập và xử lý loại thông tin này. Nhiều người trong số họ được xây dựng dựa trên một công nghệ gọi là SNMP .

SNMP là viết tắt của giao thức quản lý mạng đơn giản. Đây là một cách mà các server có thể chia sẻ thông tin về trạng thái hiện tại của chúng và cũng là một kênh mà qua đó administrator có thể sửa đổi các giá trị được định nghĩa . Mặc dù bản thân giao thức rất đơn giản, nhưng cấu trúc của các chương trình thực hiện SNMP có thể rất phức tạp.

Trong hướng dẫn này, ta sẽ giới thiệu cho bạn những điều cơ bản về giao thức SNMP. Ta sẽ xem xét cách sử dụng của nó, cách mà giao thức thường được sử dụng trong một mạng, sự khác biệt trong các version giao thức của nó và hơn thế nữa.

Các khái niệm cơ bản

SNMP là một giao thức được triển khai trên lớp ứng dụng của mạng (bấm vào đây để tìm hiểu về các lớp mạng ). Giao thức được tạo ra như một cách thu thập thông tin từ các hệ thống rất khác nhau một cách nhất quán. Mặc dù nó được dùng liên quan đến một loạt các hệ thống, phương pháp truy vấn thông tin và các đường dẫn đến thông tin liên quan đều được tiêu chuẩn hóa.

Có nhiều version của giao thức SNMP và nhiều thiết bị phần cứng được nối mạng thực hiện một số hình thức truy cập SNMP. Phiên bản được sử dụng rộng rãi nhất là SNMPv1, nhưng nó không an toàn về nhiều mặt. Sự phổ biến của nó phần lớn bắt nguồn từ sự phổ biến và lâu đời của nó trong tự nhiên. Trừ khi bạn có lý do chính đáng để không, ta khuyên bạn nên sử dụng SNMPv3, cung cấp các tính năng bảo mật nâng cao hơn.

Nói chung, một mạng được SNMP lập profile sẽ chủ yếu bao gồm các thiết bị chứa các tác nhân SNMP. Tác nhân là một chương trình có thể thu thập thông tin về một phần cứng, sắp xếp nó thành các mục được định nghĩa và trả lời các truy vấn bằng giao thức SNMP.

Thành phần của mô hình này truy vấn các tác nhân để tìm thông tin được gọi là trình quản lý SNMP. Các máy này thường có dữ liệu về tất cả các thiết bị hỗ trợ SNMP trong mạng của chúng và có thể đưa ra các yêu cầu thu thập thông tin và đặt các thuộc tính nhất định.

Người quản lý SNMP

Trình quản lý SNMP là một máy tính được cấu hình để thăm dò ý kiến của tác nhân SNMP về thông tin. Thành phần quản lý, khi chỉ thảo luận về chức năng cốt lõi của nó, thực sự ít phức tạp hơn rất nhiều so với cấu hình client , bởi vì thành phần quản lý chỉ yêu cầu dữ liệu.

Người quản lý có thể là bất kỳ máy nào có thể gửi yêu cầu truy vấn đến các đại lý SNMP với thông tin xác thực chính xác. Đôi khi, điều này được thực hiện như một phần của bộ giám sát, trong khi những lần khác, điều này là administrator sử dụng một số tiện ích đơn giản để tạo yêu cầu nhanh.

Hầu hết tất cả các lệnh được xác định trong giao thức SNMP ( ta sẽ đi sâu vào chi tiết sau) được thiết kế để gửi bởi một thành phần trình quản lý. Chúng bao gồm GetRequest , GetNextRequest , GetBulkRequest , SetRequest , InformRequestResponse . Ngoài những điều này, một trình quản lý cũng được thiết kế để phản Response các thông báo TrapResponse .

Đại lý SNMP

Nhân viên SNMP thực hiện phần lớn công việc. Họ chịu trách nhiệm thu thập thông tin về hệ thống local và lưu trữ chúng ở định dạng có thể được truy vấn. Cập nhật database được gọi là "cơ sở thông tin quản lý", hoặc MIB .

MIB là một cấu trúc phân cấp, được định nghĩa để lưu trữ thông tin có thể được truy vấn hoặc cài đặt . Điều này có sẵn cho các yêu cầu SNMP được định dạng tốt bắt nguồn từ server đã được kiểm nghiệm bằng thông tin xác thực chính xác (trình quản lý SNMP).

Máy tính tác nhân cấu hình người quản lý nào sẽ có quyền truy cập vào thông tin của nó. Nó cũng có thể hoạt động như một trung gian để báo cáo thông tin về các thiết bị mà nó có thể kết nối không được cấu hình cho lưu lượng SNMP. Điều này cung cấp rất nhiều sự linh hoạt trong việc đưa các thành phần của bạn trực tuyến và SNMP có thể truy cập được.

Các tác nhân SNMP đáp ứng hầu hết các lệnh được xác định bởi giao thức. Chúng bao gồm GetRequest , GetNextRequest , GetBulkRequest , SetRequestInformRequest . Ngoài ra, một tác nhân được thiết kế để gửi tin nhắn Trap .

Hiểu cơ sở thông tin quản lý

Phần khó hiểu nhất của hệ thống SNMP có lẽ là MIB , hay cơ sở thông tin quản lý. MIB là một database tuân theo một tiêu chuẩn mà người quản lý và các đại lý tuân theo . Đây là một cấu trúc phân cấp, trong nhiều lĩnh vực, được tiêu chuẩn hóa global , nhưng cũng đủ linh hoạt để cho phép các bổ sung dành riêng cho nhà cung cấp.

Cấu trúc MIB được hiểu rõ nhất là một cây phân cấp từ trên xuống. Mỗi nhánh rẽ nhánh được gắn nhãn với cả số nhận dạng (bắt đầu bằng 1) và chuỗi nhận dạng là duy nhất cho cấp đó của hệ thống phân cấp. Bạn có thể sử dụng các chuỗi và số thay thế cho nhau.

Để tham chiếu đến một nút cụ thể của cây, bạn phải theo dõi đường dẫn từ root chưa đặt tên của cây đến nút được đề cập. Dòng của các ID mẹ (số hoặc chuỗi) được xâu chuỗi lại với nhau, bắt đầu bằng số chung nhất, để tạo thành một địa chỉ. Mỗi điểm nối trong hệ thống phân cấp được biểu thị bằng một dấu chấm trong ký hiệu này, do đó, địa chỉ kết thúc là một chuỗi các chuỗi ID hoặc số được phân tách bằng dấu chấm. Toàn bộ địa chỉ này được gọi là số nhận dạng đối tượng, hoặc OID .

Các nhà cung cấp phần cứng nhúng tác nhân SNMP vào thiết bị của họ đôi khi triển khai các nhánh tùy chỉnh với các trường và điểm dữ liệu của riêng họ. Tuy nhiên, có các nhánh MIB tiêu chuẩn được xác định rõ và được dùng bởi bất kỳ thiết bị nào.

Các nhánh tiêu chuẩn mà ta sẽ thảo luận sẽ nằm trong cùng một cấu trúc nhánh mẹ. Nhánh này xác định thông tin tuân theo đặc điểm kỹ thuật MIB-2, là tiêu chuẩn sửa đổi cho các thiết bị tuân theo .

Đường dẫn cơ sở đến nhánh này là:

1.3.6.1.2.1 

Điều này cũng có thể được biểu diễn trong các chuỗi như:

iso.org.dod.internet.mgmt.mib-2 

Phần 1.3.6.1 hoặc iso.org.dod.internet là OID định nghĩa tài nguyên Internet. 2 hoặc mgmt theo sau trong đường dẫn cơ sở của ta là dành cho danh mục con quản lý. 1 hoặc mib-2 bên dưới xác định đặc điểm kỹ thuật MIB-2.

Đây là một nguồn tài liệu tuyệt vời để bạn làm quen với cây MIB . Trang cụ thể này đại diện cho các node kết nối tại điểm giao nhau mà ta đã nói đến. Bạn có thể kiểm tra những gì ở trên và dưới của cây bằng cách xem các tham chiếu "cấp trên" và "phụ" tương ứng.

Một công cụ tương tự khác là Bộ chuyển đối tượng SNMP do Cisco cung cấp. Điều này được dùng để đi sâu vào hệ thống phân cấp để tìm thông tin bạn cần. Một cây tương tự được cung cấp bởi SolarWinds.

Về cơ bản, nếu ta muốn truy vấn thiết bị của bạn để tìm thông tin, hầu hết các đường dẫn sẽ bắt đầu bằng 1.3.6.1.2.1 . Bạn có thể duyệt qua các giao diện cây để tìm hiểu loại thông tin có sẵn để truy vấn và cài đặt .

Lệnh giao thức SNMP

Một trong những lý do khiến SNMP được áp dụng nhiều như vậy là sự đơn giản của các lệnh có sẵn. Có rất ít hoạt động để thực hiện hoặc ghi nhớ, nhưng chúng đủ linh hoạt để giải quyết các yêu cầu tiện ích của giao thức.

Các PDU hoặc đơn vị dữ liệu giao thức sau đây mô tả các kiểu nhắn tin chính xác được giao thức cho phép:

  • Nhận : Thông báo Nhận được gửi bởi người quản lý đến một đại lý để yêu cầu giá trị của một OID cụ thể. Yêu cầu này được trả lời bằng một thông báo Phản hồi được gửi lại cho người quản lý cùng với dữ liệu.
  • GetNext : Thông báo GetNext cho phép người quản lý yêu cầu đối tượng tuần tự tiếp theo trong MIB. Đây là một cách mà bạn có thể xem qua cấu trúc của MIB mà không cần lo lắng về những OID cần truy vấn.
  • Set : Thông báo Set được gửi bởi người quản lý tới một tác nhân để thay đổi giá trị được nắm giữ bởi một biến trên tác nhân. Điều này được dùng để kiểm soát thông tin cấu hình hoặc sửa đổi trạng thái của server từ xa. Đây là hoạt động ghi duy nhất được xác định bởi giao thức.
  • GetBulk : Trình quản lý đến yêu cầu tác nhân này hoạt động như thể nhiều yêu cầu GetNext đã được thực hiện. Trả lời lại cho người quản lý sẽ chứa nhiều dữ liệu nhất có thể (trong các ràng buộc do yêu cầu đặt ra) khi gói tin cho phép.
  • Phản hồi : Thông báo này, do một đại lý gửi, được sử dụng để gửi lại bất kỳ thông tin được yêu cầu nào cho người quản lý. Nó vừa đóng role là phương tiện truyền tải dữ liệu được yêu cầu, vừa là sự xác nhận đã nhận được yêu cầu. Nếu dữ liệu được yêu cầu không thể được trả lại, phản hồi chứa các trường lỗi có thể được đặt với thông tin khác. Một thông báo phản hồi phải được trả lại cho bất kỳ yêu cầu nào ở trên, cũng như thông báo Thông báo.
  • Bẫy : Thông báo bẫy thường được gửi bởi một đặc vụ tới người quản lý. Bẫy là những thông báo không đồng bộ trong đó chúng không được yêu cầu bởi người quản lý nhận chúng. Chúng chủ yếu được các đại lý sử dụng để thông báo cho người quản lý về các sự kiện đang xảy ra trên thiết bị được quản lý của họ.
  • Thông báo : Để xác nhận việc nhận được bẫy, người quản lý sẽ gửi một thông báo Thông báo lại cho đại lý. Nếu nhân viên không nhận được thông báo này, nó có thể tiếp tục gửi lại thông báo bẫy.

Với bảy loại đơn vị dữ liệu này, SNMP có khả năng truy vấn và gửi thông tin về các thiết bị nối mạng của bạn.

Phiên bản giao thức

Giao thức SNMP đã trải qua nhiều thay đổi kể từ lần đầu tiên được giới thiệu. Thông số ban đầu được xây dựng với RFC 1065, 1066 và 1067 vào năm 1988. Bởi thực tế đơn giản là nó đã tồn tại rất lâu, version này vẫn được hỗ trợ rộng rãi. Tuy nhiên, có nhiều vấn đề bảo mật với giao thức, bao gồm cả việc xác thực bằng text thuần túy, vì vậy việc sử dụng nó rất không được khuyến khích, đặc biệt là khi sử dụng trên các mạng không được bảo vệ.

Công việc trên version 2 của giao thức được bắt đầu vào năm 1993 và cung cấp một số cải tiến đáng kể so với tiêu chuẩn trước đó. Bao gồm trong version này là một mô hình bảo mật "dựa trên bên" mới nhằm giải quyết các vấn đề bảo mật vốn có với bản sửa đổi trước. Tuy nhiên, mô hình mới này không phổ biến lắm vì khó hiểu và khó thực hiện.

Vì lý do này, một số "phần phụ" của version 2 đã được tạo ra, mỗi phần đều giữ nguyên phần lớn các cải tiến của version 2, nhưng đã swap mô hình bảo mật. Trong SNMPv2c, xác thực dựa trên cộng đồng, mô hình tương tự được sử dụng trong v1, đã được giới thiệu lại. Đây là version phổ biến nhất của giao thức v2. Một triển khai khác, được gọi là SNMPv2u, sử dụng bảo mật dựa trên user , mặc dù điều này chưa bao giờ rất phổ biến. Điều này được phép cho cài đặt xác thực mỗi user .

Năm 1998, version thứ ba (và hiện tại) của giao thức SNMP được đưa vào như một đề xuất đặc tả. Từ quan điểm của user , thay đổi phù hợp nhất là việc áp dụng hệ thống bảo mật dựa trên user . Nó cho phép bạn đặt các yêu cầu xác thực của user là một trong các mô hình sau:

  • NoAuthNoPriv : User kết nối với cấp độ này không có xác thực tại chỗ và không có quyền riêng tư đối với tin nhắn họ gửi và nhận.
  • AuthNoPriv : Các kết nối sử dụng mô hình này phải xác thực, nhưng tin nhắn được gửi mà không có bất kỳ mã hóa nào.
  • AuthPriv : Yêu cầu xác thực và các tin nhắn được mã hóa.

Ngoài xác thực, một cơ chế kiểm soát truy cập đã được triển khai để cung cấp khả năng kiểm soát chi tiết đối với các nhánh mà user có thể truy cập. Phiên bản 3 cũng có khả năng tận dụng bảo mật được cung cấp bởi các giao thức truyền tải, chẳng hạn như SSH hoặc TLS.

Kết luận

Đến đây bạn đã có ý tưởng tốt về cách giao thức hoạt động, bạn đã có nền tảng cần thiết để triển khai SNMP trong cơ sở hạ tầng của riêng mình.

Trong hướng dẫn tiếp theo , ta sẽ thảo luận về cách cài đặt và cấu hình các thành phần cần thiết để tận dụng SNMP trên hệ thống.


Tags:

Các tin liên quan