Eu acho que o problema é por causa da contagem excedida de conexões no conntrack - então novas conexões não podem ser estabelecidas até que o antigo esteja expirado. Provavelmente você pode ver no dmesg algo como:
[1824447.285257] nf_conntrack: table full, dropping packet.
[1824447.522502] nf_conntrack: table full, dropping packet.
Máximo atual de conntrack você pode ver em:
undefine@uml:~$ sudo sysctl net.nf_conntrack_max
net.nf_conntrack_max = 65536
e contagem atual de conntrack em:
undefine@uml:~$ sysctl net.netfilter.nf_conntrack_count
net.netfilter.nf_conntrack_count = 157
Conexões de Currenct que você pode exibir usando conntrack -L (ferramenta do pacote conntrack). É útil olhar lá e verificar que tipo são eles - é possível que alguns não sejam necessários.
Você tem três possibilidades:
- não use conntrack (simplesmente - não use a tabela nat e descarregue o módulo nf_conntrack
- desative conntrack para conexões de saída (na tabela bruta use -j NOTRACK para conexões problemáticas
-
aumenta a contagem de conexões em:
undefine @ uml: ~ $ sudo sysctl net.nf_conntrack_max = 512000 net.nf_conntrack_max = 512000 ou coloque net.nf_conntrack_max = 512000 em /etc/sysctl.conf e invoque sysctl -w para recarregá-lo.