If you mark a packet in the OUTPUT table, the routing algorithm should re-run and decide the path that was defined in the routing policy, so here is the order of relevant events: Program Send Packet Routing Decision - Go out normal Interface MANGLE: OUTPUT - Mark packet as fwmark 1 Routing Decision - Choose route as usual, but include fwmark 1 in equation. Warning: That is supposedly the behavior, but I have yet to get it working properly.