2010-03-19 78 views
19

Tôi đang tìm hiểu về SNMP và viết một số ứng dụng bằng cách sử dụng nó. Tôi có một số câu hỏi cơ bản về giao thức:Câu hỏi cơ bản về SNMP

  1. Các đại lý có lưu trữ trạng thái của nó trên thiết bị không?
  2. Nếu có một cái bẫy đặt trên một đại lý, bạn có thể làm một cuộc thăm dò trên cùng một OID để có được cùng một thông tin?
  3. Không sử dụng tệp mib, có cách nào để truy vấn thiết bị cho tất cả thông tin của nó cùng một lúc không? Nếu không, và bạn đang viết trình quản lý tùy chỉnh của riêng mình, bạn có phải biết cấu trúc của những gì nó báo cáo trước không?
  4. Nếu bạn đang thiết lập đại lý để báo cáo, thường có cách kiểm soát tần suất tần suất gửi bẫy không? Hay nó thường gửi một cái bẫy thường xuyên như một số điều kiện được thỏa mãn?

Trả lời

11

Các đại lý có lưu trữ trạng thái của nó trên thiết bị không?

Bạn có thể lưu trữ dữ liệu hoặc tắt thiết bị. Cả hai đều có thể và cả hai đều được thực hiện. Vấn đề với thông tin trạng thái lưu trữ (lưu trữ) đại lý về một thiết bị từ xa là hệ thống quản lý không bao giờ thực sự biết được liệu dữ liệu (được lưu trữ) trong tác nhân có được chấp nhận hay không. Nếu bạn không thể dựa vào nó, bạn sẽ cần sử dụng trình quản lý để kích hoạt đồng bộ hóa hoặc thăm dò trạng thái của thiết bị từ xa và/hoặc liên kết giao tiếp giữa tác nhân và thiết bị từ xa. Một khi bạn nhận được vào trò chơi đó, nó thường là tốt hơn chỉ để đặt một subagent trên thiết bị từ xa, và sử dụng các giao thức SNMP tiêu chuẩn để có được thông tin.

Nếu có bẫy đặt trên tác nhân, bạn có thể thực hiện cuộc thăm dò trên cùng một OID để nhận được thông tin tương tự không?

Hầu hết các MIB được thiết kế tốt thực sự đặt đối tượng MIB đã thay đổi ngay vào bẫy. Bằng cách đó, Trình quản lý SNMP của bạn không phải thăm dò ý kiến ​​của đại lý chỉ để chắc chắn.

Có nói rằng, bẫy trên Entity-MIB không có bất kỳ biến trạng thái nào. Tuy nhiên, MIB được sử dụng để mô tả hàng tồn kho vật lý như kệ, thẻ và cổng và bẫy chỉ được ném nếu cấu hình vật lý thay đổi. Trong trường hợp này, bạn được yêu cầu để Trình quản lý SNMP của bạn đi bộ lại Entity-MIB để có được cấu hình vật lý hoàn toàn mới.

Không sử dụng tệp mib, có cách nào để truy vấn thiết bị cho tất cả thông tin cùng một lúc không?

Có. Cuộn MIB tùy chỉnh của riêng bạn và đặt bất kỳ thứ gì bạn muốn vào đó. Bạn có thể đặt toàn bộ cấu hình thiết bị của mình vào một đối tượng MIB. Mặt trái của điều này là bạn sẽ phải viết một trình phân tích cú pháp trên Trình quản lý SNMP để phân tích cấu trúc và nếu cấu trúc thay đổi, bạn sẽ cần tìm ra ý nghĩa của sự khác biệt giữa giá trị hiện tại và giá trị trước đó . tức là bạn sẽ phát minh lại một số MIB SNMP. Tuy nhiên, đối với các MIB rất nhỏ, điều này có thể đáng làm.

Có lẽ bạn nên sử dụng SNMP GET-BULK, hoặc chỉ thực hiện một bước đi MIB bằng cách liên tục gọi SNMP-GET-NEXT cho đến khi không còn đối tượng nào được trả lại.

Nếu không, và bạn đang viết trình quản lý tùy chỉnh của riêng mình, bạn có phải biết cấu trúc của nội dung báo cáo trước không?

Nếu bạn muốn giữ "người quản lý tùy chỉnh" đơn giản, bạn sẽ phải biết cấu trúc phía trước. Nếu bạn muốn sự linh hoạt, bạn sẽ cần ngôn ngữ mô tả cấu trúc để mã hóa cấu trúc của bạn và người quản lý của bạn cần phải giải mã dữ liệu này từ dữ liệu tác nhân và điền trình quản lý và lấy dữ liệu từ người quản lý và mã hóa nó định dạng này để gửi cho (các) đại lý. tức là bạn sẽ phát minh lại SNMP/SMI, CMIP/CMISE, CIM và một loạt các hệ thống quản lý và giao thức khác đã được triển khai.

Nếu bạn đang thiết lập đại lý để báo cáo, thường có cách kiểm soát tần suất tần suất gửi bẫy không? Hay nó thường gửi một cái bẫy thường xuyên như một số điều kiện được thỏa mãn?

Đây là một câu hỏi hay, vì bạn thường xuyên bị bão bẫy tắc nghẽn mạng của bạn một cách chính xác khi bạn cần mạng của mình nhiều nhất. Điều đó gây khó khăn cho việc dự đoán có bao nhiêu mạng để cung cấp.

Sử dụng bẫy cẩn thận. Ví dụ, Entity-MIB chỉ có một cái bẫy, và cái đó đáng để sử dụng vì nó báo cáo về những thay đổi cấu trúc vật lý. Giao diện-MIB có khả năng nhiều bẫy trên mỗi cổng. Đối với MIB này, tốt nhất là chỉ cho phép bẫy cho giao diện bị ràng buộc vào một cổng vật lý, chứ không phải cho các giao diện xếp chồng lên nhau trên các giao diện lớp thấp hơn. Đối với một mạng lớn, tốt nhất là chỉ sử dụng một sự kết hợp của bỏ phiếu cộng với bẫy cho các thiết bị vật lý và các giao diện vật lý. Bằng cách đó, bạn có thể dự đoán số lượng mạng của bạn sẽ được sử dụng để quản lý lưu lượng truy cập cho dù trong hoạt động bình thường hay trong một thảm họa mạng.

Một số MIB chuẩn xác định tần suất hoặc khi nào bạn có thể ném bẫy. Nếu bạn đồng ý với điều đó, hãy sử dụng nó. Bạn luôn có thể cuộn MIB doanh nghiệp của riêng bạn với các đối tượng MIB cấu ​​hình cho phép người quản lý của bạn điều tiết các bẫy cụ thể.

17

Các tác nhân có lưu trữ trạng thái của nó trên thiết bị không?

Trong trường hợp phổ biến nhất, tác nhân SNMP đang chạy trên thiết bị theo dõi. Trong trường hợp này, tác nhân không có tùy chọn khác và mọi thông tin trạng thái phải được lưu trữ trên thiết bị. Đại lý SNMP chỉ đọc hoặc đặt những thông tin này.

Nếu có bẫy đặt trên đại lý, bạn có thể thực hiện cuộc thăm dò trên cùng một OID để nhận được thông tin tương tự không?

Tôi nghĩ rằng bạn sẽ có thể làm điều đó - ví dụ SNMPv2 bẫy IF-MIB :: linkDown chứa ba varbinds - IF-MIB :: ifIndex, IF-MIB :: ifAdminStatus và IF-MIB :: ifOperStatus . Trong trường hợp cụ thể này, ifIndex xác định hàng trong ifTable và hai hàng khác có thể được thăm dò.

Không sử dụng tệp mib, có cách nào cách truy vấn thiết bị cho tất cả thông tin cùng một lúc không?

Có, sử dụng snmp-walk từ gói snmp net hoặc bất kỳ công cụ snmp nào khác có thể sử dụng get-next để thăm dò dữ liệu.

Nếu không, và bạn đang viết riêng quản lý tùy chỉnh của bạn, bạn có phải biết cấu trúc của những gì nó báo cáo lên phía trước?

Bạn cần biết những gì MIB thiết bị chứa - không có thông tin như vậy bạn chỉ nhận được số và giá trị số, điều này vô nghĩa cho cả nhà phát triển và người dùng. Trong trường hợp các MIB phức tạp hơn, bạn cần phải biết khá nhiều chi tiết về thiết bị được quản lý. Tệp MIB hầu như không bao giờ chứa đủ thông tin.

+2

Đồng ý. Trong thực tế, giao thức SNMP không bao gồm tất cả các khía cạnh mà David đã hỏi. Nhiều chi tiết như lưu trữ trạng thái phụ thuộc vào việc triển khai thực hiện. Các tài liệu MIB mở một cánh cửa để bạn có thể truy vấn thông tin về một thiết bị, nhưng nhà cung cấp của nó luôn hiểu rõ hơn về cách sử dụng các đối tượng, vì các tài liệu MIB thường không bao gồm tất cả các chi tiết. –

-1

Các tác nhân có lưu trữ trạng thái của nó trên thiết bị không?

Tùy thuộc vào thiết bị và ứng dụng; một số thiết bị lưu trữ cục bộ những người khác sử dụng tác nhân proxy.

Nếu có bẫy đặt trên tác nhân, bạn có thể thực hiện cuộc thăm dò trên cùng một OID để nhận được thông tin tương tự không?

Có, nhưng tốt hơn nên bao gồm thông tin trong bẫy để trạm quản lý không phải thực hiện nhiều "chuyến đi khứ hồi" cho thiết bị. Ví dụ, nếu bạn thay đổi giá trị thuộc tính, thì thực hành tốt là gửi giá trị cũ và mới trong bẫy.

Không sử dụng tệp mib, có cách nào để truy vấn thiết bị cho tất cả thông tin cùng một lúc không? Nếu không, và bạn đang viết trình quản lý tùy chỉnh của riêng mình, bạn có phải biết cấu trúc của những gì nó báo cáo trước không?

Thông thường không ... SNMP Nguyên thủy tiếp theo được thiết kế cho trường hợp như vậy.

Nếu bạn đang thiết lập đại lý để báo cáo, thường có cách kiểm soát tần suất tần suất gửi bẫy không? Hay nó thường gửi một cái bẫy thường xuyên như một số điều kiện được thỏa mãn?

Có, tùy thuộc vào tác nhân khi nào gửi bẫy.

Nếu bạn đang phát triển đại lý của riêng mình, tôi cao đề nghị bạn xem xét Net-SNMP. Ngay cả khi bạn chọn đi với một sản phẩm khác, mã Net-SNMP được thiết kế và triển khai rất tốt. Cộng với nó có rất nhiều tính năng bổ sung để giúp phát triển và kiểm tra các tác nhân (và các hệ thống quản lý).

+0

Sao chép và dán? -1 khi một người khác đã sử dụng cùng một câu trả lời –

+0

Lỗi người mới tràn ngăn xếp. Nhận xét về NetSNMP vẫn hợp lệ và hữu ích. – Doug