有没有办法在没有分配 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
您可以使用arping
(iputils-arping
在 Ubuntu 中从包中):
arping -I enp0s25 10.10.10.2
将在接口 上使用 ARP 对 10.10.10.2 执行 ping 操作enp0s25
,即使该接口还没有 IP 地址。如果您使用与连接到交换机上另一个端口的计算机相对应的 IP 地址,则可以使用它来识别每个接口连接到哪个端口:arping
收到回复后将立即切换到单播 ARP。