Problema de rede - apenas uma máquina não pode acessar a página da Web em outra máquina

1

Estou tentando descobrir por que meu MacBook não consegue acessar a página da Web fornecida pelo meu Raspberry Pi enquanto outros computadores da minha rede local (ou em redes externas) não têm problemas para ver a página da Web. Então eu configurei o tcpdump tanto no Mac quanto no Pi e capturei uma tentativa de ambos os lados.

Minha primeira pergunta é a seguinte: (em duas partes)

A) Se um pacote de saída aparece no tcpdump, isso garante que o pacote foi realmente transmitido? (isto é, pode haver alguma coisa a jusante do ponto de derivação que possa impedir que o pacote seja enviado?)

B) Se um pacote de entrada esperado não aparece no tcpdump, isso garante que o pacote nunca foi recebido? (isto é, pode haver alguma coisa a montante do ponto de derivação que possa descartar um pacote recebido antes que o tcpdump o veja?)

Estas perguntas vêm das minhas observações dos logs do tcpdump:

  1. O Mac envia um pacote curto para o Pi
  2. O Pi recebe esse pacote e envia um pequeno pacote de volta ao Mac
  3. O Mac recebe esse pacote e envia dois pacotes para o Pi; o segundo pacote tem as informações do navegador, etc.
  4. Nenhum desses pacotes é recebido pelo Pi.

Se ambas as minhas suposições A & B acima estão corretas, então isso significa que meu roteador está, por alguma razão, tratando pacotes para o Mac de forma diferente de, por exemplo, pacotes para minha máquina WinXP. (Eu estou supondo que deve estar no meu roteador porque, fora de lá, não há como saber qual máquina na rede interna o pacote pertence e, portanto, não há maneira de tratar diferentes máquinas de forma diferente.)

Então, se todas as minhas suposições estiverem corretas, alguma idéia sobre o que está errado ou o que eu devo analisar agora?

    
por Tom 08.12.2013 / 15:42

1 resposta

0

A) If an outgoing packet shows up in tcpdump, does that guarantee that the packet was actually transmitted? (i.e. can there be anything downstream of the tap point that could prevent the packet from being sent?)

Isso significa que o pacote fluiu para fora da sua interface de rede, mas não muito mais que isso. Para saber se um pacote atingiu seu destino, você precisa executar tcpdump no lado do recebimento.

Um firewall seria o provável culpado (seja de saída ou de entrada).

B) If an expected incoming packet doesn't show up in tcpdump, does that guarantee that the packet was never received? (i.e. can there be anything upstream of the tap point that could discard a received packet before tcpdump sees it?)

Sim, se tcpdump estiver assistindo à interface correta e você não vir nenhum pacote que tenha sido confirmado como enviado de fora, o pacote provavelmente nunca foi enviado.

rota padrão

Se as rotas padrão não forem especificadas corretamente, os pacotes não conseguirão acessar o dispositivo de rede correto do gateway, de modo que possam ser entregues a um dispositivo nessa sub-rede específica.

Gostaria de me certificar de que as rotas predefinidas estão definidas corretamente para o seu Mac.

Exemplo

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.254   0.0.0.0         UG    0      0        0 wlp3s0
192.168.1.0     0.0.0.0         255.255.255.0   U     9      0        0 wlp3s0

NOTA: O acima é do meu sistema Fedora 19, mas o seu Mac deve ter algo semelhante. Verifique se a rota padrão está definida corretamente para sua rede.

firewall

Eu também me certificaria de que não há um firewall atrapalhando. No dispositivo Pi, você deve ser capaz de desligar qualquer serviço relacionado ao iptables.

$ /etc/init.d/iptables stop
    
por 08.12.2013 / 17:15