トラフィックがある仮想ブリッジから別の仮想ブリッジに移動するように2つの仮想ブリッジを接続する方法は?

トラフィックがある仮想ブリッジから別の仮想ブリッジに移動するように2つの仮想ブリッジを接続する方法は?

etc/network/interfaces で構成された Debian システム、現状

ブリッジ「br0」には2つの物理イーサネットインターフェイスがあります。 eth0(WAN側、ISPモデム/ルーターに接続)eth1(LAN側、物理スイッチに接続)

eth0とeth1の間のトラフィックは、IPtablesファイアウォールとSuricataをIPSに渡します。この設定は現在うまく機能します。

では、Linuxコンテナを介してこの設定に「pi-hole」を追加したいと思います。 Linux コンテナには、仮想イーサネットインターフェイスを追加するには仮想ブリッジが必要です。

だから私は以下を達成したいと思います:

仮想ブリッジ "br0" - eth0 を使用 (WAN)

<-->

仮想ブリッジ「lanbr0」への接続 - eth1(LAN)の使用 - veth0(LXCの仮想イーサネットインターフェース)の使用

これにより、後で必要に応じて「lanbr0」ブリッジにさらにインターフェイスを追加できます。

編集する 次のコマンドを使用してこれを実行できます。 ip link add veth0 type veth Peer name veth1

次に、veth0 を br0 に追加し、veth1 を lanbr0 に追加し、すべてのインターフェイスをインポートし、eth1 を br0 から lanbr0 に移動します。

しかし、/etc/network/interfacesを介してこれをどのように実行しますか? (下図のように起動中にロードしますか?)

ベストアンサー1

仮想デュアルインターフェイスを具体的に扱う規定はありませんtype veth。したがって、いくつかのはんだ付けは主に以下を使用して行われた。pre-upオプション。ここで、veth0およびを維持しましたが、別の名前(たとえば、および)をveth1選択することを検討する必要があります。これは、指定されていない場合(たとえば)デフォルトで選択された名前であり、競合する可能性があるためです。veth-br0veth-lanbr0ip link add type veth

vethインターフェースの場合:

iface veth0 inet manual
        pre-up ip link add veth0 type veth peer name veth1 || :
        hwaddress 02:00:00:01:00:00

iface veth1 inet manual
        pre-up ip link add veth1 type veth peer name veth0 || :
        hwaddress 02:00:00:01:00:01

これにより、両方のインターフェイスのいずれかを起動したときに両方のインターフェイスがアクティブになります。|| :ピアインターフェイスはすでに「その他」インターフェイスによって設定されているため、ここでは失敗しません。内部状態の理由から、ifupどちらか一方を上げると、もう一方が現れても、最終的には両方が発生するはずです。これは目的の用途に応じてオプションでありhwaddress、とにかく他の正しい値に設定できます。ブリッジは最初のスレーブインターフェイスのMACアドレスを取得します。

さて、橋で試してみてください。すべての設定を提供するわけではありません(実際には提供していないため)。veth関連部分のみを提供します。私が推測できないものと私がXXXXどこに置いたかを調整する必要があります...inet XXXX inet manual inet staticinet dhcp

auto br0
iface br0 inet XXXX
    pre-up ifup veth0
    bridge_ports eth0 veth0        
    ...

auto lanbr0
iface lanbr0 inet XXXX
    pre-up ifup veth1
    bridge_ports veth1 eth1
    address xx.xx.xx.xx
    netmask 255.255.255.0
    ...

(注)ifup vethX内部にコマンドを追加しました。それ以外の場合は、インターフェイスが存在しないと文句を言い、このインターフェイスなしでブリッジを起動して完了したと見なします。すでに論理的な(状態を意味する)インターフェイスを呼び出すことはエラーではないため、ここでは|| :使用する必要はありません。ifupdown

欠落している部分が完成したら、その部分を別の設定ファイル/etc/network/interfaces.d(または設定ファイルではない/etc/network/interfaces)に入れると機能します。

最初に機能しない場合は、すべてのインターフェイスを論理的に終了し(論理的にはを使用することを意味しますifdown)、もう一度やり直してください。これは、誤った論理状態が原因で一部のインターフェイスが正しく(再)構成されていないためです。

また、NetworkManagerなどの他のネットワークマネージャと対話することもできます。特定のインターフェイスを無視することを許可するオプションがありますが、これはこの回答の範囲外です。

おすすめ記事