LINUX.ORG.RU
ФорумAdmin

Глюки с iptables после обновления ядра с 2.4.18 до 2.6.15


0

0

Добрый день.

Стоит у меня роутер на линуксе, на котором настроен обычный nat. Плюс внутренний интерфейс - это мост обычного адаптера и беспроводного.

После обновления ядра (дистрибутив стоял Slackware) с 2.4.18, которое поставлялось с дистрибутивом до 2.6.15 появилась следующая проблема. Симптомы таковы: некоторые сайты (например, microsoft.com или rsdn.ru) не грузятся с внутренних машин, которые за NAT'ом. Многие другие нормально. С сервера все нормально.

Пример: запрос "GET / HTTP/1.0" сайту rsdn.ru, через телнет.

tcpdump с внешнего интерфейса говорит следующее:

03:50:52.482093 [ext-address].3684 > rsdn.ru.http: S 309898747:309898747(0) win 16384 <mss 1460,nop,nop,sackOK> (DF)
03:50:52.499522 rsdn.ru.http > [ext-address].3684: S 3386758884:3386758884(0) ack 309898748 win 16384 <mss 1460,nop,nop,sackOK>
03:50:52.499867 [ext-address].3684 > rsdn.ru.http: . ack 1 win 17520 (DF)
03:50:55.540587 [ext-address].3684 > rsdn.ru.http: P 1:2(1) ack 1 win 17520 (DF)
03:50:55.689877 rsdn.ru.http > [ext-address].3684: . ack 2 win 65534 (DF)
03:50:55.740708 [ext-address].3684 > rsdn.ru.http: P 2:3(1) ack 1 win 17520 (DF)
03:50:55.909496 rsdn.ru.http > [ext-address].3684: . ack 3 win 65533 (DF)
03:50:55.909831 [ext-address].3684 > rsdn.ru.http: P 3:4(1) ack 1 win 17520 (DF)
03:50:56.128084 rsdn.ru.http > [ext-address].3684: . ack 4 win 65532 (DF)
03:50:58.484391 [ext-address].3684 > rsdn.ru.http: P 4:5(1) ack 1 win 17520 (DF)
03:50:58.643949 rsdn.ru.http > [ext-address].3684: . ack 5 win 65531 (DF)
03:50:58.892311 [ext-address].3684 > rsdn.ru.http: P 5:6(1) ack 1 win 17520 (DF)
03:50:59.079920 rsdn.ru.http > [ext-address].3684: . ack 6 win 65530 (DF)
03:50:59.080258 [ext-address].3684 > rsdn.ru.http: P 6:7(1) ack 1 win 17520 (DF)
03:50:59.204663 rsdn.ru.http > [ext-address].3684: . ack 7 win 65529 (DF)
03:50:59.404219 [ext-address].3684 > rsdn.ru.http: P 7:8(1) ack 1 win 17520 (DF)
03:50:59.629468 rsdn.ru.http > [ext-address].3684: . ack 8 win 65528 (DF)
03:50:59.772199 [ext-address].3684 > rsdn.ru.http: P 8:9(1) ack 1 win 17520 (DF)
03:50:59.968951 rsdn.ru.http > [ext-address].3684: . ack 9 win 65527 (DF)
03:50:59.969286 [ext-address].3684 > rsdn.ru.http: P 9:10(1) ack 1 win 17520 (DF)
03:51:01.071271 [ext-address].3684 > rsdn.ru.http: P 9:14(5) ack 1 win 17520 (DF)
03:51:01.275683 rsdn.ru.http > [ext-address].3684: . ack 14 win 65522 (DF)
03:51:01.276032 [ext-address].3684 > rsdn.ru.http: P 14:15(1) ack 1 win 17520 (DF)
03:51:01.496971 rsdn.ru.http > [ext-address].3684: . ack 15 win 65521 (DF)
03:51:02.219851 [ext-address].3684 > rsdn.ru.http: P 15:17(2) ack 1 win 17520 (DF)
03:51:02.364686 rsdn.ru.http > [ext-address].3684: . ack 17 win 65519 (DF)
03:51:02.595643 [ext-address].3684 > rsdn.ru.http: P 17:19(2) ack 1 win 17520 (DF)
----->03:51:02.630986 rsdn.ru.http > [ext-address].3684: . 1:557(556) ack 19 win 65517 (DF)
----->03:51:02.633019 rsdn.ru.http > [ext-address].3684: . 557:1113(556) ack 19 win 65517 (DF)
03:51:03.384752 [ext-address].3684 > rsdn.ru.http: P 17:19(2) ack 1 win 17520 (DF)
03:51:03.410151 rsdn.ru.http > [ext-address].3684: . ack 19 win 65517 (DF)
----->03:51:05.543507 rsdn.ru.http > [ext-address].3684: . 1:557(556) ack 19 win 65517 (DF)
----->03:51:05.545846 rsdn.ru.http > [ext-address].3684: . 557:1113(556) ack 19 win 65517 (DF)
03:51:10.563818 rsdn.ru.http > [ext-address].3684: . 1113:1461(348) ack 19 win 65517 (DF)
03:51:10.564489 [ext-address].3684 > rsdn.ru.http: . ack 1 win 17520 <nop,nop,sack sack 1 {1113:1461} > (DF)
----->03:51:11.548298 rsdn.ru.http > [ext-address].3684: . 1:557(556) ack 19 win 65517 (DF)
----->03:51:11.549775 rsdn.ru.http > [ext-address].3684: . 557:1113(556) ack 19 win 65517 (DF)
03:51:16.690461 rsdn.ru.http > [ext-address].3684: . 1113:1461(348) ack 19 win 65517 (DF)
03:51:16.691074 [ext-address].3684 > rsdn.ru.http: . ack 1 win 17520 <nop,nop,sack sack 1 {1113:1461} > (DF)
03:51:27.566216 rsdn.ru.http > [ext-address].3684: R 1461:1461(0) ack 19 win 0 (DF)
03:51:27.566550 [ext-address].3684 > rsdn.ru.http: . ack 1 win 17520 <nop,nop,sack sack 1 {1113:1461} > (DF)
03:51:27.582395 rsdn.ru.http > [ext-address].3684: R 3386758885:3386758885(0) win 0

С внутреннего:

03:50:52.482034 192.168.0.2.3684 > rsdn.ru.http: S 309898747:309898747(0) win 16384 <mss 1460,nop,nop,sackOK> (DF)
03:50:52.499580 rsdn.ru.http > 192.168.0.2.3684: S 3386758884:3386758884(0) ack 309898748 win 16384 <mss 1460,nop,nop,sackOK>
03:50:52.499839 192.168.0.2.3684 > rsdn.ru.http: . ack 1 win 17520 (DF)
03:50:55.540551 192.168.0.2.3684 > rsdn.ru.http: P 1:2(1) ack 1 win 17520 (DF)
03:50:55.689896 rsdn.ru.http > 192.168.0.2.3684: . ack 2 win 65534 (DF)
03:50:55.740680 192.168.0.2.3684 > rsdn.ru.http: P 2:3(1) ack 1 win 17520 (DF)
03:50:55.909514 rsdn.ru.http > 192.168.0.2.3684: . ack 3 win 65533 (DF)
03:50:55.909803 192.168.0.2.3684 > rsdn.ru.http: P 3:4(1) ack 1 win 17520 (DF)
03:50:56.128104 rsdn.ru.http > 192.168.0.2.3684: . ack 4 win 65532 (DF)
03:50:58.484350 192.168.0.2.3684 > rsdn.ru.http: P 4:5(1) ack 1 win 17520 (DF)
03:50:58.643968 rsdn.ru.http > 192.168.0.2.3684: . ack 5 win 65531 (DF)
03:50:58.892283 192.168.0.2.3684 > rsdn.ru.http: P 5:6(1) ack 1 win 17520 (DF)
03:50:59.079938 rsdn.ru.http > 192.168.0.2.3684: . ack 6 win 65530 (DF)
03:50:59.080229 192.168.0.2.3684 > rsdn.ru.http: P 6:7(1) ack 1 win 17520 (DF)
03:50:59.204684 rsdn.ru.http > 192.168.0.2.3684: . ack 7 win 65529 (DF)
03:50:59.404193 192.168.0.2.3684 > rsdn.ru.http: P 7:8(1) ack 1 win 17520 (DF)
03:50:59.629486 rsdn.ru.http > 192.168.0.2.3684: . ack 8 win 65528 (DF)
03:50:59.772171 192.168.0.2.3684 > rsdn.ru.http: P 8:9(1) ack 1 win 17520 (DF)
03:50:59.968970 rsdn.ru.http > 192.168.0.2.3684: . ack 9 win 65527 (DF)
03:50:59.969258 192.168.0.2.3684 > rsdn.ru.http: P 9:10(1) ack 1 win 17520 (DF)
03:51:01.071219 192.168.0.2.3684 > rsdn.ru.http: P 9:14(5) ack 1 win 17520 (DF)
03:51:01.275703 rsdn.ru.http > 192.168.0.2.3684: . ack 14 win 65522 (DF)
03:51:01.276009 192.168.0.2.3684 > rsdn.ru.http: P 14:15(1) ack 1 win 17520 (DF)
03:51:01.496994 rsdn.ru.http > 192.168.0.2.3684: . ack 15 win 65521 (DF)
03:51:02.219824 192.168.0.2.3684 > rsdn.ru.http: P 15:17(2) ack 1 win 17520 (DF)
03:51:02.364706 rsdn.ru.http > 192.168.0.2.3684: . ack 17 win 65519 (DF)
03:51:02.595614 192.168.0.2.3684 > rsdn.ru.http: P 17:19(2) ack 1 win 17520 (DF)
03:51:03.384729 192.168.0.2.3684 > rsdn.ru.http: P 17:19(2) ack 1 win 17520 (DF)
03:51:03.410168 rsdn.ru.http > 192.168.0.2.3684: . ack 19 win 65517 (DF)
03:51:10.563855 rsdn.ru.http > 192.168.0.2.3684: . 1113:1461(348) ack 19 win 65517 (DF)
03:51:10.564442 192.168.0.2.3684 > rsdn.ru.http: . ack 1 win 17520 <nop,nop,sack sack 1 {1113:1461} > (DF)
03:51:16.690478 rsdn.ru.http > 192.168.0.2.3684: . 1113:1461(348) ack 19 win 65517 (DF)
03:51:16.691042 192.168.0.2.3684 > rsdn.ru.http: . ack 1 win 17520 <nop,nop,sack sack 1 {1113:1461} > (DF)
03:51:27.566233 rsdn.ru.http > 192.168.0.2.3684: R 1461:1461(0) ack 19 win 0 (DF)
03:51:27.566526 192.168.0.2.3684 > rsdn.ru.http: . ack 1 win 17520 <nop,nop,sack sack 1 {1113:1461} > (DF)
03:51:27.582419 rsdn.ru.http > 192.168.0.2.3684: R 3386758885:3386758885(0) win 0

Там выделены пакеты, которые на внутренний интерфейс не попадают. В чем может быть дело и как это отладить?

Посмотреть конфиг iptables можно здесь: http://azarov.comtv.ru/rc.firewall

Спасибо.


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

может быть:
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

anonymous
()
Ответ на: комментарий от Vintik

Да, все верно. wlan0 имеет маленький MTU по умолчанию, почему-то, соответственно мост тоже.

Всем спасибо.

Vintik
() автор топика

Как видно по логах установлен флаг Dont Fragment (DF), и пакет не может пролезть, значит проблемы с mtu

Попробуй такое правило:

iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN \ -j TCPMSS --clamp-mss-to-pmtu

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