3.10カーネルを実行するLinuxホストがあり、2つのブリッジインターフェイス(eth0とeth1がbrid00でIPがない)があります。
ブリッジは正常に動作しますが、ブリッジを通過する一部のトラフィックをフィルタリングしたいが、iptables ルールはトリガされません。
有効にしてnet.bridge.bridge-nf-call-iptables
(すべてのトラフィックはIPv4です)、次をnet.ipv4.ip_forward
使用しています。体の発達一致するモジュール。
たとえば、すべてのICMP要求をブロックしてみてください。
iptables -A FORWARD -p icmp -m physdev --physdev-in eth0 --physdev-out eth1 -j DROP
効果はありません。何が起こっているのかについての手がかりはありますか?私はebtablesを使わずにこの種のフィルタリングが可能であると思います(私の将来の計画はいくつかの高度なフィルタリングでnfqueueを使用するので、ブリッジングトラフィックルールをトリガするにはiptablesが必要です)。
ベストアンサー1
カーネル3.10のバグと見なされます(おそらく私のアーキテクチャであるarm64のみ)。 4.xカーネルでうまく動作し、いくつかのカーネルでテストされました。カーネル図とドキュメントによると、カーネル3.xと4.xの間のルーティングは同じで、両方で動作するはずですが、そうではありません。
br_netfilterはカーネル4.xの別々のモジュールなので、modprobe br_netfilter
この機能を有効にする必要があります。