背景知識:
1.三層裝置的arp表儲存ip和mac的對應關係。
2.二層裝置的**橋接表中儲存mac和**埠對應關係。
3.cdp(cisco discovery protocol)是思科裝置之間發現相鄰裝置的鏈路層協議。
4.三層交換機的二層模組中的**表以cam表實現,如 show cam dynamic
5.在劃分vlan 的情況下,思科裝置上**表內容要根據community string indexing 方法獲取。
通過檢視系統的arp快取表可以找出某ip所對應的mac,查詢ipnettomediaphyaddress(
oid: 1.3.6.1.2.1.4.22.1),
可以得到如下結果
,例:oid: 1.3.6.1.2.1.4.22.1.2.8.127.0.0.2 type: snmp.snmpoctetstring value: (hex: 00 06 28 67 05 00 )
oid: 1.3.6.1.2.1.4.22.1.2.10.10.1.3.1 type: snmp.snmpoctetstring value: (hex: 00 02 b9 b2 4c 0a )
oid: 1.3.6.1.2.1.4.22.1.2.10.10.1.3.4 type: snmp.snmpoctetstring value: (hex: 00 08 74 9c bd a7 )
oid: 1.3.6.1.2.1.4.22.1.2.10.10.1.3.5 type: snmp.snmpoctetstring value: (hex: 00 e0 4c 10 3a d7 )
oid: 1.3.6.1.2.1.4.22.1.2.10.10.1.3.34 type: snmp.snmpoctetstring value: (hex: 00 0a e6 64 10 4b )
oid: 1.3.6.1.2.1.4.22.1.2.10.10.1.3.38 type: snmp.snmpoctetstring value: (hex: 00 e0 4c 3c 11 02 )
oid: 1.3.6.1.2.1.4.22.1.2.10.10.1.3.75 type: snmp.snmpoctetstring value: (hex: 00 50 22 88 29 f2 )
oid: 1.3.6.1.2.1.4.22.1.2.10.10.1.3.82 type: snmp.snmpoctetstring value: (hex: 00 d0 f8 0c bc b8 )
可以看到ipnettomediaphyaddress.10.10.1.3.4這樣乙個oid,這裡緊跟在ipnettomediaphyaddress後面的10是指10.1.3.4的**埠索引。這樣就可以根據這一項得出10.1.3.4的mac位址是00:08:9c:bd:a7。
2.查詢該三層裝置mib表中的cdpcacheaddress(
oid: 1.3.6.1.4.1.9.9.23.1.2.1.1.4
),如下表示:
oid: 1.3.6.1.4.1.9.9.23.1.2.1.1.4.10.145 type: snmp.snmpoctetstring value:
括c_ (hex: c0 a8 63 02 )
這裡c0 a8 63 02 是ip位址的16進製表示,轉成十進位制是192.168.99.2。三層裝置的ip是192.168.99.1。這個ip位址的表示型別可以根據cdpcacheaddresstype確定。cdpcacheaddress後面的10是指ifindex。 3.
查詢192.168.99.2上面的橋接表。先要得到該裝置上的vlan列表,查詢vtpvlanifindex(
oid: 1.3.6.1.4.1.9.9.46.1.3.1.1.18),
例如:
oid: 1.3.6.1.4.1.9.9.46.1.3.1.1.18.1.1 type: snmp.snmpinteger value: 6
oid: 1.3.6.1.4.1.9.9.46.1.3.1.1.18.1.2 type: snmp.snmpinteger value: 17
oid: 1.3.6.1.4.1.9.9.46.1.3.1.1.18.1.3 type: snmp.snmpinteger value: 18
oid 部分最後一位是指vlan號,oid值是指ifindex。可以從中得到該裝置上的所有vlan號。
4.查詢橋接**表。查詢dot1dtpfdbaddress(oid:1.3.6.1.2.1.17.4.3.1.1),在這裡,需要用到community string indexing,思科裝置的**表對每個vlan是不一樣的。這時候共同體名為community@vlank號,如:public@1,public@2,public@3等,預設情況下取來的是public@1地的**表。此時需在對每個vlan的**表進行查詢,直到找到10.1.3.4的mac位址,例如:
oid: 1.3.6.1.2.1.17.4.3.1.1.0.2.253.21.123.10 type: snmp.snmpoctetstring value: (hex: 00 02 fd 15 7b 0a )
oid: 1.3.6.1.2.1.17.4.3.1.1.0.5.59.18.64.136 type: snmp.snmpoctetstring value: (hex: 00 05 3b 12 40 88 )
oid: 1.3.6.1.2.1.17.4.3.1.1.0.5.59.18.65.215 type: snmp.snmpoctetstring value: (hex: 00 05 3b 12 41 d7 )
oid: 1.3.6.1.2.1.17.4.3.1.1.0.5.59.18.110.148 type: snmp.snmpoctetstring value: (hex: 00 05 3b 12 6e 94 )
oid: 1.3.6.1.2.1.17.4.3.1.1.0.8.116.156.189.167 type: snmp.snmpoctetstring value: (hex: 00 08 74 9c bd a7 ) 跟在
dot1dtpfdbaddress
後面的是
mac位址的十進位制表示,查到
mac位址所在行後,再查詢
dot1dtpfdbport(oid: 1.3.6.1.2.1.17.4.3.1.2),例如:
oid: 1.3.6.1.2.1.17.4.3.1.2.0.2.185.178.76.10 type: snmp.snmpinteger value: 833
oid: 1.3.6.1.2.1.17.4.3.1.2.0.2.253.21.123.10 type: snmp.snmpinteger value: 2
oid: 1.3.6.1.2.1.17.4.3.1.2.0.5.59.18.64.136 type: snmp.snmpinteger value: 2
oid: 1.3.6.1.2.1.17.4.3.1.2.0.8.116.156.189.167 type: snmp.snmpinteger value: 2
這裡是dot1dtpfdbport加上由上所得到的mac位址的十進位制查詢到橋接埠,再根據這個埠查到其埠索引,查詢dot1dbaseportifindex(oid:1.3.6.1.2.1.17.4.1.2),例如:
oid: 1.3.6.1.2.1.17.1.4.1.2.1 type: snmp.snmpinteger value: 4
oid: 1.3.6.1.2.1.17.1.4.1.2.2 type: snmp.snmpinteger value: 5
oid: 1.3.6.1.2.1.17.1.4.1.2.65 type: snmp.snmpinteger value: 11
oid: 1.3.6.1.2.1.17.1.4.1.2.66 type: snmp.snmpinteger value: 12
oid: 1.3.6.1.2.1.17.1.4.1.2.67 type: snmp.snmpinteger value: 13
從上面可以看出,橋接埠對應的埠索引ifindex是5。根據這個埠可以很容易得到埠名,埠描述等。
5.根據cdp得到指定埠索引下連的交換機ip。 用
2中和方法,
cdpcacheaddress
加上埠索引可以得到下接的網路裝置。如果沒找到下端網路裝置,那麼下接的可能就已經是所要查的主機,也有可能是不支援
cdp協議的裝置,定位互此終止。如果能夠得到下連裝置的
ip位址,那麼可以根據此
ip重複
3以下的查詢過程,直到找不到下連裝置。這裡還可以從
cdpcachedeviceport
中得到下連裝置連線該裝置的埠。有利於形成完整的鏈結關係
zabbix系列 基於snmp協議的裝置監控
監控印表機 路由器 ups等裝置,無法安裝zabbix agentd,一般都支援snmp協議 基於udp協議 snmp採用udp協議在管理端和agent之間傳輸資訊。snmp採用udp 161埠接收和傳送請求,162埠接收trap,執行snmp的裝置預設都必須採用這些埠。snmp訊息全部通過udp埠...
我家的Cisco網路方面的書籍
這是我家的關於cisco網路方面的書籍,當然還在繼續不斷增加著。還有其他linux,c 的書籍等我以後有時間再整理出來。那些藍色突出顯示的書籍是我認為寫的比較出色或者大家有口皆碑的好書。還有,我沒有列出每本書的作者和出版社,但是您可以依據我寫出的書名去網上書店查詢。我以後會挑出一些好書作一些書評方面...
基於ARM的RealView MDK開發環境
realview mdk可以對各種嵌入式處理器的軟體開發工具。這麼高階,著實很吸引我,ads12還不知道怎麼搞,居然還有這麼高階的,但是還是得了解一下唉。洗這個自動配 置啟動 整合flash燒寫模組,強大的simulation裝置模擬,效能分析等功能,與arm之前的工具包ads等相比,realvie...