É possível capturar pacotes de um roteador?

2

Estou enfrentando um problema que alguns pacotes enviados para a Internet de dentro da rede estavam faltando. O padrão que estamos usando é como:

  Client A ←→ Switch A ← Router A:NAT ← .. Network .. 
     → Router B:NAT → Switch B ←→ Server B

Eu quero fazer abaixo duas etapas para acompanhar o problema:

  1. Capture os pacotes que são do cliente A no roteador B.
  2. Verifique a tabela de tradução do roteador B.

Ambas as ações são possíveis?

Mais informações:

  1. O cliente A está sendo executado no Windows XP
  2. O servidor B está sendo executado no Linux (exatamente no Fedora).
  3. O roteador B usa uma porta estática e uma tabela de conversão de endereços, o que significa que os pacotes de entrada são usados. para porta específica será encaminhado para o servidor B.
  4. O Roteador A e o Roteador B são produtos TPLink WR340 +.
  5. O Roteador A e o Roteador B possuem NAT de Cone Completo.
  6. O switch A é o DLink DES-1024R e o switch B é o DLink DES-1016D.

A razão pela qual eu quero executar as duas ações é que encontramos pacotes enviados da interface de rede do ClientA, mas devido a uma razão desconhecida, o kernel TCP da máquina ClientA nunca recebe nenhum pacote ACK do outro nó de extremidade, ele entra na transmissão de dados até o tempo limite. E do lado do servidor, também usando o Tool WireShark encontramos a interface de rede da máquina Server B nunca recebe o pacote enviado do cliente A. Eu acho que os pacotes foram descartados pelo roteador B, então eu me pergunto se é possível capturar pacotes no roteador B.

Na verdade, o problema só aconteceu quando temos dois clientes, digamos, Cliente A e Cliente C. O Cliente A e o Cliente C não se comunicam diretamente, mas se comunicam com o Servidor B.

Ocorreu um problema quando desconectamos o cabo de rede da máquina Cliente A e em outro computador registramos o Cliente A em aproximadamente 30 segundos, o cliente A na nova máquina iniciará a comunicação TCP com o servidor B, os primeiros muitos comandos estão OK, mas depois que o servidor não puder mais receber nenhum comando do Cliente A.

    
por Steve Peng 24.02.2013 / 08:20

3 respostas

2

Server B never received the packet

Se você executar o Wireshark do Servidor B, tudo bem; se não, por favor considere que você precisaria de um switch gerenciado configurando uma porta "mirror / span / monitor" onde você se conecta ao PC do Wireshark.

Eu ficaria com o Wireshark movendo-o para ver os pacotes entre o Roteador B e o Switch B (você pode adicionar um hub no meio para inserir o PC da wireshark?)

se o pacote não chegar ao segmento RouterB-SwitchB, seu encaminhamento de porta no Roteador B (para ignorar seus serviços NAT) pode não estar funcionando corretamente ou o roteador simplesmente não está roteando seu tráfego.

    
por 25.02.2013 / 13:37
0

Acho importante obter mais informações, os switches não fazem NAT (mas os roteadores usam) e roteadores diferentes têm habilidades muito variadas. Eu nunca ouvi o termo "verificando a tabela de tradução" quando se refere a switches ou roteadores, mas eu entendo o que você quer dizer com relação aos roteadores.

Você provavelmente encontrará conhecimento sobre NAT e verificar tabelas de tradução, etc., muito menos valioso do que usar ferramentas de rede simples. A primeira ferramenta que eu usaria é "WinMTR" do cliente A. Deixe essa execução por um pouco (minutos?) Enquanto e veja se e onde ocorre a perda de pacotes. Isso lhe dará uma boa ideia de onde procurar mais. [Ver as latências e picos nas latências também lhe dará algumas dicas se você souber o que observar].

Para que alguém forneça mais ajuda, você pode fornecer mais detalhes sobre por que acredita que os pacotes estão faltando e as características do problema.

    
por 24.02.2013 / 08:59
0

Aqui está um resumo de algumas ideias e talvez outras saibam como fazê-lo em detalhes.

Use um roteador de máquina linux.

Talvez Tomato ou DDWRT possam. Então, se o seu roteador suporta esse firmware / se você comprou um que suporta, você poderia tentar isso.

Você comentou "The reason why I want to perform the two actions is that we found packets were sent out of the network interface of ClientA, but due to unknown reason the TCP kernel of ClientA machine never receives any ACK packet from the other endpoint, thus it enters data transmission until timeout. And from the server side, also using Tool WireShark we found the network interface of Server B machine never receives the packet sent from client A, of course it was not able to send any ACK packet back to ClientA."

Talvez um roteador esteja danificado ou você tenha um cabo defeituoso.

Adoro as ideias divertidas de como ver o que está acontecendo no seu roteador, isso pode ser possível com um roteador mais sofisticado ou com um firmware melhor. Mas se você puder / quiser fazer isso, provavelmente precisará ou precisará de um roteador melhor ou de um substituto para tentar. Não negligencie as técnicas básicas de solução de problemas, lógica de tipo de macaco, como trocar partes!

É apenas uma maneira que tem um problema? como A- > B. Ou B- > A também? Você poderia resolver um pouco lá como trocar os cabos ao redor. trocando as portas que eles estão conectados.

    
por 25.02.2013 / 12:38