Свежая установка CentOS 5.4 друга плохо себя ведет за прокси-сервером его университета. Если он заберет машину домой и подключит ее напрямую к Интернету, она будет работать нормально. Если он установит на машину какую-нибудь другую ОС (даже старую версию CentOS), она будет нормально работать за прокси. Только когда он находится за прокси-сервером и только когда он работает под управлением CentOS 5.4, он имеет кажущиеся случайными тайм-ауты подключения и чрезвычайно низкую пропускную способность.
Я попросил его сделать небольшой захват пакета, чтобы посмотреть, что происходит. Вот что получилось:
9291 532.192095 10.74.88.99 161.112.232.22 TCP 40560 > ndl-aas [ACK] Seq=206 Ack=74213 Win=3328 Len=0 TSV=3733959 TSER=77264420
9292 532.193750 161.112.232.22 10.74.88.99 TCP [TCP segment of a reassembled PDU]
9293 532.193812 161.112.232.22 10.74.88.99 TCP [TCP segment of a reassembled PDU]
9295 532.234080 10.74.88.99 161.112.232.22 TCP 40560 > ndl-aas [ACK] Seq=206 Ack=77109 Win=384 Len=0 TSV=3734001 TSER=77264424
9296 532.658579 161.112.232.22 10.74.88.99 TCP [TCP Window Full] [TCP segment of a reassembled PDU]
9297 532.658666 10.74.88.99 161.112.232.22 TCP [TCP ZeroWindow] 40560 > ndl-aas [ACK] Seq=206 Ack=77493 Win=0 Len=0 TSV=3734426 TSER=77264471
9298 533.091240 161.112.232.22 10.74.88.99 TCP [TCP ZeroWindowProbe] [TCP segment of a reassembled PDU]
9299 533.091407 10.74.88.99 161.112.232.22 TCP [TCP ACKed lost segment] 40560 > ndl-aas [ACK] Seq=206 Ack=77494 Win=2176 Len=0 TSV=3734859 TSER=77264514
9300 533.092361 161.112.232.22 10.74.88.99 TCP [TCP segment of a reassembled PDU]
9301 533.092397 161.112.232.22 10.74.88.99 HTTP HTTP/1.0 200 OK (application/x-rpm)
(161.112.232.22 - это прокси, 10.74.88.99 - это поле CentOS, ndl-aas - это порт 3128, на котором squid работает на прокси)
Предполагая, что это вызывает тайм-ауты соединения во всех приложениях (FireFox, yum update и т. Д.), Мне интересно, почему это могло произойти только на этой машине CentOS 5.4 и только за прокси-сервером Squid.
Прокси-сервер - это squid / 3.0.STABLE19, работающий в Linux на 1 переход по сети, и явно настраивается на стороне клиента (путем установки переменной env http_proxy или соответствующей конфигурации для конкретного приложения).
Кто-нибудь поможет?
Проблема решена. Проблема была связана с прокси (на котором работала SunOS). Использование альтернативного прокси-сервера под управлением Linux решило проблему.
Вы можете проверить следующие значения в / proc, которые относятся к масштабированию окна TCP:
/proc/sys/net/core/rmem_default
/proc/sys/net/core/rmem_max
/proc/sys/net/core/wmem_default
/proc/sys/net/core/wmem_max
/proc/sys/net/ipv4/tcp_window_scaling
Посмотрите, различаются ли эти значения между машиной, которая нормально работает с прокси-сервером, и машиной, которую вы пытаетесь настроить.
Также я не знаю, связано ли это, но вы можете подумать, что в CentOS 5 по умолчанию включен SELinux. Это лично вызвало у меня много сложных для диагностики проблем, и вы можете установить его в разрешающий или отключенный режим для тестирования. (ссылка: http://wiki.centos.org/HowTos/SELinux)
ps: это скорее комментарий, чем "ответ"? Пока не могу комментировать