Closed sun363587351 closed 1 week ago
你的意思是在INPUT链里,-j到了自定义的INPUT_direct链,然后在INPUT_direct链中产生了丢包,然后没有跟踪到INPUT_direct这个链吗?
你的意思是在INPUT链里,-j到了自定义的INPUT_direct链,然后在INPUT_direct链中产生了丢包,然后没有跟踪到INPUT_direct这个链吗?
是的 就是这种自定义链 在k8s环境大量存在
请问此issue有考虑吗
有考虑的。。。最近有点忙,还要再等一等
请问相关优化好久考虑一下
你好,我看了下内核代码,这块无法实现。内核是在ipt_do_table或者nft_do_chain来处理链上的规则的。如果存在规则jump到自定义的chain,那么内核还是会在当前函数中进行处理。而nettrace是通过跟踪内核函数来实现的,因此对于nettrace来说,它看不到自定义链的处理过程,因此无法进行跟踪。
好的 感谢 明白了
你可以使用系统自带的功能来跟踪报文在iptables中的处理过程,用法为:
iptables -t raw -I PREROUTING -p icmp -j TRACE
nft monitor
明白 但有的服务器没有使用nftable 还是iptables 这种方式我们试过 效率不高
明白 但有的服务器没有使用nftable 还是iptables 这种方式我们试过 效率不高
这个一般是debug的时候才会有这种需求吧,生产环境中有这种监控具体丢包的链和规则的需求吗?
有的 有时候在k8s生产环境 会莫名端口或者ip不通 因为我们的环境开了防火墙和白名单
好的,我试试在netfilter框架里加个tracepoint,看看kernel社区能不能接受
好的,我试试在netfilter框架里加个tracepoint,看看kernel社区能不能接受
算了,感觉不靠谱
在进行数据包追踪过程发现,可以列出原始的默认的链表信息,但是对于自定义的链表丢弃数据包的时候没有了详细信息,例如可以追踪到INPUT链,但是时间丢弃数据包是在INPUT链下面的INPUT_direct链,输出没有显示到INPUT_direct.