Linux

如何辨識介面連接的交換機埠?

  • June 4, 2019

有沒有辦法在沒有分配 IP 地址的乙太網介面上發送一些(非廣播)數據包?從而讓我看到網路交換機上哪個燈閃爍?

問題是我有一個具有三個網路介面的伺服器。我知道它們連接到哪三個交換機埠,但不知道伺服器上每個物理插孔對應的介面名稱。如果它們都有地址,我可以使用 ping,但我希望在配置它們之前弄清楚哪個是哪個。伺服器的後面也很難到達。我不得不移動機架。否則,我只能使用ethtool -p.

編輯:這是在 Linux 伺服器上。Ubuntu,具體來說,雖然我想這不會是特定於發行版的。

您可以使用arping(來自iputils-arping軟體包,在 Ubuntu 中):

arping -I enp0s25 10.10.10.2

將在 interface 上使用 ARP ping 10.10.10.2 enp0s25,即使該介面還沒有 IP 地址。如果您使用與連接到交換機上另一個埠的機器對應的 IP 地址,則可以使用該地址來辨識每個介面連接到哪個埠:arping一旦收到回复,將切換到單播 ARP。

我想說解決這個問題的最好方法實際上是從交換機本身。

假設它是一個思科交換機:

# 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

重新打開界面。

引用自:https://unix.stackexchange.com/questions/443934