UDP O tráfego de fora para o contêiner do docker é interrompido após a reinicialização do contêiner

4

seguinte situação: Eu tenho uma caixa de hardware com o Ubuntu 14.04LTS como host para docker 1.4 Estou executando uma pilha ELK em vários contêineres. Curiosamente, o contêiner logstash está expondo apenas a porta 514 para coletar a entrada do syslog.

em algumas situações, depois de reiniciar o contêiner, o tráfego do syslog não é mais encaminhado para o contêiner.

'iptables -nvL' mostra que não há tráfego correspondente à regra aplicada à cadeia de encaminhamento durante o início do contêiner. O contador de tráfego da cadeia INPUT é consideravelmente maior do que na cadeia FORWARD.

Eu observei esse comportamento em todos os contêineres que estão expondo as portas UDP para o mundo, os contêineres com serviços baseados em TCP estão funcionando conforme o esperado.

reiniciar os contêineres e o serviço docker não tem sucesso.

Estou coletando principalmente tráfego de firewall, portanto, o fluxo de tráfego do syslog é bastante constante. Estou coletando aproximadamente 1,5k de armadilhas Syslog por segundo.

Minha solução aqui é interromper todo o tráfego para o host por cerca de 10 segundos (atualmente fazendo um blackholing no tráfego em um roteador upstream)

Após interromper a exportação do syslog em um único nó de firewall por alguns segundos, o tráfego desse firewall específico é encaminhado para o contêiner conforme o esperado. Mas só desta única.

Eu acho que isso é um problema do iptables. Parece que o iptables está armazenando em cache a infração de encaminhamento por alguns segundos e está ignorando quaisquer novas regras aplicadas, desde que o tráfego esteja presente.

Eu não fiz configuração adicional no iptables aqui. Tudo é feito pela janela de encaixe. Não tenho ufw, conntrackd nem nada instalado.

Algum sugere como resolver esse problema?

Atenciosamente Andreas

    
por gondrom 19.12.2014 / 09:38

1 resposta

1

Parece que isso está relacionado a conntrack. Ele foi sinalizado como um bug do Docker: link Há uma solução alternativa listada lá; Consegui com sucesso que um dos meus hosts voltasse a trabalhar com conntrack -F .

    
por 05.01.2015 / 17:32