2つのインターフェイス、centos 7を使用する仮想ブリッジのパケットフロー

2つのインターフェイス、centos 7を使用する仮想ブリッジのパケットフロー

centos7では、2つのインターフェイスを持つブリッジを介して流れるパケットを見つけたりキャプチャすることができないため、iptablesを使用してブリッジファイアウォールを作成するのが困難です。インターフェイスまたはブリッジにIPアドレスが設定されていません。この流れが見つからないようです。 PREROUTING INPUT FORWARD OUTPUT POSTROUTING チェーンを確認しました。 ifconfigカウンタは、トラフィックがブリッジインターフェイスを介して流れていることを示していますが、ブリッジ(br0)自体ではありません。

マイブリッジの設定

# cat ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=none
IPADDR=0.0.0.0
PREFIX=24
IPV6_AUTOCONF=no
IPV6INIT=no
ONBOOT=yes
DELAY=0`

アウトバウンドインターフェース

# cat ifcfg-p1p
DEVICE=p1p1
TYPE=Ethernet
HWADDR=XX:XX:XX:XX:XX:XX
ONBOOT=yes
BRIDGE=br0
BOOTPROTO=none
IPV6INIT=no
IPV6_AUTOCONF=no
IPADDR=0.0.0.0
PREFIX=24`

インバウンドインターフェイス

# cat ifcfg-p1p2
DEVICE=p1p2
TYPE=Ethernet
HWADDR=XX:XX:XX:XX:XX:XX
BOOTPROTO=none
ONBOOT=yes
BRIDGE=br0
IPV6INIT=no
IPV6_AUTOCONF=no
IPADDR=0.0.0.0
PREFIX=24`

転送が無効になり(NATなし)、ファイアウォールが無効になり、sysctl.confでipv6 autoconfが無効になります。トラフィックは、p1p2内部マシンからp1p1を介して外部に完全に流れます。

詰まったのに助けてくれてありがとう。

PS:この設定はdebian 5(2.6カーネル)で完全に機能しますが、debian 6、7、8にアップグレードした後、インターフェイスドライバはランダムにカーネルパニックを引き起こします。 IntelカードとBroadcomカードを試してみましたが、結果は同じでした。おそらくbrctlのバグですか?しかし、とにかくcentos7は少なくとも2日間安定して実行されました。

ベストアンサー1

ネットワーク層を混同しています。ところで、iptablesは、ブリッジによって実行される転送タイプであるリンク層で転送されるイーサネットフレームではなく、ネットワーク層で転送されるIPパケットに対して機能します。

ブリッジは、どの MAC アドレスがどのポートに表示されるかをリストに保持することによって機能します。したがって、IP ルーティングを実行せずにトラフィックが p1p から p1p2 に流れることができます。

br0 インターフェイスはブリッジの偽のインターフェイスです。他のインターフェイスのように扱われます。したがって、MACからp1を介してMACからp1p2への非ブロードキャストトラフィックはインターフェイスbr0を通過しません(明らかにブリッジbr0にあり、Linuxは疑似インターフェイスとブリッジに同じ名前を使用しますが、これは残念です)。 )))。

このShorewallサイトの初めにあなたがやろうとしていることの良い概要があります。ページ。デフォルトでは、ブリッジを設定して動作させます。次に、IP転送sysctlを設定します(そうしないとiptablesはまったく機能しません)。 iptablesルールでは、ルールを表現するためにphysdev iptablesモジュールを使用する必要があります(もちろん、この後に他のモジュールをリストできます)。

おすすめ記事