Назад | Перейти на главную страницу

время ожидания соединения истекает после загрузки 1 ГБ

У меня очень странная проблема с некоторыми из моих серверов. Кажется, что пользователи на этих серверах всякий раз, когда они загружают с них большие файлы (более 1 ГБ) через FTP (proftpd) или HTTP (apache2), соединение для загрузки прерывается именно тогда, когда они достигают 1 ГБ загруженных данных.

Проблема не случайна, она возникает каждый раз со всеми учетными записями и ровно на отметке в 1 ГБ. Я не могу понять, что может вызвать это.

Серверы работают под управлением Ubuntu Linux Oneiric Ocelot

Я загружал файлы размером более 1 ГБ (даже> 100 ГБ) через ftp, ssh, http и никогда не сталкивался с такой проблемой в такой последовательности. Но мы наблюдали и устраняли случайные подозрительные пакеты tcp-rst в других ситуациях. Tcp-rst не должен происходить в нормальной ситуации, это почти всегда ненормальное событие, заслуживающее некоторых здоровых подозрений.

Тот факт, что это так стабильно и соединение сброшено, а не закрыто должным образом, указывает на то, что, на мой взгляд, происходит что-то подозрительное. Брандмауэры и маршрутизаторы (плохо настроенные или просто сломанные) могут делать то же самое. Вы можете запустить tcpdump во время такой загрузки и изучить результат.

Я предполагаю, что это может быть вызвано вашим интернет-провайдером, неохотно, возможно, из-за сломанного маршрутизатора или брандмауэра.

Иногда я сам пытался узнать о каких-то загадочных сбросах tcp и использовал для этого tcpdump:

Я бы сказал, что около отметки 980 МБ, tcpdump все в файл:

tcpdump -w name.dump -i any -nnvvXSs 65535 tcp port XXX

Затем используйте tcpdump, чтобы найти пакет (ы) сброса:

tcpdump -nnvvXSs 65535 -r name.dump 'tcp[tcpflags] & tcp-rst != 0 and tcp[tcpflags] & tcp-ack != 0' and tcp port XXX

Затем снова используйте tcpdump и grep, чтобы посмотреть на метку времени, чтобы узнать, что происходит, что может дать ключ к разгадке. Параметры -A и -B выводят 200 строк до и после строки с выделением.

tcpdump -nnvvXSs 65535 -r name.dump | grep -A 200 -B 200 "timestamp of tcp-rst packet"

На серверах, где это происходит, с использованием другого интернет-провайдера? Или отдельный роутер или межсетевой экран? Можете ли вы убедиться, что этого не происходит на других серверах, использующих того же провайдера, маршрутизатор и брандмауэр?

Проверьте брандмауэр. В некоторых случаях проблема заключается в тайм-ауте протокола ....