... Шлях MTU Discovery працює не так добре, як слід. Якщо ви знаєте напевно, що скачок десь у вашій мережі має обмежений (<1500) MTU, ви не можете розраховувати на пошук PMTU Discovery.
Крім MTU, існує ще один спосіб встановити максимальний розмір пакету, так званий "Максимальний розмір сегмента". Це поле в частині параметрів TCP в пакеті 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