TCP RST, связанный с SSL close_notify

У нас есть веб-сайт, позволяющий клиенту выполнять вызовы API через HTTPS (TLSv1). Мы заметили, что каждый звонок, сделанный клиентом, заканчивается TCP RST, как таковой:

14:29:38.835063 IP 10.99.99.100.52544 > 192.168.217.206.443: Flags [S], seq 185271263, win 29200, options [mss 1460,sackOK,TS val 13466410 ecr 0,nop,wscale 7], length 0
14:29:38.835386 IP 192.168.217.206.443 > 10.99.99.100.52544: Flags [S.], seq 1538810077, ack 185271264, win 28960, options [mss 1460,sackOK,TS val 1334194823 ecr 13466410,nop,wscale 7], length 0
14:29:38.835413 IP 10.99.99.100.52544 > 192.168.217.206.443: Flags [.], ack 1, win 229, options [nop,nop,TS val 13466411 ecr 1334194823], length 0
14:29:38.913471 IP 10.99.99.100.52544 > 192.168.217.206.443: Flags [P.], seq 1:81, ack 1, win 229, options [nop,nop,TS val 13466489 ecr 1334194823], length 80
14:29:38.913889 IP 192.168.217.206.443 > 10.99.99.100.52544: Flags [.], ack 81, win 227, options [nop,nop,TS val 1334194901 ecr 13466489], length 0
14:29:38.924449 IP 192.168.217.206.443 > 10.99.99.100.52544: Flags [.], seq 1:2897, ack 81, win 227, options [nop,nop,TS val 1334194912 ecr 13466489], length 2896
14:29:38.924461 IP 10.99.99.100.52544 > 192.168.217.206.443: Flags [.], ack 2897, win 274, options [nop,nop,TS val 13466500 ecr 1334194912], length 0
14:29:38.924478 IP 192.168.217.206.443 > 10.99.99.100.52544: Flags [P.], seq 2897:5048, ack 81, win 227, options [nop,nop,TS val 1334194912 ecr 13466489], length 2151
14:29:38.924482 IP 10.99.99.100.52544 > 192.168.217.206.443: Flags [.], ack 5048, win 307, options [nop,nop,TS val 13466500 ecr 1334194912], length 0
14:29:38.929296 IP 10.99.99.100.52544 > 192.168.217.206.443: Flags [P.], seq 81:407, ack 5048, win 307, options [nop,nop,TS val 13466504 ecr 1334194912], length 326
14:29:38.937590 IP 192.168.217.206.443 > 10.99.99.100.52544: Flags [P.], seq 5048:5107, ack 407, win 235, options [nop,nop,TS val 1334194925 ecr 13466504], length 59
14:29:38.937739 IP 10.99.99.100.52544 > 192.168.217.206.443: Flags [P.], seq 407:684, ack 5107, win 307, options [nop,nop,TS val 13466513 ecr 1334194925], length 277
14:29:38.978074 IP 192.168.217.206.443 > 10.99.99.100.52544: Flags [.], ack 684, win 243, options [nop,nop,TS val 1334194966 ecr 13466513], length 0
14:29:39.001102 IP 192.168.217.206.443 > 10.99.99.100.52544: Flags [.], seq 5107:8003, ack 684, win 243, options [nop,nop,TS val 1334194988 ecr 13466513], length 2896
14:29:39.001125 IP 10.99.99.100.52544 > 192.168.217.206.443: Flags [.], ack 8003, win 353, options [nop,nop,TS val 13466576 ecr 1334194988], length 0
14:29:39.001135 IP 192.168.217.206.443 > 10.99.99.100.52544: Flags [.], seq 8003:9451, ack 684, win 243, options [nop,nop,TS val 1334194988 ecr 13466513], length 1448
14:29:39.001147 IP 192.168.217.206.443 > 10.99.99.100.52544: Flags [P.], seq 9451:12045, ack 684, win 243, options [nop,nop,TS val 1334194988 ecr 13466513], length 2594
14:29:39.001153 IP 10.99.99.100.52544 > 192.168.217.206.443: Flags [.], ack 12045, win 416, options [nop,nop,TS val 13466576 ecr 1334194988], length 0
14:29:39.001156 IP 192.168.217.206.443 > 10.99.99.100.52544: Flags [P.], seq 12045:12082, ack 684, win 243, options [nop,nop,TS val 1334194989 ecr 13466513], length 37
14:29:39.001159 IP 192.168.217.206.443 > 10.99.99.100.52544: Flags [F.], seq 12082, ack 684, win 243, options [nop,nop,TS val 1334194989 ecr 13466513], length 0
14:29:39.001388 IP 10.99.99.100.52544 > 192.168.217.206.443: Flags [P.], seq 684:721, ack 12083, win 416, options [nop,nop,TS val 13466577 ecr 1334194989], length 37
14:29:39.001397 IP 10.99.99.100.52544 > 192.168.217.206.443: Flags [R.], seq 721, ack 12083, win 416, options [nop,nop,TS val 0 ecr 1334194989], length 0
14:29:39.001552 IP 192.168.217.206.443 > 10.99.99.100.52544: Flags [.], ack 721, win 243, options [nop,nop,TS val 1334194989 ecr 13466577], length 0
14:29:39.001565 IP 10.99.99.100.52544 > 192.168.217.206.443: Flags [R], seq 185271984, win 0, length 0

HTTPS-вызовы обслуживаются Apache/mod_ssl в CentOS6: httpd-2.2.15-60.el6.centos.6.x86_64 mod_ssl-2.2.15-60.el6.centos.6.x86_64

После исследования я думаю, что установлено, что пакеты TCP RST вызваны клиентом HTTPS (в данном случае строка UA "Apache-HttpClient/4.5.5 (Java/1.8.0)"), закрывающим соединение перед чтением пакета SSL close_notify отправлено веб-сервером. Фактически, если я использую опцию ssl-unclean-shutdown в mod_ssl, пакеты TCP RST исчезают и соединение TCP прерывается должным образом:

...
14:34:24.310950 IP 192.168.217.206.443 > 10.99.99.100.54305: Flags [F.], seq 12045, ack 684, win 243, options [nop,nop,TS val 1334480311 ecr 13751831], length 0
14:34:24.311137 IP 10.99.99.100.54305 > 192.168.217.206.443: Flags [P.], seq 684:721, ack 12046, win 416, options [nop,nop,TS val 13751886 ecr 1334480311], length 37
14:34:24.311158 IP 10.99.99.100.54305 > 192.168.217.206.443: Flags [F.], seq 721, ack 12046, win 416, options [nop,nop,TS val 13751886 ecr 1334480311], length 0
14:34:24.311311 IP 192.168.217.206.443 > 10.99.99.100.54305: Flags [.], ack 721, win 243, options [nop,nop,TS val 1334480311 ecr 13751886], length 0
14:34:24.311354 IP 192.168.217.206.443 > 10.99.99.100.54305: Flags [.], ack 722, win 243, options [nop,nop,TS val 1334480311 ecr 13751886], length 0

Меня беспокоит то, что я смог воспроизвести проблему как с (по общему признанию, старыми версиями) wget 1.12, так и с curl 7.20.1, что указывало бы на то, что это должно быть несколько распространенной проблемой.

Кто-нибудь еще слышал о чем-то подобном? Google не предоставил никаких признаков того, что это общая проблема.

0 ответов

Другие вопросы по тегам