Por que os pacotes enviados pela libpcap são filtrados para o host local?

2

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.

    
por pmod 17.08.2011 / 22:30

2 respostas

1

Eu acho que um ótimo teste seria colocar linux_host e linux_sim em diferentes sub-redes. Coloque um roteador (outra caixa linux talvez) nesta VLAN e dê a ele duas subinterfaces com IPs em ambas as sub-redes e que ele possa rotear entre as caixas. Eu acho que você está se deparando com algum tipo de problema com a detecção de caminho reverso. Você já desligou isso?

link

    
por 18.08.2011 / 10:18
0

Você não tem muita informação sobre como sua rede está configurada. Se o seu simulador estiver acessando o mundo externo por meio de uma interface de ponte, você deverá considerar o que o hardware da NIC (e seu driver) está fazendo. Por exemplo, na maioria das NICs mais recentes, é necessário desativar o GRO para que o TCP funcione com VMs em ponte. Também existem problemas com o descarregamento de hardware da NIC e o IO-SRV. Consulte a documentação do seu driver para obter notas sobre a ponte.

    
por 21.08.2011 / 07:43