ICMP reply packets 不能在PREROUTING chain被set-mark
请问一下为啥ICMP reply packets 不能在PREROUTING chain被set-markiptables -t nat -I PREROUTING -d ! 192.168.0.1-j PNAT --set-mark 0x2511
后面我在PREROUTING链最后和NF_IP_LOCAL_IN打印nfmark值,为啥除了ICMP reply包之外的所有包都被打上了mark?
RAW socket 的包没有经过v4协议栈?
ping socket 创建:
if ((sock = socket(AF_INET, SOCK_RAW, 1))
thanks! 是自己写的ping程序 ? -j PNAT是什么意思? Busybox 的ping回复 2# lokyes
回复 3# lonelyair
PNAT是我们自己写的一个处理链,里面没有处理ICMP 消息。 回复 5# zimang
你的处理链set mark是不是PREROUTING第一个规则,看看是不是被之前的处理过了。 回复 6# lonelyair
-I PREROUTING 是在最前面的,后面的都没有处理。 -I PREROUTING 1才是最前面 回复 8# lonelyair
还是一样的结果。 最好抓包看看没有ICMP包,有没有可能是那个地方已经把包过滤了
另外单独试下打icmp包的mark,-p icmp --icmp-type 0
页:
[1]
2