如何识别接口所连接的交换机端口?

如何识别接口所连接的交换机端口?

有没有办法在没有分配 IP 地址的以太网接口上发送一些(非广播)数据包?这样我就可以看到网络交换机上哪个灯在闪烁?

问题是我有一台具有三个网络接口的服务器。我知道它们连接到哪三个交换机端口,但不知道服务器上每个物理插孔对应哪个接口名称。如果它们都有地址,我就可以使用 ping,但我希望在配置它们之前弄清楚哪个是哪个。服务器的后面也很难到达。我必须移动架子。否则,我只能使用ethtool -p.

编辑:这是在 Linux 服务器上。具体来说,Ubuntu,尽管我认为这不是特定于发行版的。

答案1

我想说解决这个问题的最好方法实际上是交换机本身。

假设它是思科交换机:

# starting on your linux host
ip link show # note the mac addresses

ssh ${user}@${switch} # or however you normally connect to the switch
show mac address-table address ${mac-address} # note the mac address is in a weird format ####.####.####

这将显示哪个端口已收到来自相应 mac 地址的流量。您可能需要使接口发送一些流量才能更新 MAC 地址表(甚至 DHCP 尝试)就足够了。

您还可以使用以下方法切换开关上的链接灯:

ip link set ${interface} down

要关闭接口,应关闭链路灯。

然后:

ip link set ${interface} up

重新打开接口。

答案2

您可以使用lldpctl

$ apt install lldpd
$ service start lldpd
$ # wait few seconds
$ lldpctl
-------------------------------------------------------------------------------
LLDP neighbors:
-------------------------------------------------------------------------------
Interface:    eno1, via: LLDP, RID: 2, Time: 0 day, 00:01:34
  Chassis:
    ChassisID:    mac xx:xx:xx:xx:xx:xx
    SysName:      xxx.net
    SysDescr:     Cisco Nexus Operating System (NX-OS) Software 7.0(3)I7(5a)
                  TAC support: http://www.cisco.com/tac
                  Copyright (c) 2002-2018, Cisco Systems, Inc. All rights reserved.
    Capability:   Bridge, on
    Capability:   Router, on
  Port:
    PortID:       ifname Ethernet1/22    <- here is the switch port number
    PortDescr:    serv01
    TTL:          120
  VLAN:         202, pvid: yes
  Unknown TLVs:
    TLV:          OUI: 00,01,42, SubType: 1, Len: 1 01

答案3

您可以使用arpingiputils-arping在 Ubuntu 中从包中):

arping -I enp0s25 10.10.10.2

将在接口 上使用 ARP 对 10.10.10.2 执行 ping 操作enp0s25,即使该接口还没有 IP 地址。如果您使用与连接到交换机上另一个端口的计算机相对应的 IP 地址,则可以使用它来识别每个接口连接到哪个端口:arping收到回复后将立即切换到单播 ARP。

相关内容