Como depurar pacotes SYN-ACK descartados

3

Eu tenho dois balanceadores de carga na frente de quatro outras máquinas servidor, fazendo aproximadamente 5-6000 solicitações por segundo. Tenho notado que, a cada poucos minutos, um dos balanceadores de carga obtém um tempo limite de conexão conectando-se a uma das máquinas do servidor. Como uma porcentagem do total de conexões, esta é, obviamente, uma taxa de falha muito baixa, no entanto, elas estão no mesmo datacenter e não consigo ver por que eu teria um tempo limite de conexão (60 segundos, fwiw).

Eu consegui fazer um pacote capturar uma das máquinas do servidor quando isso acontece e parece que os pacotes SYN-ACK não estão alcançando o balanceador de carga.

19:33:51.023518 IP 10.36.213.2.58011 > 10.36.213.36.8005: Flags [S], seq 1726133855, win 5840, options [mss 1460,sackOK,TS val 14377140 ecr 0,nop,wscale 7], length 0
19:33:51.023534 IP 10.36.213.36.8005 > 10.36.213.2.58011: Flags [S.], seq 806746037, ack 1726133856, win 5792, options [mss 1460,sackOK,TS val 15334821 ecr 14377140,nop,wscale 7], length 0
19:33:54.026705 IP 10.36.213.2.58011 > 10.36.213.36.8005: Flags [S], seq 1726133855, win 5840, options [mss 1460,sackOK,TS val 14377440 ecr 0,nop,wscale 7], length 0
19:33:54.026712 IP 10.36.213.36.8005 > 10.36.213.2.58011: Flags [S.], seq 806746037, ack 1726133856, win 5792, options [mss 1460,sackOK,TS val 15335121 ecr 14377140,nop,wscale 7], length 0
19:33:54.620425 IP 10.36.213.36.8005 > 10.36.213.2.58011: Flags [S.], seq 806746037, ack 1726133856, win 5792, options [mss 1460,sackOK,TS val 15335181 ecr 14377140,nop,wscale 7], length 0
19:34:00.026709 IP 10.36.213.2.58011 > 10.36.213.36.8005: Flags [S], seq 1726133855, win 5840, options [mss 1460,sackOK,TS val 14378040 ecr 0,nop,wscale 7], length 0
19:34:00.026726 IP 10.36.213.36.8005 > 10.36.213.2.58011: Flags [S.], seq 806746037, ack 1726133856, win 5792, options [mss 1460,sackOK,TS val 15335721 ecr 14377140,nop,wscale 7], length 0
19:34:00.620436 IP 10.36.213.36.8005 > 10.36.213.2.58011: Flags [S.], seq 806746037, ack 1726133856, win 5792, options [mss 1460,sackOK,TS val 15335781 ecr 14377140,nop,wscale 7], length 0
19:34:12.620430 IP 10.36.213.36.8005 > 10.36.213.2.58011: Flags [S.], seq 806746037, ack 1726133856, win 5792, options [mss 1460,sackOK,TS val 15336981 ecr 14377140,nop,wscale 7], length 0
19:34:36.820432 IP 10.36.213.36.8005 > 10.36.213.2.58011: Flags [S.], seq 806746037, ack 1726133856, win 5792, options [mss 1460,sackOK,TS val 15339401 ecr 14377140,nop,wscale 7], length 0
19:35:24.820433 IP 10.36.213.36.8005 > 10.36.213.2.58011: Flags [S.], seq 806746037, ack 1726133856, win 5792, options [mss 1460,sackOK,TS val 15344201 ecr 14377140,nop,wscale 7], length 0

Nesta captura, 10.36.213.2 é o balanceador de carga e 10.36.213.36 é a máquina do servidor.

Meu palpite é que a chance de que todos esses pacotes sejam descartados aleatoriamente é baixa ... mais provável é que eles estejam sendo rejeitados de alguma forma. Então, a pergunta é: como eu poderia descobrir por que esses pacotes não estão passando?

    
por btmorex 18.04.2012 / 22:00

1 resposta

0

Eu vi um problema semelhante (concedido pelo Windows) em que os servidores estavam fazendo algum tipo de ajuste automático estúpido dos tamanhos dos pacotes TCP e os Ballancers da carga da Cisco não suportavam o tamanho maior do pacote, então os rejeitavam. Eu não tenho idéia se * nix suporta esse tipo de estupidez, mas se isso acontecer, pode ser o problema.

    
por 18.04.2012 / 22:22