LINUX.ORG.RU
ФорумAdmin

Особенности IP стека в Линукс (продолжение)


0

0

Краткое содержание предыдущих серий (http://www.linux.org.ru/profile/mind//view-message.jsp?msgid=931302): "Итак, имеем Линукс. Неважно, какой именно, потому что эффект наблюдается и на FC3 (ядра 2.6.9 и 2.6.11), и на DamnSmallLinux (специально скачал, чтобы проверить ядро 2.4), и на паре других Knoppix-based liveCD. В пределах LAN все работает нормально. При выходе за файрволл в любом браузере (вплоть до telnet) попытка установить соединение с некоторыми сайтами (с большей их частью; например, с www.mail.ru. А Google работает быстро) тянется десятки секунд. Иногда безуспешно. На той же машине FreeBSD и, извините, WinXP работают значительно лучше -- соединение устанавливается не больше, чем за секунду-две."

А теперь продолжение. Вот результат tcpdump:
$ sudo /usr/sbin/tcpdump host slashdot.org
Password:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:06:54.568560 IP 192.168.2.135.43599 > slashdot.org.http: S 2120042690:2120042690(0) win 5840 <mss 1460,sackOK,timestamp 1222414 0>
14:06:54.872321 IP slashdot.org.http > 192.168.2.135.43599: S 973847674:973847674(0) ack 2120042691 win 5792 <mss 1460,sackOK,timestamp 237003723 1180304>
14:06:54.872393 IP 192.168.2.135.43599 > slashdot.org.http: R 2120042691:2120042691(0) win 0
14:06:57.567546 IP 192.168.2.135.43599 > slashdot.org.http: S 2120042690:2120042690(0) win 5840 <mss 1460,sackOK,timestamp 1225414 0>
14:06:57.856745 IP slashdot.org.http > 192.168.2.135.43599: S 976837887:976837887(0) ack 2120042691 win 2400 <mss 1460,sackOK,timestamp 237004022 1180304>
14:06:57.856819 IP 192.168.2.135.43599 > slashdot.org.http: R 2120042691:2120042691(0) win 0
14:07:03.566641 IP 192.168.2.135.43599 > slashdot.org.http: S 2120042690:2120042690(0) win 5840 <mss 1460,sackOK,timestamp 1231414 0>
14:07:03.854042 IP slashdot.org.http > 192.168.2.135.43599: S 982836447:982836447(0) ack 2120042691 win 2400 <mss 1460,sackOK,timestamp 237004622 1180304>
14:07:03.854104 IP 192.168.2.135.43599 > slashdot.org.http: R 2120042691:2120042691(0) win 0
14:07:15.564799 IP 192.168.2.135.43599 > slashdot.org.http: S 2120042690:2120042690(0) win 5840 <mss 1460,sackOK,timestamp 1243414 0>
14:07:15.872837 IP slashdot.org.http > 192.168.2.135.43599: S 994850736:994850736(0) ack 2120042691 win 2500 <mss 1460,sackOK,timestamp 237005823 1180304>
14:07:15.872895 IP 192.168.2.135.43599 > slashdot.org.http: R 2120042691:2120042691(0) win 0
14:07:39.561150 IP 192.168.2.135.43599 > slashdot.org.http: S 2120042690:2120042690(0) win 5840 <mss 1460,sackOK,timestamp 1267414 0>
14:07:39.848411 IP slashdot.org.http > 192.168.2.135.43599: S 1018831560:1018831560(0) ack 2120042691 win 2500 <mss 1460,sackOK,timestamp 237008221 1245840>
14:07:39.848484 IP 192.168.2.135.43599 > slashdot.org.http: . ack 1 win 5840 <nop,nop,timestamp 1267701 237008221>
14:07:39.851453 IP 192.168.2.135.43599 > slashdot.org.http: P 1:178(177) ack 1 win 5840 <nop,nop,timestamp 1267704 237008221>
14:07:40.147940 IP slashdot.org.http > 192.168.2.135.43599: . ack 178 win 2500 <nop,nop,timestamp 237008251 1267704>

То есть, соединение устанавливается только через 45 секунд после первого SYN-пакета. В течение всех этих 45 секунд на нормальные (?) ответные SYN-пакеты Linux отвечает RST.

Кто-нибудь может рассказать, по каким причинам это может быть? Спасибо.

С некоторыми хостами Linux работает так же нормально, как и FreeBSD. Возьмем, например, LOR :)

$ sudo /usr/sbin/tcpdump host linux.org.ru
Password:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:14:32.381093 IP 192.168.2.135.56743 > linux.org.ru.http: S 2599336517:2599336517(0) win 5840 <mss 1460,sackOK,timestamp 1680296 0>
14:14:32.459349 IP linux.org.ru.http > 192.168.2.135.56743: S 1102882171:1102882171(0) ack 2599336518 win 5840 <mss 1460,nop,nop,nop,eol>
14:14:32.459401 IP 192.168.2.135.56743 > linux.org.ru.http: . ack 1 win 5840
14:14:32.460452 IP 192.168.2.135.56743 > linux.org.ru.http: P 1:178(177) ack 1 win 5840
14:14:32.596863 IP linux.org.ru.http > 192.168.2.135.56743: P 1:569(568) ack 178 win 6432

Ответ на: комментарий от jonatan

Jonatan, большое человеческое спасибо :) Действительно, если установить в 0 tcp_timestamps, tcp_window_scaling и tcp_moderate_rcvbuf, то все работает.

Спасибо.

mind
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.