Здравствуйте,
Сейчас пытаюсь немного поиграться с роутером и статическими роутами пакетов. Вот тут тема с проблемой http://www.dd-wrt.com/phpBB2/viewtopic.php?t=310871
Нужно все пакеты с определенного хоста на определенные порты помечать меткой.
Собственно вот такое правило написал
iptables -A PREROUTING -t mangle -s 192.168.0.113 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 3
В таблице mangle появилось данное правило
MARK tcp -- 192.168.0.113 0.0.0.0/0 multiport dports 80,443 MARK set 0x3
Но когда пытаюсь просмотреть активные соединения в ядре, то везде метка 0.
Проверяю с помощью команды
cat /proc/net/nf_conntrack
Собственно несколько вопросов.
- 1. Когда нужно использовать CONNMARK --save-mark ? Насколько я понимаю это используется для того чтобы для всего конекшена (сессии установленной) устанавливать метку такую же как на пакеты ?
- 2. Нужно ли вместе использовать CONNMARK & MARK ? Пробовал добавить еще правило такое после первого это поменяло ситуацию. Появились вот такие конекшены.
iptables -A PREROUTING -t mangle -s 192.168.0.113 -p tcp -m multiport --dports 80,443 -j CONNMARK --save-mark
Поэтому насколько я понимаю мое первое утверждение было верным. Тогда как их правильно использовать и смысл от такого использования какой в отличии от обычного MARK ?ipv4 2 tcp 6 3555 ESTABLISHED src=192.168.0.113 dst=104.27.148.171 sport=57720 dport=80 packets=6 bytes=1536 src=104.27.148.171 dst=193.151.106.238 sport=80 dport=57720 packets=5 bytes=752 [ASSURED] mark=3 use=2
- 3. Один из главных вопросов с учетом предыдущих. Как дебажить маркирование это ? Пробовал на виртуалке с Centos 7 проверить правила, чтобы исключить ошибку в самих правилах, но там нет замапенного файла из памяти /proc/net/nf_conntrack. Пробовал ss утилиту, но не нашел как там метки отобразить.
Буду благодарен за разъяснение данных вопросов.
Спасибо