loop RST / ACK com servidor SSL

1

Parece que estamos tendo um problema com grandes inundações RST / ACK (40kpps) falando na porta HTTPS. Não tenho certeza se a parte HTTPS está relacionada. O fluxo é um pouco como segue:

  • O cliente solicita algo do nosso servidor da Web (nginx, Linux 3.16, HTTPS).
  • A conexão é mantida viva, mas fechada pelo nginx depois de um tempo. Nginx IIRC faz isso com um RST.
  • Depois de um tempo, o cliente quer fechar a conexão e envia um FIN.
  • Nosso servidor responde com o RST porque a conexão não existe.
  • O cliente responde com o desafio ACK, de acordo com RFC 5961 .
  • O servidor responde com o RST.
  • ... repita os dois últimos passos, levando a uma inundação ...

Acho que tem a ver com dispositivos Sonicwall. Para pelo menos um cliente, verifiquei se um dispositivo Sonicwall está do outro lado. Sonicwall culpa o outro lado .

Ainda não consegui captar toda a conversa, mas tenho o início do dilúvio. Eu pareço semelhante a outra pergunta que encontrei .

Algumas perguntas que estou tentando descobrir:

  • Por que isso acontece?
  • Quem tem culpa?
  • Por que isso está acontecendo agora? Mudamos mais tráfego para HTTPS, mas isso por si só não deve ser o motivo.
  • Como evitar isso? Taxa de limitação de RST? Outras medidas?

Início da conversa em tcpdump -v format:

11:28:14.643566 IP (tos 0x28, ttl 55, id 0, offset 0, flags [DF], proto TCP (6), length 129)
    87.213.aa.bb.50813 > 93.186.cc.dd.443: Flags [FP.], cksum 0x649e (correct), seq 3515035885:3515035962, ack 410325601, win 2048, options [nop,nop,TS val 1134955136 ecr 53744583], length 77
11:28:14.643600 IP (tos 0x28, ttl 64, id 47919, offset 0, flags [DF], proto TCP (6), length 40)
    93.186.cc.dd.443 > 87.213.aa.bb.50813: Flags [R], cksum 0x2fe2 (correct), seq 410325601, win 0, length 0
11:28:14.643605 IP (tos 0x28, ttl 55, id 0, offset 0, flags [DF], proto TCP (6), length 129)
    87.213.aa.bb.50813 > 93.186.cc.dd.443: Flags [FP.], cksum 0x649e (correct), seq 0:77, ack 1, win 2048, options [nop,nop,TS val 1134955136 ecr 53744583], length 77
11:28:14.643612 IP (tos 0x28, ttl 64, id 47920, offset 0, flags [DF], proto TCP (6), length 40)
    93.186.cc.dd.443 > 87.213.aa.bb.50813: Flags [R], cksum 0x2fe2 (correct), seq 410325601, win 0, length 0
11:28:14.643613 IP (tos 0x28, ttl 55, id 0, offset 0, flags [DF], proto TCP (6), length 129)
    87.213.aa.bb.50813 > 93.186.cc.dd.443: Flags [FP.], cksum 0x649e (correct), seq 0:77, ack 1, win 2048, options [nop,nop,TS val 1134955136 ecr 53744583], length 77
11:28:14.643617 IP (tos 0x28, ttl 64, id 47921, offset 0, flags [DF], proto TCP (6), length 40)
    93.186.cc.dd.443 > 87.213.aa.bb.50813: Flags [R], cksum 0x2fe2 (correct), seq 410325601, win 0, length 0
11:28:14.649283 IP (tos 0x28, ttl 55, id 0, offset 0, flags [DF], proto TCP (6), length 40)
    87.213.aa.bb.50813 > 93.186.cc.dd.443: Flags [.], cksum 0x2517 (correct), ack 1, win 2048, length 0
11:28:14.649317 IP (tos 0x28, ttl 64, id 47922, offset 0, flags [DF], proto TCP (6), length 40)
    93.186.cc.dd.443 > 87.213.aa.bb.50813: Flags [R], cksum 0x2fe2 (correct), seq 410325601, win 0, length 0
11:28:14.649322 IP (tos 0x28, ttl 55, id 0, offset 0, flags [DF], proto TCP (6), length 40)
    87.213.aa.bb.50813 > 93.186.cc.dd.443: Flags [.], cksum 0x2517 (correct), ack 1, win 2048, length 0
11:28:14.649328 IP (tos 0x28, ttl 64, id 47923, offset 0, flags [DF], proto TCP (6), length 40)
    93.186.cc.dd.443 > 87.213.aa.bb.50813: Flags [R], cksum 0x2fe2 (correct), seq 410325601, win 0, length 0

Mais detalhes sobre uma troca de ACK / RST no formato tcpdump -X -vv :

11:31:23.689348 IP (tos 0x28, ttl 55, id 0, offset 0, flags [DF], proto TCP (6), length 40)
    87.213.aa.bb.50813 > 93.186.cc.dd.443: Flags [.], cksum 0x2517 (correct), seq 0, ack 1, win 2048, length 0
    0x0000:  4528 0028 0000 4000 3706 b6b8 57d5 18aa  E(.([email protected]...
    0x0010:  5dba beb6 c67d 01bb d183 313b 1875 1261  ]....}....1;.u.a
    0x0020:  5010 0800 2517 0000 0000 0000 0000       P...%.........
11:31:23.689515 IP (tos 0x28, ttl 55, id 0, offset 0, flags [DF], proto TCP (6), length 40)
    87.213.aa.bb.50813 > 93.186.cc.dd.443: Flags [.], cksum 0x2517 (correct), seq 0, ack 1, win 2048, length 0
    0x0000:  4528 0028 0000 4000 3706 b6b8 57d5 18aa  E(.([email protected]...
    0x0010:  5dba beb6 c67d 01bb d183 313b 1875 1261  ]....}....1;.u.a
    0x0020:  5010 0800 2517 0000 0000 0000 0000       P...%.........
11:31:23.689522 IP (tos 0x28, ttl 64, id 39460, offset 0, flags [DF], proto TCP (6), length 40)
    93.186.cc.dd.443 > 87.213.aa.bb.50813: Flags [R], cksum 0x2fe2 (correct), seq 410325601, win 0, length 0
    0x0000:  4528 0028 9a24 4000 4006 1394 5dba beb6  E(.(.$@.@...]...
    0x0010:  57d5 18aa 01bb c67d 1875 1261 0000 0000  W......}.u.a....
    0x0020:  5004 0000 2fe2 0000                      P.../...
11:31:23.689523 IP (tos 0x28, ttl 55, id 0, offset 0, flags [DF], proto TCP (6), length 40)
    87.213.aa.bb.50813 > 93.186.cc.dd.443: Flags [.], cksum 0x2517 (correct), seq 0, ack 1, win 2048, length 0
    0x0000:  4528 0028 0000 4000 3706 b6b8 57d5 18aa  E(.([email protected]...
    0x0010:  5dba beb6 c67d 01bb d183 313b 1875 1261  ]....}....1;.u.a
    0x0020:  5010 0800 2517 0000 0000 0000 0000       P...%.........
11:31:23.689526 IP (tos 0x28, ttl 64, id 39461, offset 0, flags [DF], proto TCP (6), length 40)
    93.186.cc.dd.443 > 87.213.aa.bb.50813: Flags [R], cksum 0x2fe2 (correct), seq 410325601, win 0, length 0
    0x0000:  4528 0028 9a25 4000 4006 1393 5dba beb6  E(.(.%@.@...]...
    0x0010:  57d5 18aa 01bb c67d 1875 1261 0000 0000  W......}.u.a....
    0x0020:  5004 0000 2fe2 0000                      P.../...
11:31:23.689527 IP (tos 0x28, ttl 55, id 0, offset 0, flags [DF], proto TCP (6), length 40)
    87.213.aa.bb.50813 > 93.186.cc.dd.443: Flags [.], cksum 0x2517 (correct), seq 0, ack 1, win 2048, length 0
    0x0000:  4528 0028 0000 4000 3706 b6b8 57d5 18aa  E(.([email protected]...
    0x0010:  5dba beb6 c67d 01bb d183 313b 1875 1261  ]....}....1;.u.a
    0x0020:  5010 0800 2517 0000 0000 0000 0000       P...%.........

Qualquer ideia apreciada!

    
por MikeN 30.01.2018 / 09:06

0 respostas