ファイアウォール(iptables)がブリッジ(brctl)を妨げるのはなぜですか?

ファイアウォール(iptables)がブリッジ(brctl)を妨げるのはなぜですか?

br0両方のインターフェイスに「接続された」ブリッジを設定しました。

  • eth0、私の物理インターフェイスは物理LANに接続されています。
  • vnet0、KVM仮想インターフェイス(Windows VMに接続)

フォワードチェーンにファイアウォールルールがあります。

iptables -A FORWARD -j REJECT

これで有効な唯一のpingは、VMからホストに送信することです。

このbr0インターフェイスは私のホストのIPアドレスを保持します。ホストの観点から見ると、eth0どのIPも「所有」しません。vnet0Windows VM には固定 IP 構成があります。

iptablesルールを変更するとACCEPT(またはより制限的なルールを使用するとiptables -A FORWARD -o br0 -j ACCEPT)、すべてがうまくいきます! (つまり、仮想マシンで任意のLANコンピュータをpingでき、その逆も同様です。)

すべてのIP転送カーネルオプションが無効になります(例net.ipv4.ip_forward = 0:)。

それでは、NetFilterファイアウォールはアクティブでないことをどのようにブロックしますか?

また、VM-LANトラフィックはおよびのみをeth0示す必要がありますvnet0。しかし、「有効な」転送トラフィックを許可するようです-o br0(再確認はしませんが)。

ベストアンサー1

これコメントStéphane Chazelasは答えのヒントを提供します。

~によるとBridge-nf FAQbridge-nf を使用すると、iptables、ip6tables、または arptables を使用してブリッジ トラフィックを表示できます。

カーネルバージョン2.6.1から5つあります。システム制御項目bridge-nf モーションコントロールの場合:

  • bridge-nf-call-arptables- ブリッジされたARPトラフィックをFORWARD arptableチェーンに転送します。
  • bridge-nf-call-iptables- ブリッジされたIPv4トラフィックをiptablesに転送するチェーン。
  • bridge-nf-call-ip6tables- ブリッジされたIPv6トラフィックをip6tablesチェーンに転送します。
  • bridge-nf-filter-vlan-tagged- ブリッジされた VLAN タグ付き ARP/IP トラフィックを arptables/iptables に転送します。
  • net.bridge.bridge-nf-filter-pppoe-tagged- ブリッジされたpppoeタグ付きIP / IPv6トラフィックを{ip、ip6}テーブルに転送します。

次のコマンドを使用して、netfilter ファイアウォールのブロックを無効にできます。

# sysctl -w net.bridge.bridge-nf-call-iptables=0
# sysctl -w net.bridge.bridge-nf-call-ip6tables=0

おすすめ記事