Sử dụng SNMP để truy xuất bảng ARP và bảng địa chỉ mac từ một công tắc


33

Tôi muốn nhận các bảng ARP từ một chuyển đổi sang một máy chủ syslog-ng đã được thiết lập trên Ubuntu Server 12.04 LTS. Tôi đã đọc về SNMP và tôi biết rằng máy chủ sẽ hoạt động như một người quản lý và chuyển đổi như một đại lý. Tôi có thông tin chi tiết về nơi chứa MIB và tôi phải sử dụng lệnh

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

Tôi muốn các bảng arp kết quả được chuyển đến một máy chủ của tôi.

Vấn đề của tôi là tôi không biết chính xác nơi để chạy lệnh hoặc lưu kết quả đầu ra vào một tệp.


Xin chào, việc thêm thông tin vào cơ sở dữ liệu là ngoài chủ đề ... Siêu người dùng là một nơi tốt để hỏi bạn có cần trợ giúp sửa đổi cơ sở dữ liệu không. Nếu bạn không ngại xóa phần câu hỏi đó, chúng tôi có thể mở lại nó.
Mike Pennington

Tôi đã sửa đổi câu hỏi của mình
sosytee

Bạn có ý nghĩa gì khi "đặt các bảng ARP vào máy chủ"?
Mike Pennington

Các bảng Arp sẽ được tạo bởi công tắc, nhưng tôi muốn chúng được xem từ máy chủ
sosytee

Điều gì sẽ xảy ra nếu chúng tôi nói với bạn cách đặt chúng vào một tệp văn bản ... có ổn không?
Mike Pennington

Câu trả lời:


38

Dường như có một chút nhầm lẫn ... bạn đang hỏi về các bảng ARP và bạn đang sử dụng OID .1.3.6.1.2.1.17.4.3.1.2; tuy nhiên, OID đó thực sự dành cho bảng địa chỉ mac trong chuyển đổi.

Tôi giả sử bạn biết cách đăng nhập vào máy chủ Ubuntu của mình và đã NET-SNMPđược cài đặt ... vui lòng cho tôi biết nếu bạn cần con trỏ để thực hiện việc này (xem câu hỏi này để biết gợi ý về việc tải MIB trong linux ). Một số ví dụ của tôi cho rằng bạn đã tải MIB trên máy chủ của mình ... bạn chỉ cần xóa -m <mib-name>tùy chọn trong các lệnh nếu bạn không tải MIB cục bộ.

Tôi xin lỗi trước về độ dài của câu trả lời này ... Tôi muốn bỏ phiếu với SNMP không phức tạp ...

Bỏ phiếu trong bảng địa chỉ mac:

Nếu bạn thực sự muốn bảng địa chỉ mac từ công tắc, thì hãy nhớ rằng bạn phải thay đổi chuỗi cộng đồng mà bạn thăm dò ý kiến ​​... nó phải ở dạng <commity@vlan>... mỗi vlan bạn thăm dò cần một cộng đồng khác nhau.

Trong ví dụ của tôi dưới đây, công tắc tại 172.16.1.210 được định cấu hình snmp-server community public rovà tôi đang bỏ phiếu bảng địa chỉ mac trong vlan-10 với dot1dTpFdbPort từ BRIDGE-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 ~]$

Trong đầu ra ở trên, 52 là giá trị của dot1dBasePort, là số mà MIB sử dụng để lập chỉ mục cho bảng dot1dTp. Để dịch nó thành một tên giao diện bình thường, bạn phải ánh xạ nó sang ifName ... BRIDGE-MIB thực hiện điều đó với dot1dBasePort IfIndex ...

[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 ~]$

Do đó, chúng tôi biết rằng tất cả các địa chỉ mac trên công tắc này đã được học thông qua FastEthernet 0/48 trong vlan-10.

Bỏ phiếu cho các Vlans đang hoạt động:

Nếu bạn không chắc chắn mà VLAN để thăm dò trên một switch, bạn có thể nhận được rằng thông tin từ .1.3.6.1.4.1.9.9.46.1.3.1.1.2, đó là vtpVlanState trong 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 ~]$

Hãy nhớ rằng Vlans 1002-1005 là Vlans nội bộ của Cisco mà bạn không nên thăm dò ý kiến.

Bỏ phiếu cho bảng ARP

Nếu bạn thực sự muốn bảng ARP từ công tắc, thì bạn cần bỏ phiếu tạiPhysAddress ...

[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 ~]$

Lưu lệnh đầu ra vào một tập tin

Chúng tôi đang đào sâu vào các khu vực nằm ngoài phạm vi bình thường của trang web này, nhưng để lưu bảng ARP ở trên vào một tệp /tmp/S01_ARP.txt, bạn sẽ thêm > /tmp/S01_ARP.txtvào cuối phần snmpbulkwalktrên ...

[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 ~]$

Như bạn thấy ở trên, bạn có thể sử dụng cattrong linux để lấy tất cả đầu ra từ một tệp văn bản. LƯU Ý: Một số bản phân phối linux (ahem ... CentOS) dọn sạch /tmpthư mục hàng tháng. Bạn nên sử dụng HOMEthư mục của bạn trong linux để lưu trữ tệp. Tôi không nhớ việc dọn dẹp Ubuntu /tmp, nhưng để an toàn, tôi sẽ tránh lưu trữ mọi thứ ở đó.

Ghi chú linh tinh về SNMP ...

Nếu bạn chưa tải tất cả MIB của Cisco trên máy Ubuntu, thì bạn nên tránh sử dụng các -m <mib-name>cờ trong các snmpbulkwalklệnh. Tải MIB cho phép bạn thăm dò ý kiến ​​bằng tên OID, thay vì số chấm dài ...


Thông tin tham khảo:

Tôi bao gồm một số lệnh hiển thị từ công tắc, trong trường hợp bạn có câu hỏi về CLI cho các lệnh SNMP ở trên ...

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#

câu trả lời rất hữu ích, tôi muốn biết ý nghĩa của -OXsq ngay trước địa chỉ ip
sosytee

1
kiểm tra man snmpcmdxem bạn có đang sử dụng máy chủ Linux không và đã cài đặt Net-SNMP chưa. Nếu không, bạn có thể tìm thấy thông tin này tại đây: net-snmp.sourceforge.net/docs/man/snmpcmd.html
John Jensen

@MikePennington: Bạn có thể nhận xét về ipNetToMediaPhysAddress và ifPhysAddress của OID không? Cụ thể sự khác biệt về ngữ nghĩa giữa các bảng này và atPhysAddress?
mormegil

Ngoài những điều trên, bạn có thể cài đặt netDB trên máy chủ Ubuntu đó và hiển thị nhiều hơn trên các bảng ARP của một số thiết bị. netdbtracking.sourceforge.net
Kunal
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.