iptables MARK_weixin_43855786的博客-CSDN博客
内核设置数据包nfmark值的流程分为两步:(1)首先,内核会先用mask预处理数据包原来的nfmark,处理方法是:如果mask的第N位(二进制)为1,那么将数据包的nfmark第的N位(二进制)设置为0 ,nfmark其他的位保持不变(2)接着,再用上面预处理后的nfmark和value做异或操作,得到数据包最后的nfmark值。,然后再与0做异或操作,而0与任何值做异或都是该值本身,所以nfmark的最终值就是经过invbits预处理之后的值,和。,很明显,实际的回复包与期望的回复包的源地