LINUX.ORG.RU
ФорумAdmin

Проблема с ICMP «Need to Frag» при маршрутизации


0

0

Приветствую, господа!

Столкнулся с труднообъяснимой проблемой.

Имеется шлюз на основе Debian Linux 5.0.4, подключенній к двум провайдерам через PPPoE-подключения. Соединения от клиентов локльной сети в зависимости от их исходящего адреса разбрасываются по провайдерам с помощью ip rule. А именно: от 1-го провайдера принимается маршрут маршрут по-умолчанию и помещается в таблицу main, для 2-го провайдера заведена отдельная таблица маршрутизации с помощью ip route.

Все работало относительно нормально, до тех пор пока не был задейсвован PPTP-сервер, для которого тоже применена такая же схема разброса соединений. У клиентов, которые ходят в Internet через 1-го провайдера проблем не замечено. Однако клиенты, которые ходят через 2-го провайдера, не могут открывать стратраницы сайтов более какого-то определенного размера. Это же относится и к другим TCP-соединениям. При этом UDP-пакеты ходят нормально.

После длительных исследований было замечено, что, учитывая то, что MTU подключения к провайдерам равен 1492, а MTU PPTP-подключений равняется 1396, шлюз рассылает сайтам, к которым пытаются подключиться PPTP-клиенты, ICMP-запрос «Need to Frag 1396». У 1-го провайдера все хорошо, НО(!!!) подобные запросы для уменьшения размеров пакетов соединений, устанавливаемых PPTP-клиентами через 2-го провайдера, почему-то уходят через подключение к 1-му провайдеру (от которого, как вы помните, принят маршрут по-умолчанию), где благополучно прибиваются(?). В то же время ICMP эхо-запросы/ответы от разных PPTP-клиентов нормально ходят через соответствующих провайдеров в зависимости от исходящего адреса.

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

Заранее признателен.


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

Это?

$ sudo iptables -t mangle -vnL FORWARD

Chain FORWARD (policy ACCEPT 12M packets, 7978M bytes)
 pkts bytes target     prot opt in     out     source               destination
 9309  448K TCPMSS     tcp  --  *      ppp1    0.0.0.0/0            0.0.0.0/0           tcp flags:0x06/0x02 tcpmss match 1400:1536 TCPMSS clamp to PMTU
 106K 5155K TCPMSS     tcp  --  *      ppp0    0.0.0.0/0            0.0.0.0/0           tcp flags:0x06/0x02 tcpmss match 1400:1536 TCPMSS clamp to PMTU
TVT
() автор топика
Ответ на: комментарий от TVT

Кстати, 1-й провайдер — ppp1, 2-й — ppp0.

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

клиенты на винде игнорируют ICMP запросы?
попробуй включить переразбивку пакетов в ядре.

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