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层实现连接跟踪。
  • 关闭功能时可能会遇到模块未加载的问题,导致无法设置参数。
➡️

继续阅读