事实上, 我在将昨天研制的云网线部署到服务器上后, 发现服务器的网桥在转发带有IP分组的以太网帧时, 有时会将这些IP分组的源地址修改为服务器的IP地址。经过反复实验, 我发现这些带有IP分组的以太网帧确实匹配到了iptables
的某个MASQUERADE
规则。后经查阅资料, 我了解到, 内核在加载了br_netfilter
模块后, 确实会在转发网桥中的以太网帧时也匹配iptables
, 可能是服务器上别的服务需要。在我的使用场景下, 我需要关闭这个功能, 可以通过如下方式来实现, 特此记录:
可以通过修改sysctl.conf
来关闭, 但会影响服务器其他服务:
net.bridge.bridge-nf-call-arptables=0 net.bridge.bridge-nf-call-ip6tables=0 net.bridge.bridge-nf-call-iptables=0
也可以通过给iptables
和ip6tables
增加如下规则来实现:
-t raw -A PREROUTING -i 网桥设备名称 -j NOTRACK -t nat -A PREROUTING -i 网桥设备名称 -j RETURN -t nat -A POSTROUTING -o 网桥设备名称 -j RETURN
发表评论