Это довольно стандартное правило iptables
для предотвращения проблем с обнаружением PMTU.
Из этого:
... Path MTU Discovery не работает так, как должно больше. Если вы точно знаете, что прыжок где-то в вашей сети имеет ограниченный (<1500) MTU, вы не можете полагаться на обнаружение PMTU Discovery.
Помимо MTU, существует еще один способ установить максимальный размер пакета, так называемый максимальный размер сегмента. Это поле в части TCP Options пакета SYN.
Последние ядра Linux и несколько драйверов PPPoE (в частности, превосходный Roaring Penguin) имеют возможность «зажать MSS».
Хорошая вещь об этом состоит в том, что, устанавливая значение MSS, вы недвусмысленно говорите удаленной стороне:«Никогда не пытайтесь отправить мне пакеты больше этого значения». Никакой трафик ICMP не требуется, чтобы заставить это работать.
Плохо то, что это очевидный взлом - он разбивает «конец в конец», изменяя пакеты. Сказав это, мы используем этот трюк во многих местах, и он работает как шарм.
Чтобы это работало, вам нужен как минимум iptables-1.2.1a и Linux 2.4.3 или выше. Основная командная строка:
# iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu