Der Server verfügt über mehrere Netzwerkkarten, von denen nur eine über ein Kabel verfügt.
Wie kann ich testen, ob ein bestimmter Port angeschlossen ethX
ist oder nicht?
Ich habe viele ähnliche Fragen gefunden , aber sie funktionieren bei mir weder ethtool
noch cat /sys/class/net/eth1/carrier
.
In meinem Fall ist das Kabel tatsächlich angeschlossen eth2
, ethtool
zeigt aber immer nochLink detected: no
Settings for eth2:
Supported ports: [ FIBRE ]
Supported link modes: 10000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: No
Advertised link modes: 10000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: No
Speed: Unknown!
Duplex: Unknown! (255)
Port: Direct Attach Copper
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: no
Es ist kein Kabel angeschlossen eth3
, aber der ethtool
Ausgang sieht fast gleich aus:
diff <(ethtool eth2) <(ethtool eth3)
1c1
< Settings for eth2:
---
> Settings for eth3:
11c11
< Port: Direct Attach Copper
---
> Port: Other
Erst wenn ich die Schnittstelle eth2
aufrufe, dann ethtool
zeigt Link detected: yes
. Danach ethtool
meldet sich der Link als yes
, auch wenn ich die Schnittstelle heruntergefahren habe.
Kurz gesagt, ethtool
scheint nicht beim ersten Mal zu funktionieren, bevor die Schnittstelle überprüft wurde.
Wie kann ich zuverlässig testen, ob an einer bestimmten Schnittstelle ein Kabel angeschlossen ist oder nicht ?
tcpdump
ist mein normaler Ansatz, gegen jedes Nic zu verwenden, um zu sehen, ob Pakete vorbeifliegen.