Linux
如何辨識介面連接的交換機埠?
有沒有辦法在沒有分配 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
重新打開界面。