Networking
iptables 不過濾橋接流量
我有一個執行 3.10 核心的 linux 主機,它有兩個橋接介面: eth0 和 eth1 作為 brid00,沒有 IP。
網橋工作正常,但現在我想過濾一些通過網橋的流量,但 iptables 的規則沒有觸發。
我已經啟用
net.bridge.bridge-nf-call-iptables
(所有流量都是 IPv4)並且net.ipv4.ip_forward
我正在使用physdev模組進行匹配。例如,試圖阻止所有 ICMP 請求
iptables -A FORWARD -p icmp -m physdev --physdev-in eth0 --physdev-out eth1 -j DROP
沒有效果。關於發生了什麼的任何線索?我認為這種過濾在不使用 ebtables 的情況下是可能的(我未來的計劃是在一些高級過濾中使用 nfqueue,所以我需要 iptables 來使用橋接流量觸發規則)。
被認為是核心 3.10 中的一個錯誤(可能只在我的架構 arm64 中)。在 4.x 核心中執行良好,在少數核心中進行了測試。根據核心圖和文件,核心 3.x 和 4.x 之間的路由是相同的,並且應該在兩者中都可以工作,但事實並非如此。
br_netfilter 是核心 4.x 中的一個單獨模組,您必須
modprobe br_netfilter
啟用功能。