Вопрос

Мы запускаем Debian с ядром 2.6.16 с включенным iptables. В системе работает специальный HTTP-прокси, который подвергается небольшой нагрузке (он отлично работает при той же нагрузке на других сайтах). Система состоит из 4 серверов, которым предшествует балансировщик нагрузки с виртуальным IP-адресом, которому предшествует массив из 4 машин ISA 2004, поэтому основная топология:

Клиент - > ISA [1-4] - > Балансировщик нагрузки - > Наш прокси [1-4] - > Интернет

Иногда ISA отправляет нам пакет SYN, на который не отправляется SYN-ACK. Он попытается снова через 3 секунды и в третий раз через еще 6 секунд, после чего он сообщит о прокси-сервере и переключится на прямое соединение. В течение этого времени, то есть до, между и после этих 3 SYN, приходят другие SYN из того же ISA и на них успешно получен ответ.

О подобных проблемах сообщают другие (однако решения не найдено):

Все они происходят из разновидности Linux под названием CentOS. Его особенность в том, что iptables включен по умолчанию.

http://www.linuxhelpforum.com/showthread.php?t = 931912 & амп; режим = линейная http://www.centos.org/modules/newbb/viewtopic. PHP? topic_id = 16147

Почти то же самое, но немного другое: http: //www.linuxquestions.org/questions/linux-networking-3/tcp-handshake-fails-synack-ignored-by-system.-637171/

Также, похоже, актуально: http://groups.google.com/group/ comp.os.linux.networking / browse_thread / резьба / b1c000e2d65e0034

Я подозреваю, что iptables является виновником, но любые дополнительные отзывы будут приветствоваться.

Это было полезно?

Решение

Посмотрите на второй параметр вызова прослушивания, как упомянуто в первой опубликованной вами ссылке. Это максимальное количество ожидающих (еще не принятых) соединений. Согласно справочной странице listen (2), если протокол поддерживает повторную передачу (TCP поддерживает), запрос соединения будет отброшен, когда очередь заполнена (ожидается более поздняя повторная передача, которая создаст соединение, если в очереди снова будет достаточно места). ).

Другие советы

Действительно, iptables оказался причиной, с правилом, которое отбрасывало пакеты INVALID. Мы до сих пор не знаем наверняка, что заставило iptables считать эти SYN-ы недействительными (точно нет TIME_WAIT, поскольку у нас не было трафика с такими же портами источника в течение как минимум 30 минут до отбрасывания).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top