ARP ve mac adres tablolarını bir anahtardan almak için SNMP'yi kullanma


33

Bir anahtardan ARP tablolarını Ubuntu Server 12.04 LTS'de kurulmuş olan bir sistem günlüğü sunucusuna almak istiyorum. SNMP'yi okudum ve sunucunun bir yönetici ve anahtarın bir aracı olarak hareket edeceğini biliyorum. MIB'nin bulunduğu yerle ilgili ayrıntılar var ve bu komutu kullanmalıyım.

snmpwalk -v2c -c <community> <SwitchIP> .1.3.6.1.2.1.17.4.3.1.2

Elde edilen ark tablolarının bir sunucuma yönlendirilmesini istiyorum.

Benim sorunum komutu tam olarak nerede çalıştıracağımı bilmiyorum veya çıktıyı bir dosyaya kaydetmem.


Merhaba, veritabanına bilgi eklemek konu dışı ... Süper Kullanıcı , veritabanını değiştirmek için yardıma ihtiyacınız olup olmadığını sormak için iyi bir yerdir. Sorunun bu kısmını silmek sorun olmazsa, yeniden açabiliriz.
Mike Pennington,


"ARP tablolarını sunucuya yerleştir" derken ne demek istiyorsunuz?
Mike Pennington,

Arp tabloları anahtar tarafından üretilecektir, ancak sunucudan görüntülenmelerini istiyorum
sosytee,

Ya onları bir metin dosyasına nasıl koyacağımızı söyleseydik ... sorun değil mi?
Mike Pennington

Yanıtlar:


38

Biraz kafa karışıklığı var gibi görünüyor ... ARP masaları hakkında soruyorsunuz ve OID kullanıyorsunuz .1.3.6.1.2.1.17.4.3.1.2; ancak, bu OID aslında anahtardaki mac-adres tablosu içindir.

Ubuntu sunucunuza nasıl giriş yapacağınızı bildiğinizi ve bunun NET-SNMPyüklü olduğunu ... sanırım, bunu yapmak için işaretçilere ihtiyacınız varsa lütfen bana bildirin ( linux'a MIB yükleme hakkında ipuçları için bu soruya bakın ). Örneklerimden bazıları, sunucunuzda MIB'lerin yüklü olduğunu varsayıyor ... -m <mib-name>MIB'lerin yerel olarak yüklenmemiş olması durumunda komutlardaki seçeneği kaldırmanız gerekir .

Bu cevabın uzunluğu için şimdiden özür dilerim ... SNMP ile oy kullanmak o kadar karmaşık olmasaydı ...

Mac adresi tablosunu yoklama:

Mac adres tablosunu gerçekten anahtardan görmek istiyorsanız, anket yaptığınız topluluk dizesini değiştirmek zorunda olduğunuzu unutmayın ... anket biçiminde olmalıdır <commity@vlan>.

Aşağıda benim örnekte, 172.16.1.210 de anahtarı ile yapılandırılmış snmp-server community public rove ben yoklama vlan-10 ile de mac adresi masa olduğum dot1dTpFdbPort dan KÖPRÜ-MIB .

[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public@10 -OXsq 172.16.1.210 \
  .1.3.6.1.2.1.17.4.3.1.2
dot1dTpFdbPort[0:6:53:fe:39:e0] 52
dot1dTpFdbPort[0:1d:a1:cd:53:46] 52
dot1dTpFdbPort[0:30:1b:bc:a7:d7] 52
dot1dTpFdbPort[0:80:c8:0:0:0] 52
dot1dTpFdbPort[38:ea:a7:6d:2e:8e] 52
dot1dTpFdbPort[80:ee:73:2f:b:40] 52
[mpenning@tsunami ~]$

Yukarıdaki çıktıda, 52, dot1dBasePortMIB'nin dot1dTp tablosunu dizine almak için kullandığı sayıdır. Bunu normal bir arayüz adına çevirmek için, bunu bir ifName ile eşleştirmelisiniz ... BRIDGE-MIB , dot1dBasePortIfIndex ...

[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public@10 -m BRIDGE-MIB 172.16.1.210 \
  .1.3.6.1.2.1.17.1.4.1.2
BRIDGE-MIB::dot1dBasePortIfIndex.52 = INTEGER: 10048
[mpenning@tsunami ~]$
[mpenning@tsunami ~]$ snmpget -v 2c -c public 172.16.1.210 ifName.10048
IF-MIB::ifName.10048 = STRING: Fa0/48
[mpenning@tsunami ~]$

Böylece, bu anahtardaki tüm mac adreslerinin vlan-10'daki FastEthernet 0/48 aracılığıyla öğrenildiğini biliyoruz.

Aktif Vlans'leri yoklama:

Emin bir anahtar üzerindeki ankete VLAN'lara hangi değilseniz, bunu kimden bilgi alabilirim .1.3.6.1.4.1.9.9.46.1.3.1.1.2olduğunu vtpVlanState içinde CISCO-VTP-MIB ...

[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public -OXsq -m CISCO-VTP-MIB 172.16.1.210 \
   .1.3.6.1.4.1.9.9.46.1.3.1.1.2
vtpVlanState[1][1] operational
vtpVlanState[1][10] operational
vtpVlanState[1][1002] operational
vtpVlanState[1][1003] operational
vtpVlanState[1][1004] operational
vtpVlanState[1][1005] operational
[mpenning@tsunami ~]$

Vlans 1002-1005'in anket yapmamanız gereken dahili Cisco Vlans olduğunu unutmayın.

ARP tablosunu yoklama

ARP tablosunu anahtardan gerçekten istiyorsan, o zamanPhysAddress ...

[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public -OXsq  172.16.1.210 \
  .1.3.6.1.2.1.3.1.1.2
atPhysAddress[10][1.172.16.1.5] "80 EE 73 2F 0B 40 "
atPhysAddress[10][1.172.16.1.25] "38 EA A7 6D 2E 8E "
atPhysAddress[10][1.172.16.1.32] "BC 51 FE 50 16 F8 "
atPhysAddress[10][1.172.16.1.200] "00 06 53 FE 39 E0 "
atPhysAddress[10][1.172.16.1.210] "00 18 BA 51 5B 41 "
[mpenning@tsunami ~]$

Komut çıkışını bir dosyaya kaydetme

Bu sitenin normal kapsamı dışında kalan alanlara giriyoruz, ancak yukarıdaki ARP tablosunu bir dosyaya kaydetmek için yukarıdakilerin sonuna /tmp/S01_ARP.txtekleyeceksiniz ...> /tmp/S01_ARP.txtsnmpbulkwalk

[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public -OXsq  172.16.1.210 \
      .1.3.6.1.2.1.3.1.1.2 > /tmp/S01_ARP.txt
[mpenning@tsunami ~]$ cat /tmp/S01_ARP.txt
atPhysAddress[10][1.172.16.1.5] "80 EE 73 2F 0B 40 "
atPhysAddress[10][1.172.16.1.25] "38 EA A7 6D 2E 8E "
atPhysAddress[10][1.172.16.1.32] "BC 51 FE 50 16 F8 "
atPhysAddress[10][1.172.16.1.200] "00 06 53 FE 39 E0 "
atPhysAddress[10][1.172.16.1.210] "00 18 BA 51 5B 41 "
[mpenning@tsunami ~]$

Yukarıda gördüğünüz gibi, cattüm çıktıları bir metin dosyasından almak için linux'ta kullanabilirsiniz . NOT: Bazı linux dağıtımları (ahem ... CentOS) /tmpdizini aylık olarak temizler . HOMEDosyayı saklamak için dizini linux'ta kullanmalısınız . Ubuntu'nun temizlediğini hatırlamıyorum /tmp, ama güvenli olmak için orada saklamaktan kaçınırdım.

SNMP ile ilgili çeşitli notlar

Tüm Cisco'nun MIB'lerini Ubuntu makinenize yüklemediyseniz -m <mib-name>, snmpbulkwalkkomutlardaki bayrakları kullanmaktan kaçınmalısınız . MIB'leri yüklemek, uzun noktalı sayılar yerine OID adlarıyla anket yapmanızı sağlar ...


Referans bilgisi:

Yukarıdaki SNMP komutları için CLI hakkında sorularınız varsa, anahtara bazı gösteri komutları ekliyorum ...

S01#sh ver | i IOS
Cisco IOS Software, C3560 Software (C3560-IPBASEK9-M), Version 12.2(37)SE, RELEASE SOFTWARE (fc2)
S01#
S01#sh mac address-table dynamic
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
  10    0006.53fe.39e0    DYNAMIC     Fa0/48
  10    001d.a1cd.5346    DYNAMIC     Fa0/48
  10    0030.1bbc.a7d7    DYNAMIC     Fa0/48
  10    0080.c800.0000    DYNAMIC     Fa0/48
  10    38ea.a76d.2e8e    DYNAMIC     Fa0/48
  10    80ee.732f.0b40    DYNAMIC     Fa0/48
Total Mac Addresses for this criterion: 6
S01#
S01#sh arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  172.16.1.210            -   0018.ba51.5b41  ARPA   Vlan10
Internet  172.16.1.200            0   0006.53fe.39e0  ARPA   Vlan10
Internet  172.16.1.32             0   bc51.fe50.16f8  ARPA   Vlan10
Internet  172.16.1.25             0   38ea.a76d.2e8e  ARPA   Vlan10
Internet  172.16.1.5              1   80ee.732f.0b40  ARPA   Vlan10
S01#

Cevap yararlı oldu, sadece IP adresinden hemen önce -OXsq'un anlamını bilmek istiyorum
sosytee

1
man snmpcmdBir Linux sunucusunda olup olmadığınızı ve Net-SNMP'nin kurulu olup olmadığını kontrol edin . Aksi takdirde bu bilgiyi burada bulabilirsiniz: net-snmp.sourceforge.net/docs/man/snmpcmd.html
John Jensen

@MikePennington: ipNetToMediaPhysAddress ve ifPhysAddress OID'leri hakkında yorum yapabilir misiniz? Özellikle bu tablolar ve atPhysAddress arasındaki anlamsal fark?
mormegil 21:14

Yukarıdakilere ek olarak, bu Ubuntu sunucusuna netDB kurabilir ve çeşitli aygıtların ARP tablolarında daha fazla görünürlük elde edebilirsiniz. netdbtracking.sourceforge.net
Kunal
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.