Как пометить исходящий пакет и сделать так, чтобы ip-rule его увидел?

Как пометить исходящий пакет и сделать так, чтобы ip-rule его увидел?

У меня настроена маршрутизация:

# ip rule

0:      from all lookup local
25555:  from all fwmark 0x3000 lookup main
32766:  from all lookup another
32767:  from all lookup default

Я пытаюсь пометить выходные HTTP-запросы (например curl http://ifconfig.io/ip, ) значением 0x3000, чтобы заставить работать 25555:

# iptables -A OUTPUT -t mangle -p tcp --dport 80 -j MARK --set-mark 0x3000

Но это не работает. Что я упускаю?

решение1

Оказывается, для того, чтобы код маршрутизации вообще активировал правило fwmark, необходим маршрут по умолчанию, в противном случае будет получено прямое сообщение «Сеть недоступна» без генерации пакета.

Я обошел это странное правило, добавив маршрут по умолчанию в конец списка правил:

ip route add default via 127.0.0.1 dev lo table 4222222222
ip rule add table 4222222222 priority 4294967295

Связанный контент