LINUX.ORG.RU
ФорумAdmin

iptables: nf_conntrack_*, ip_conntrack_*


0

0

Господа знатоки, расскажите, чем отличаются модули nf/ip и conntrack/nat. Какие вообще загрузать для чего надо и т.п. В доке на netfilter.org написано мало и очень мутно. :(

anonymous

Модули nf_conntrack_* (ip_conntrack_* вроде было раньше, до 2.6.16) это расширения контрака, которые позволяют соотносить новое соединение с уже установленным.

Например, у протокола ftp два отдельных соединения --- управляющее (control) и для передачи данных (data). В начале устанавливается control-соединение, потом устанавливается data-соедиенение. Если загружен nf_conntrack_ftp, то первый же пакет устанавливаемого data-соедиенения создаст в контраке запись о себе с состоянием RELATED (соедиение связанное с уже установленным соединением), а не NEW.

Это позволяет при настройке iptables в явном виде разрешить основное соединение (например, ftp-control), а связанные с ним соединения разрешать через правило "-m state --state RELATED -j ACCEPT", так как обычно основное соединение можно идентифицировать по порту/протоколу, а связанные с ним соденения задать по порту/протоколу не получается.

Модули _nat_* позволяют делать NAT для соединений, требующих модификации содержимого пакетов (не только src- или dst-ip адресов), но и данных внутри ip-пакета. Опять же в случае ftp, в режиме ACTIV, клиент просит сервер установит с ним соединение, и передает ему свой ip-адрес и порт, на котором он "слушает". Если клиент находится за NAT'ом (SNAT), то маршрутизатору, осуществляющему NAT, необходимо поменять эти передаваемые данные, чтобы сервер пытался соедиениться с ip-адресом этого маршрутизатора.

Модули _nat_* используют для свой работы модули _conntrack_*.

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