Eu tenho um problema de rede em que os quadros com um MAC de origem que corresponde a um dos MACs de origem do meu host estão chegando ao host - um aparente duplicado MAC, loop ou outro problema L2.
Acredito que esta seja a situação, porque as tabelas MAC (tabelas CAM) da minha ponte linux registram um MAC local (para uma máquina virtual hospedada) como estando na porta upstream, e os logs do kernel mostram erros:
bridgename: received packet on bond0.2222 with own address as source address
Gostaria de obter mais detalhes sobre esses pacotes / quadros "não autorizados", mas não consigo descobrir como zerá-los. Com o tcpdump, você pode filtrar um MAC de origem específico ('ether src MAC'), mas isso se baseia nos bytes no quadro - não se o quadro foi "enviado" versus "recebido". Normalmente, assumimos que um quadro com o MAC de origem significa que o estamos enviando, mas se um quadro duplicado for recebido, o conteúdo parecerá exatamente o mesmo para o filtro.
Como observar se um quadro foi recebido ou transmitido em uma captura de pacote?
tcpdump -i <interface> inbound
(ou "de saída") funciona?tcpdump -L
para interfaces see suportado,ngrep -d dev
Respostas:
Use a
--direction
opção para tcpdump:fonte
tcpdump
página de manual no Ubuntu 14.04, e existe uma opção com a mesma descrição exata, mas ela é chamada-P
e não-Q
(e o formulário longo não é mencionado).Com o iptables, você tem 'cadeias' diferentes para pacotes de entrada e saída. Na página do manual iptables (8):
O iptables pode fazer alguns registros (-l), o que pode mostrar o que você precisa. Presumivelmente, ele também pode encaminhar cópias de pacotes para uma interface para fazer logon com outras ferramentas, mas não tive motivos para fazer isso.
fonte