LINUX.ORG.RU
ФорумAdmin

Поясните по iptables match mark


0

1

Сижу читаю конфиги маршрутизации предыдущего админа, не понятны несколько моментов по iptables. Дело в том, что теоретически я знаю, что такое match mark, set mark, а вот до практики дело не доходило.

Есть такие строчки в таблице nat:

Chain POSTROUTING (policy ACCEPT)
SNAT       all  --  172.16.201.172       0.0.0.0/0           mark match !0x1 to:22.33.44.55
SNAT       all  --  10.1.1.5             0.0.0.0/0           mark match !0x1 to:11.22.33.44
SNAT       all  --  192.168.1.0/24       0.0.0.0/0           mark match !0x1 to:11.22.33.44

ЗЫ. 11.22.33.44, 22.33.44.55 - внешние IP-адреса нашего шлюза (два канала). Что делает здесь «mark match !0x1»?

И вот щё интересные строки в mangle:

Chain PREROUTING (policy ACCEPT)
MARK       all  --  0.0.0.0/0            192.168.3.0/24      MARK xset 0x1/0xffffffff 
Они как-то связаны с IPSec. Я точно знаю, что если их не будет, то из сети 192.168.1.0/24 (нашей сети) пакеты в 192.168.3.0/24 (за ipsec) будут идти напрямую через провайдера, а тот их будет отфутболивать с контекстом «ты хто и куда ломишся??». А при наличии данной строки они инкапсулируются в ipsec и идут уже по правильному направлению. Но как ето происходит не совсем понятно.



Последнее исправление: abr_linux (всего исправлений: 1)
Ответ на: комментарий от uspen

MARK xset 0x1
mark match !0x1

здесь восклицательный знак.

uspen ★★★★★
()

MARK устанавливает маркировку пакета в 1, воскл. знак обозначает инвертирование условия, то есть всё, что не промаркировано единицей будет отSNATчено.

А в IPSEC пакеты заворачиваются политиками (их можно посмотреть через ip xfrm pol show), но если они пройдут через SNAT, то они не попадут под политику и не завернутся в тунель.

mky ★★★★★
()
Ответ на: комментарий от uspen

посмотри ip ru l

Абсолютно голая..

0:	from all lookup local 
32766:	from all lookup main 
32767:	from all lookup default

MARK устанавливает маркировку пакета в 1, воскл. знак обозначает инвертирование условия, то есть всё, что не промаркировано единицей будет отSNATчено

А маркировка единицей откуда может братся? Может ето как-то связано с цепочками пакетов? Типа делаем NAT первого пакета, остальные идут за ним. Хотя, наверное, бред несу, iptables по-умолчанию как раз по-моему и смотрит только первый пакет цепочки..

abr_linux
() автор топика
Ответ на: комментарий от abr_linux

А маркировка единицей откуда может братся?

В PREROUTING и выставляется маркировка пакета.

с цепочками пакетов

Это что? Если это поток пакетов, пренадлежащих одному соединению, то, да, в NAT-правилах смотрится только первый пакет соединения, остальные идут по записям в таблице conntrack. А в остальных правилах обрабатываются все пакеты.

mky ★★★★★
()
Ответ на: комментарий от mky

В PREROUTING и выставляется маркировка пакета.

Автоматически? Получается, если пакет не прошёл цепочку PREROUTING, он не имеет mark 0x1 и удовлетворяет условию?

abr_linux
() автор топика
Ответ на: комментарий от abr_linux

если пакет не прошёл цепочку PREROUTING

Он не может не пройти PREROUTING, промаркированы будут все пакеты, которые направляются в 192.168.3.0/24, а все промаркированные не будут натиться ни одним SNAT'ом. Т.е. все что идет в 192.168.3.0/24, уйдет как есть, без нат.

mky одним предложением все сказал, больше трудно что выцепить и предоставленной информации. Ну, если в Advanced Routing пусто, то скорее 11.22.33.44, 22.33.44.55 на одном интерфейсе.

lvi ★★★★
()
Ответ на: комментарий от lvi

то скорее 11.22.33.44, 22.33.44.55 на одном интерфейсе

так и есть :) Кажется, я понимаю немого. Получается, все записи с mark связаны только с ipsec

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