问题描述
拓扑是
physical x86 server -> linux bridge -> docker(on same x86 server)
流量如下
client -> server -> bridge -> docker
我们有一个内核模块(通过_nf_register_hook
注册),该模块具有nf个钩子,如下所示:
.hook = my_hook,#if LINUX_VERSION_CODE < KERNEL_VERSION(4,9,0)
.owner = THIS_MODULE,#endif
.pf = PF_INET,.hooknum = NF_INET_LOCAL_IN,.priority = NF_IP_PRI_FirsT,
我们发现了一个奇怪的情况(模块已在服务器上加载):
- 对于Linux 3.10,
my_hook
函数可以很好地处理到docker的流量, - 对于Linux 4.19
my_hook
不会触发到docker的流量。
顺便说一句,我们启用
net.bridge.bridge-nf-call-iptables = 1
仅用于记录目的。
看起来与名称空间相关,但是_nf_register_hook
循环所有名称空间。
有人可以给我一些建议吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)