URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 5303
[ Назад ]

Исходное сообщение
"Разница между -m state --state и -m conntrack --cstate"

Отправлено flosisa , 03-Фев-15 13:07 
Привет, я хотел бы узнать какая разница между опциями iptables "-m state --state" и "-m conntrack --ctstate"(NEW,...). Ну как я знаю, nf_conntrack это один из компонентов netfilter'a и работает на 3,4 и 7-ом уровне. А в чем разница, простым state'ом и conntrack?
1. -m state --state (NEW,ESTABLISHED,...)
2. -m conntrack --ctstate" (NEW,ESTABLISHED,DNAT,...)

2-ой вопроc:
Разница между ESTABLISHED и RELATED? У меня с ESTABLISHED'ом все безупречно работает, а зачем нужно состояние RELATED? Только для протоколов наподобие ICMP?

3-ый вопрос:
Что означает -A FORWARD -m conntrack --ctstate DNAT? Это значит пропускать(forward'ить) пакет, только если он DNAT'ился(прошел через DNAT), так? Например, не происходило forwarding если пакет SNAT'ился.

Заранее, всем спасибо за ответы.


Содержание

Сообщения в этом обсуждении
"Разница между -m state --state и -m conntrack --cstate"
Отправлено Andrey Mitrofanov , 03-Фев-15 13:26 
1
http://unix.stackexchange.com/questions/108169/what-is-the-d...

Говорят, одно и то же, но формального "-m state" устаревшим не объявляли.
См.также man iptables -- там наборы состояний чуть разные =модули выдают информацию чуть в разных разрезах.

2
man iptables

3
> Это значит пропускать

Во-первых, в показанной строке нет _действия, только условие.
Во-вторых, на мой взгляд, в man iptables всё написано.


"Разница между -m state --state и -m conntrack --cstate"
Отправлено greenwar , 15-Мрт-15 17:21 
>[оверквотинг удален]
> 1. -m state --state (NEW,ESTABLISHED,...)
> 2. -m conntrack --ctstate" (NEW,ESTABLISHED,DNAT,...)
> 2-ой вопроc:
> Разница между ESTABLISHED и RELATED? У меня с ESTABLISHED'ом все безупречно работает,
> а зачем нужно состояние RELATED? Только для протоколов наподобие ICMP?
> 3-ый вопрос:
> Что означает -A FORWARD -m conntrack --ctstate DNAT? Это значит пропускать(forward'ить)
> пакет, только если он DNAT'ился(прошел через DNAT), так? Например, не происходило
> forwarding если пакет SNAT'ился.
> Заранее, всем спасибо за ответы.

https://ru.wikibooks.org/wiki/Iptables#.D0.9A.D1.80.D0.B8.D1...

> Кроме критерия conntrack, стоит упомянуть и его идеологического предшественника — критерий state. Изначально для определения состояния соединения использовался именно он, то есть вместо -m conntrack --ctstate ESTABLISHED,RELATED использовалось -m state --state ESTABLISHED,RELATED. Подобные формулировки до сих пор сохраняются во многих руководствах по iptables. Однако в настоящее время критерий state считается устаревшим, и разработчики iptables рекомендуют использовать вместо него критерий conntrack. Также заметим, что критерий conntrack обладает более широкими возможностями, нежели state, и позволяет использовать дополнительную информацию о соединении, в частности, состояние самого соединения (ctstatus), факт применения к нему трансляции адресов, тайм-аут для «повисших» соединений (ctexpire) и т. п.

разница... ну например в NEW conntrack считает только первый SYN-пакет именно NEW, а все остальные уже установленным соединением
в принципе правильно, чо, экономия ресурсов же

про всё остальное там тоже есть