Duplicação massiva de pacotes

4

Versão resumida: Nós tivemos um problema com um determinado servidor recebendo enormes duplicatas de pacotes. Depois de muita descoberta de falhas, descobrimos que o problema era causado por um switch que enviava meu pacote a cada porta (ou seja, agindo como um hub) e 3 roteadores estavam refletindo o pacote de volta. Quando os roteadores refletiam o pacote de volta, o switch enviava novamente o pacote para todas as outras portas e eles voltavam a ser refletidos pelos outros roteadores. Isso duraria até que o TTL diminuísse para 0. O que não entendo é por que os roteadores estavam enviando o pacote de volta. O roteador não deveria abandonar o pacote já que o endereço MAC não corresponde ao seu endereço MAC?

Versão Longa: Digamos que existem 3 roteadores (A, B e C) conectados a um switch e minha VM. Um pacote udp chegaria do roteador A destinado à minha VM. Neste estágio, o TTL é 60. O switch não tem o endereço MAC da VM, então ele inunda o pacote em todas as outras portas. Os roteadores B e C recebem o pacote e vêem o endereço IP na mesma porta, então diminua o TTL e envie o pacote de volta pela mesma porta. Agora temos 2 pacotes com TTL de 59. O switch novamente inunda os 2 pacotes e é refletido dos outros 2 roteadores, então acabamos com 4 pacotes com TTL de 58. Nós então obtemos 8 a 57, 16 a 56 etc até que os pacotes começam a cair. Todo o tempo minha VM está recebendo uma cópia de todos esses pacotes. Como a VM só a recebe, ela nunca consegue entrar na tabela MAC do switch. O ARP ajuda aqui, mas o tempo limite foi maior que o tempo limite dos switches na tabela mac. Reduzir isso resolveu o problema, mas a questão é saber por que os roteadores estavam refletindo o pacote de volta. Pelo que entendi, isso não é um comportamento padrão.

EDIT: Detalhes da captura do wireshark (mostrando os últimos 2 dígitos do mac apenas):

MAC    TTL
95     60

99     59
EC     59

95     58
EC     58
95     58
99     58

then 8 packets at 57 etc

Veja como parece que ele vem do endereço MAC terminando com 95, depois os outros 2 roteadores, e depois ambos os pacotes saltam dos outros 2 novamente para fazer 4 pacotes?

    
por MikeKulls 26.08.2014 / 03:44

1 resposta

4

O que você está descrevendo é o que acontece quando a tabela CAM do switch está cheia, onde ela não consegue mais aprender o endereço MAC e encaminha os pacotes para todas as portas. Pode ser difícil descobrir se esse é o problema com um switch não gerenciado, mas com um switch gerenciado você deve ser capaz de exibir a tabela CAM.

O que também ajudaria nessa questão é um diagrama da rede.

EDITAR:

A partir do diagrama adicionado, você pode ver que você tem dois problemas. O primeiro ainda permanece onde o switch vai encaminhar o pacote para todas as portas, se ele não souber para onde ir. Verifique os logs para ver por que seu endereço MAC está sendo removido da tabela.

O segundo problema é que os roteadores recebem o pacote e o enviam de volta ao switch, que, por sua vez, o envia para todas as portas (exceto as suas próprias). Existe uma porta específica configurada com uma rota padrão, 0.0.0.0?

    
por 26.08.2014 / 11:39