Eu tenho um sistema que consiste em um PC de controle, duas camadas de switches e 50 dispositivos personalizados. O PC transmite continuamente um total de 5,8MB / seg (6000 ethernet frames / seg) para os dispositivos.
Descobri que cada um dos pontos de extremidade do dispositivo está vendo todo esse tráfego, não apenas o tráfego destinado a esse dispositivo. Isso está causando o firmware nos dispositivos para sufocar um pouco.
Minha teoria sobre o porquê isso está acontecendo é: O PC é configurado com uma tabela ARP estática. As únicas vezes que os dispositivos enviam dados são em resposta a solicitações de eco ou ARP de ICMP. Como não fazemos o ping dos dispositivos durante a operação normal e como a tabela ARP do PC é estática (e, portanto, nenhuma solicitação ARP é feita), os dispositivos nunca enviam dados e os switches nunca aprendem seus endereços MAC.
Pergunta 1 : esta análise está correta?
Eu tenho que resolver esse problema. Existem quatro opções:
- Configure manualmente as tabelas de cames em todos os switches.
- Atualize o firmware do dispositivo para enviar periodicamente algo, atualizando assim as tabelas de câmeras dos comutadores.
- Faça com que o PC de controle faça um ping periodicamente nos dispositivos, fazendo com que os dispositivos respondam, levando à troca de atualizações.
- Dos comentários: ative o ARP dinâmico no PC de controle, configure o ttl para ser menor que o das entradas do comutador.
Então, pergunta 2 : a opção 1 é a maneira correta de fazer isso?
Agora, o problema com a opção 1 é que os switches em vigor não são gerenciados e não posso configurá-los. Para usar a opção 1, precisamos substituir os switches por gerenciados. Eu acredito que isso vale a pena a longo prazo, mas agora não é viável por uma série de razões.
Eu não quero usar a opção 3 ou 4 porque quero que a solução para esse problema seja transparente para o PC de controle e por várias outras razões (Em particular, a opção 4 tem problemas de desempenho sutis, mas perceptíveis neste aplicativo, descritos nos comentários abaixo).
Portanto, estou buscando a opção 2 agora. Eu escolhi modificar o firmware em cada dispositivo para enviar solicitações ARP gratuitas com um destino MAC de broadcast aproximadamente a cada 30 segundos. Eu escolhi o ARP porque, conceitualmente, parece ser o mais apropriado, embora eu também pudesse enviar, e. quadros de ethernet em branco. Eu escolhi o destino de broadcast na esperança de que o pacote passe pelos switches L2 e alcance os switches L1 e faça com que eles atualizem suas tabelas também.
Pergunta 3: Embora essa não seja a opção mais correta, funcionará? O envio periódico de solicitações ARP gratuitas de todos os 50 dispositivos causará efeitos colaterais inesperados? Eu não sei qual é o ttl das entradas da tabela de cames do switch, eu escolhi arbitrariamente 30 segundos.
Pergunta 4: Existe outra opção que não estou considerando?