linux + which 工具可以帮助识别 Linux 机器上的哪个 eth 连接到 cisco 交换机上的哪个端口

linux + which 工具可以帮助识别 Linux 机器上的哪个 eth 连接到 cisco 交换机上的哪个端口

我的系统包含 50 多台不同的 Linux 机器(BLADE 机器),其 IP 范围如下

      165.23.1.21-165.23.1.64 ( each Linux machine have 4 eth - eth1,2,3,4)

该系统通过 LANS 电缆连接到 4 个 Cisco 交换机

我的目标是验证 Linux 机器中的每个 eth 是否连接到交换机的哪个端口

例如

./我的工具

   machine1 results


   linux_machine1_eth0  connected to switch_1_port_15
   linux_machine1_eth1  connected to switch_2_port_15
   linux_machine1_eth2  connected to switch_1_port_16
   linux_machine1_eth3  connected to switch_2_port_16


   machine2 results


   linux_machine2_eth0  connected to switch_1_port_22
   linux_machine2_eth1  connected to switch_4_port_7
   linux_machine2_eth2  connected to switch_1_port_23
   linux_machine2_eth3  connected to switch_4_port_8

   .
   .

我的问题是哪种工具可以帮助识别 Linux 机器中的哪个 eth 连接到交换机的哪个端口?

       remark -     1. the tool can be also script that runs on the Linux machines
                    2. we have access to the switch by telnet 

答案1

我认为你必须去每个开关并发出命令

show mac-address-table

并记下提供的信息。然后转到每台 Linux 机器并执行类似以下操作

echo $(hostname); ifconfig eth0 | grep HWaddr | awk '{print " "$1,$5}'

现在您有 2 个列表需要匹配。

答案2

如果持续数据保护在交换机上启用后,你可以cdpr试试吧。这是一个简单的程序,您可以在服务器上运行它并收听 CDP 公告。

petrus@seth:~$ sudo cdpr
cdpr - Cisco Discovery Protocol Reporter
Version 2.2.1
Copyright (c) 2002-2006 - MonkeyMental.com

1. eth0 (No description available)
2. wlan0 (No description available)
3. virbr0 (No description available)
<snip>
12. lo (No description available)
Enter the interface number (1-12):1
Using Device: eth0
Waiting for CDP advertisement:
(default config is to transmit CDP packets every 60 seconds)

Device ID
  value:  switch01           
Addresses
  value:  192.168.12.15 
Port ID
  value:  0/15

cdpr还可以使用 GET 请求将详细信息上传到 Web 服务器。

答案3

您可以使用Net::Telnet::Cisco和编写一个 perl 脚本Net::OpenSSH来自动执行此操作。如果我今天有时间,我会在这里提供一个。

更新

正如提问者在评论中问到的:如果您想通过 SNMP 获取信息,思科库中有一篇非常出色的文档:http://www.cisco.com/en/US/tech/tk648/tk362/technologies_tech_note09186a00801c9199.shtml

简而言之:您需要合并五个snmpwalks 的输出(crumpy您的 switchname 在哪里)

snmpwalk -c public crumpy .1.3.6.1.4.1.9.9.46.1.3.1.1.2 # get vlan states
snmpwalk -c public@1 crumpy .1.3.6.1.2.1.17.4.3.1.1     # get mac table
snmpwalk -c public@1 crumpy .1.3.6.1.2.1.17.4.3.1.2     # get the switchport numbers for the vlans (here Vlan1)
snmpwalk -c public@1 crumpy .1.3.6.1.2.1.17.1.4.1.2     # switchport to if number
snmpwalk -c public@1 crumpy .1.3.6.1.2.1.31.1.1.1.1     # get the interface names

来自文档:

6. Link a MAC address to the port on which the address was learned.

* From Step 1, the MAC address is:
      17.4.3.1.1.0.0.12.7.172.8 = Hex: 00 00 0C 07 AC 08

*  From Step 2, the bridge port tells that the MAC address belongs to bridge port number 13:
      17.4.3.1.2.0.0.12.7.172.8 = 13 

*  From Step 3, the bridge port number 13 has ifIndex number 2:
      17.1.4.1.2.13 = 2

*  From Step 4, the ifIndex 2 corresponds to port Fast Ethernet 0/1:
      ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.2 = Fa0/1

答案4

开放网络管理系统通过其Linkd 功能,通过 SNMP、CDP 和路由信息自动发现节点之间的链接。它还允许您创建拓扑图

交换机的链接页面如下所示: 在此处输入图片描述

而节点的链接页面如下所示: 在此处输入图片描述

除此之外,您只能使用show mac address交换机上某个版本的例程。

相关内容