Eu tenho um software simulador rodando em linux ( linux_host) no qual outro linux ( linux_sim ) está rodando. O simulador usa a libpcap para acessar a ethernet para fornecer simulação de rede em linux_sim . A rede é ativada em linux_host e linux_sim em OK. Eu posso alcançar qualquer host na LAN de linux_sim (ele usa dhcp por exemplo para configurar o IP).
O problema é que os pacotes enviados de linux_sim não alcançam linux_host , no entanto eles viajam na direção oposta OK. O último eu posso provar com wireshark rodando em linux_host : se eu pingar linux_sim em linux_host - eu vejo solicitações e respostas ICMP (de linux_sim ) que não alcançam linux_host , se eu executar o comando ping e vice-versa - só vejo solicitações ICMP (do linux_sim ).
A seguir, descrevemos aproximadamente a arquitetura que tenho:
LAN
|
linux_host-----[eth0]
|
libpcap
|
simulator
|
linux_sim
PS
linux_host e linux_sim têm endereços MAC, IP e LAN diferentes, como hosts Linux independentes.
Eu tentei em três máquinas linux diferentes com o mesmo resultado (com Debian, CentOS e Gentoo).
Então, o que você pode recomendar para verificar / ajustar / configurar nesta situação? Como suponho, uma configuração incomum de roteamento / filtragem é necessária para o linux_host neste caso.
UPDATE
O tráfego de broadcast alcança de linux_sim para linux_host desde que eu veja que o endereço IP é resolvido com ARP (solicitações de broadcasts são respondidas) OK quando o ping é iniciado.