Tengo un problema de red en el que las tramas con un MAC de origen que coincide con uno de los MAC de origen de mi host están llegando al host: un aparente MAC o bucle duplicado u otro problema L2.
Creo que esta es la situación porque las tablas MAC (tablas CAM) de mi puente de Linux registran un MAC local (para una máquina virtual alojada) como en el puerto ascendente, y los registros del kernel muestran errores:
bridgename: received packet on bond0.2222 with own address as source address
Me gustaría obtener más detalles sobre estos paquetes / tramas "deshonestas", pero no puedo entender cómo concentrarnos en ellas. Con tcpdump puede filtrar en una fuente MAC particular ('ether src MAC'), pero esto se basa en los bytes en la trama, no si la trama fue "enviada" versus "recibida". Por lo general, suponemos que un marco con nuestra fuente MAC significa que lo estamos enviando, pero si se recibiera un marco duplicado, el contenido se vería exactamente igual para el filtro.
¿Cómo se puede observar si se recibió una trama versus se transmitió en una captura de paquetes?
tcpdump -i <interface> inbound
(o "saliente")?tcpdump -L
para ver interfaces compatibles,ngrep -d dev
Respuestas:
Use la
--direction
opción para tcpdump:fuente
tcpdump
página del manual en Ubuntu 14.04, y existe una opción con la misma descripción exacta, pero se llama en-P
lugar de-Q
(y no se menciona la forma larga).Con iptables, tiene diferentes 'cadenas' para paquetes entrantes y salientes. Desde la página del comando man iptables (8):
iptables puede hacer algunos registros (-l), lo que puede mostrarle lo que necesita. Presumiblemente también puede reenviar copias de paquetes a una interfaz para iniciar sesión con otras herramientas, pero no he tenido motivos para hacerlo.
fuente