iptables/netfilter 的四表五链估计大家都很熟悉,那么在output点和路由之间的关系,大家都知道是先过路由,然后才会到output,但是这么说又不是很精准。
如果是路由在先,那么在output的mangle对数据包打mark为什么又会命中策略路由走到相应的路由表去呢?是不是有点矛盾
事实上,确实是先路由才会到output,但是如果在output点报文有了改动,那么就还会重新查找一次路由。
--看看linux内核源码 这个流程就非常非常清晰了
iptable_mangle_hook函数,在output点的逻辑是不一样的
ipt_mangle_out函数