iptables 拦截 bridge 包的问题排查
💡
原文中文,约1400字,阅读约需4分钟。
📝
内容提要
在排查网络问题时发现,Linux中的bridge包被iptables的FORWARD链丢弃。通过watch命令监控iptables规则,可以快速定位丢包原因。由于bridge是二层设备,包会经过iptables处理。可以通过设置内核参数关闭此功能,从而解决网络不通问题。
🎯
关键要点
- 在排查网络问题时发现,Linux中的bridge包被iptables的FORWARD链丢弃。
- 通过watch命令监控iptables规则,可以快速定位丢包原因。
- Bridge是一个二层设备,包会经过iptables处理。
- 可以通过设置内核参数关闭此功能,解决网络不通问题。
- 使用命令sysctl -w net.bridge.bridge-nf-call-iptables=0可以阻止bridge包进入iptables。
- 默认情况下,bridge包会进入iptables处理,设置为1时会进入,设置为0时不会。
- Bridge调用iptables的机制可能导致性能问题,后来独立为一个内核模块。
- nftables和iptables-nft也会受到影响,layer violation可能导致复杂问题。
- 新的内核模块nf_conntrack_bridge可以在bridge层实现连接跟踪。
- 关闭功能时可能会遇到模块未加载的问题,导致无法设置参数。
➡️