
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