Networking

iptables 不過濾橋接流量

  • December 19, 2017

我有一個執行 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啟用功能。

引用自:https://unix.stackexchange.com/questions/410112