Яка практична різниця між:
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
і
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Який із них найкраще використовувати?
Дякую.
Яка практична різниця між:
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
і
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Який із них найкраще використовувати?
Дякую.
Відповіді:
Обидва використовують однакові внутрішні ядра під ними (підсистема відстеження з'єднання).
Заголовок xt_conntrack.c:
xt_conntrack - Netfilter module to match connection tracking
information. (Superset of Rusty's minimalistic state match.)
Тому я б сказав - модуль стану простіший (і, можливо, менше схильний до помилок). Це також довше в ядрі. Conntrack з іншого боку має більше можливостей та можливостей [1].
Мій дзвінок - використовувати conntrack, якщо вам потрібні його функції, інакше дотримуйтесь модуля стану.
Аналогічне запитання щодо netfilter maillist.
[1] Настільки корисний, як "-m conntrack --ctstate DNAT -j MASQUERADE" маршрутизація / налаштування DNAT ;-)
Немає різниці в результатах цих двох правил. Обидва розширення відповідності використовують однакові дані для відповідності стану відстеження з'єднання. state - це "старе" розширення відповідності, а conrack є новим і має набагато більше варіантів, ніж просто відповідати стану відстеження з'єднання.
Як говориться в документації:
Контракційний збіг - це розширена версія збігу стану, яка дає можливість зіставляти пакети набагато більш детально. Давайте давайте розглянемо інформацію, безпосередньо доступну в системі відстеження з'єднань, без будь-яких систем «фронтенд», наприклад, у матчі стану. Щоб отримати додаткові відомості про систему відстеження з'єднання, перегляньте розділ Стан машини.