0
我已經使用SNMP4J實現了SNMP代理。我已經閱讀過各種地方(包括SNMP4J javadoc),它們支持'getSubtree'操作,但似乎總是使用getNext和/或getBulk從客戶端完成。然而,我想要做的是爲'getSubtree'定義一個新的PDU,併爲其實現服務器端代理支持。 (a)使用SNMP4J實現了一種新的PDU類型(超出了7種標準的PDU類型),和/或(b)在代理中實現了'getSubtree'支持(我已經知道如何從客戶端模擬它)是(a)還是(b)甚至可能?任何關於如何做的指針都將非常感謝!如何實現SNMP「getSubtree」PDU類型,並在SNMP代理中支持它?
是的,數據溢出/多重請求問題正是我想要處理的。然而,我讀過的各種頁面和論文都是關於實現'getSubtree'操作的(他們與標準的操作並行)。我見過一個提案(用RFC風格編寫)。我已經看到了一個使用SET和多個陷阱進行響應的MIB。雖然我同意擁有標準操作系統是合法的,但我試圖發現/複製這些其他操作系統。你碰到過嗎?設置來自客戶端的呼叫很簡單,但SNMP4J表示它是無效的類型。 – 2012-02-29 17:46:16
那麼,如果你控制客戶端和服務器上的代碼,那麼肯定,你可以添加任何你想要的管理堆棧和服務器端代理。但是,你不再做互操作的SNMP,你正在做一些新的事情。已經有很多要求解決這個問題,但是沒有一個是標準化的。一些商業堆棧確實有這樣的擴展機制,但它們又不能在每個設備上工作[事實上,很少有]。你可以做的最好的事情是找到一個rowcount對象,這樣你就可以知道如何設置GETBULK轉發器的數量 – 2012-02-29 23:14:17
謝謝,Wes。我確實結束了(至少現在)實現客戶端和服務器的一個版本,以在SNMP4J之上提供新的PDU。由於其簽名與GET非常相似,因此非常簡單。我同意這是非標準的,但因爲它是用於我們自己的管理控制檯,所以它可能沒問題。由於需要發送的數據的大小,它可能只適用於TCP連接,這是我在討論各種論文中的getSubtree時看到的常見線索。 – 2012-03-01 02:14:55