Há muito tempo faço conectividade de condomínios e um problema que comumente quem faz este tipo de serviço tem é o de isolar cada uma das máquinas, de forma que elas não se "enxerguem" nem façam difusão de nomes netbios. Elimino este inconveniente criando tantas sub-redes quanto o necessário, mas isso vai ficar para um artigo que estou preparando.
Esta técnica sempre funcionou muito bem com redes pequenas com até 40 máquinas, mas surgiu um problema quando empreguei a mesma técnica com uma rede de mais de 500 máquinas. Após alguns minutos de operação, o sistema começava a dar a mensagem de erro "Neighbour table overflow" e a rede começava a ficar lenta até parar de vez.
Após muito pesquisar descobri o que ocorria. O kernel, ao ter que manipular uma enorme quantidade de requisições ARP, gerava uma tabela ARP gigantesca e, por padrão, ele não manipula tabelas superiores a 1024 entradas, passando disso ele provocava um transbordamento da tabela ARP que paralizava o sistema.
A solução para o problema foi a seguinte: Alteramos o valor de entradas ARP que o kernel pode suportar para seu limite máximo da seguinte forma:
Pronto, basta inserir as linhas acima em seu rc.local antes que seu firewall seja levantado.
No meu caso eu as inseri no /etc/rc.d/rc.S do Slackware 10.2 antes mesmo da inicialização das interfaces de rede. Está funcionando pefeitamente desde então.
[3] Comentário enviado por fmpfmp em 04/10/2006 - 10:31h
Esta dica na verdade não resolve o problema. Esse erro é causado porque provavelmente a configuração de rede do servidor ou roteador está errada. Comigo bastou alterar a máscara de subrede para o valor correto, de /24 para /26, que resolveu.
[5] Comentário enviado por fernandofat em 10/11/2006 - 08:28h
Apenas para compartilhar com os companheiros...
Tenho um "roteador" (leia-se encaminhamento de pacotes) que roteia 5 redes com mais de 250 hosts por rede, tive a mesma mensagem de erro (Neighbour table overflow) porém sem parada de rede.
Não pretendo aumentar o limite da tabela ARP vou pesquisar alguma outra alternativa, se achar coloco aqui....
[7] Comentário enviado por LFer em 27/07/2007 - 11:50h
Para o fabio:
As duas formas de vizinho estão corretas, só que uma é a forma escrita no inglês britânico e a outra é a forma utilizada pelo inglês americado.
[9] Comentário enviado por alessandro_ufms em 08/09/2007 - 15:33h
Tive esse problema quando baixava arquivos por torrent. O torrent baixava normal, porém depois de um tempo, a internet parava (mas o torrent continuava de boa). Dava ping em um site e ele retornava um erro falando que tava com buffer cheio e tals. Essa dica funciona perfeitamente, porém no Ubuntu não existe o arquivo /etc/rc.d/rc.S. No Ubuntu tem que colocar, essas linhas no final do /etc/sysctl.conf: