¿Cómo marcar el paquete de salida y hacer que ip-rule lo vea?

¿Cómo marcar el paquete de salida y hacer que ip-rule lo vea?

Tengo un enrutamiento 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

Estoy intentando marcar las solicitudes HTTP de salida (por ejemplo, curl http://ifconfig.io/ip) con 0x3000 para que 25555 funcione:

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

Pero no funciona. ¿Qué me estoy perdiendo?

Respuesta1

Resulta que se requiere una ruta predeterminada para que el código de enrutamiento active la regla fwmark; de lo contrario, hay un mensaje directo "La red es inalcanzable" sin que se genere ningún paquete.

Solucioné esta extraña regla agregando la ruta predeterminada a ninguna parte al final de la lista de reglas:

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

información relacionada