Ich habe ein Netzwerkproblem, bei dem Frames mit einem Quell-MAC, der mit einem der Quell-MACs meines Hosts übereinstimmt, am Host ankommen - ein offensichtlicher doppelter MAC, eine Schleife oder ein anderes L2-Problem.
Ich glaube, dies ist die Situation, weil die MAC-Tabellen (CAM-Tabellen) meiner Linux-Bridge einen lokalen MAC (für eine gehostete virtuelle Maschine) als am Upstream-Port befindlich registrieren und die Kernel-Protokolle Fehler anzeigen:
bridgename: received packet on bond0.2222 with own address as source address
Ich würde gerne mehr Details über diese "Schurken" -Pakete / Frames erfahren, aber ich kann nicht herausfinden, wie ich sie herausfinden kann. Mit tcpdump können Sie nach einem bestimmten Quell-MAC ('ether src MAC') filtern. Dies basiert jedoch auf den Bytes im Frame - nicht darauf, ob der Frame "gesendet" oder "empfangen" wurde. Wir gehen normalerweise davon aus, dass ein Frame mit unserem Quell-MAC bedeutet, dass wir ihn senden. Wenn jedoch ein doppelter Frame empfangen würde, würde der Inhalt für den Filter genauso aussehen.
Wie kann man beobachten, ob bei einer Paketerfassung ein Frame empfangen oder gesendet wurde?
tcpdump -L
für siehe unterstützte Schnittstellen,
ngrep -d dev
tcpdump -i <interface> inbound
(oder "ausgehend")?