Що означає це правило iptables: прапорці tcp: 0x06 / 0x02 TCPMSS затиск на PMTU?


2

Що означає це правило iptables tcp flags:0x06/0x02 TCPMSS clamp to PMTU:?

Виконання iptables -vnLна моєму DD-WRT маршрутизатор показує наступне правило в FORWARDланцюжку: TCPMSS tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU.

Замість загальних дій ACCEPTчи DROPце є TCPMSS. Що це значить?

Відповіді:


2

Це досить стандартне iptablesправило для запобігання проблемам виявлення PMTU.

З цього :

... Шлях 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.