Como marcar o pacote de saída e fazer com que o ip-rule o veja?

Como marcar o pacote de saída e fazer com que o ip-rule o veja?

Eu tenho um roteamento configurado:

# ip rule

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

Estou tentando marcar solicitações HTTP de saída (por exemplo curl http://ifconfig.io/ip) com 0x3000 para fazer 25555 funcionar:

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

Mas não funciona. o que estou perdendo?

Responder1

Acontece que a rota padrão é necessária para que o código de roteamento acione a regra fwmark, caso contrário, há uma "Rede inacessível" direta sem nenhum pacote gerado.

Contornei essa regra estranha adicionando a rota padrão ao lugar nenhum no final da lista de regras:

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

informação relacionada