2012-01-31 207 views
1

我正在研究腳本來映射連接到交換機和路由器的服務器。我使用http://www.cisco.com/en/US/tech/tk648/tk362/technologies_tech_note09186a00801c9199.shtml列出的算法來映射第二層端口,以提取MAC地址。通過SNMP獲取第3層端口上的MAC?

第3層端口是另一回事。這些端口不在路由器/第3層交換機上的'sh vlan'命令中顯示。理想情況下,我想使用這些端口中的MAC地址,這些端口位於第3層連接的底層,因爲它比IP地址更「永久」 - 它們會顯示在設備的MAC地址表中。但是,這些端口沒有關聯的VLAN,並且通過SNMP檢索MAC是VLAN索引,這使得它非常困難。

我一直對我的頭撞了大約一個星期左右,但沒有任何我嘗試/發現似乎讓我得到非VLAN MAC地址。是否可以通過這種方式映射三層端口,還是需要使用層3(IP地址)映射?

回答

0

如果你通過第2層連接到設備,你可以在第3層地址上使用ping命令來生成arp查找,然後在arp緩存中查找mac ...這可以適用於任何層3端口,甚至邏輯端口,如Portchannels的第3層版本。 這可能是最簡單的方法。

如果你想在SNMP的領域100%:

獲取接口表該設備,走下面的OID。它將返回該設備上所有接口的列表 。這應該捉迷藏SNMP代理的任何設備(甚至是服務器)上運行:

.1.3.6.1.2.1.2.2.1.2 

這會給你一個接口號碼的列表(在OID最後一位數字),以及接口描述。它適用於SVI和物理接口,不確定SVI以外的邏輯類型。

然後爲每個接口,得到它的MAC(其中x是在接口表中的值):

.1.3.6.1.2.1.2.2.1.6.x 

這給你的Mac電腦。 (前導0可以在某些設備上截斷。) 但是,每個設備上至少需要1層3地址才能執行snmpwalk並獲取。

如果你只是希望所有的Mac電腦,然後步行此OID:

.1.3.6.1.2.1.2.2.1.6 

我用這個方法做一個大的網絡上類似的東西。

+0

僅供參考,這不會給你連接的mac地址。這會給你接口的mac地址。 – 2016-11-10 18:44:23