LINUX.ORG.RU

Состояние соединения в iptables


0

0

Прочитал руководство по iptables:
http://www.opennet.ru/docs/RUS/iptables/

Возник вопрос: какие состояния у пакетов, инициирующих tcp-соединение: SYN, SYN+ACK и ACK? В руководстве написано как-то мутно.

У пакета SYN, как я понимаю, состояние NEW.

Про SYN+ACK в википедии сказано: «с точки зрения критерия conntrack, TCP-пакет SYN/ACK (отвечающий на SYN) — уже часть существующего сеанса, а по определению TCP такой пакет — всего лишь элемент открытия сеанса».
Т.е. у пакета SYN+ACK состояние ESTABLISHED и на клиенте и на сервере? И у пакета ACK тоже?


Берём и проверяем. Открываем порт через nc -l -p, добавляем правила в iptables на --state NEW и --state ESTABLISHED для этого порта на OUTGOING.
Коннектимся извне на этот порт.
Получаем что счётчик ESTABLISHED увеличивается на 1, а NEW остаётся нулём.
Получается первый ответный пакет от сервера (SYN/ACK) имеет состояние ESTABLISHED на сервере, на клиенте он тоже ESTABLISHED.

Все пакета далее ессно тоже ESTABLISHED.

Nao ★★★★★
()

>Т.е. у пакета SYN+ACK состояние ESTABLISHED и на клиенте и на сервере? И у пакета ACK тоже?

Да. NEW — это всегда _первый_ пакет в соединении.

nnz ★★★★
()

Ясно, спасибо.

Mogaba
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.