Debian 11 で VLAN とブリッジとバインディング

Debian 11 で VLAN とブリッジとバインディング

Linuxで設定しようとしています。アクティブバックアップバインディング(2つの物理インターフェイスeth2とeth3、1つを使用)そしてまたVLAN 2個、内部ブリッジに接続します。 2つの接続オプションがあり、どちらも機能します。

  1. 最初の方法はうまく機能し、シンプルに見えますが、すべてのVLANは単一の物理インターフェイス(低帯域幅)を介してルーティングされます。
  2. 2つ目は問題がありますが、eth2を介して1つのVLANをルーティングし、eth3を介して2つ目のVLANをルーティングできるため(フォールトトレランスの大きい帯域幅)、2つ目を好みます。
  • bond-mode 4 = 802.3ad私はAKA LACP(サーバーが他のCiscoスイッチに接続されており、これらの設定に関連するいくつかの問題を聞いたことがある)を望まないのでbond-mode active-backup十分です。
# 1. Two NICs agregated to one bonding, and then separate VLANS from bonding interface: 

eth2           bond1.10  - xenbr10
     > bond1 <
eth3           bond1.15 - xenbr15


# 2. VLANs separated form physical NIC, then aggregate to separate binding interfaces.

       eth2.15 ...
eth2 <
       eth2.10
                > bond10  - xenbr10
       eth3.10
eth3 <
       eth3.15 ...

私はDebian 11、2つのネットワークインターフェース、パッケージがインストールされているサーバーを持っていますvlan。 (テストストアの2.13バージョンでは、次の理由でbridge-utilsifenslaveこの問題2.12から始まる)。モジュール8021qbondingシステムにロードされます。

質問1:ここで最初の接続オプションはベストプラクティスですか?なぜ?インターネット上で見つけることができるほとんどの(またはおそらくすべて)チュートリアルは、最初に接続することに関するものなので尋ねます。Debian Wiki)

オプション1

これはうまく機能し、コンソールまたは設定ファイルを介して実行できます。欠点は、両方のVLANが常に単一のインターフェイスを使用して送信されることです。私の現在のアイテム/etc/network/interfaces(重要ではない要素が削除されました)

iface eth2 inet manual
iface eth3 inet manual

auto bond1
iface bond1 inet manual
    bond-slaves eth2 eth3
    bond-mode active-backup
    bond-miimon 100
    bond-downdelay 200
    bond-updelay 200

iface bond1.10 inet manual
    vlan-raw-device bond1
iface bond1.15 inet manual
    vlan-raw-device bond1

auto xenbr10
iface xenbr10 inet static
    address 1.2.3.4/24
    bridge_ports bond1.10

システムを再起動した後、この構成は正常に機能しますが、2番目のオプションを構成して使用したいと思います。

オプション2:シェルで実行、構成ファイルでは実行できない

コマンドラインからこれを設定できます。

ifconfig eth2 up
ifconfig eth3 up
#setting up VLANs
ip link add link eth2 name eth2.10 type vlan id 10
ip link add link eth3 name eth3.10 type vlan id 10

#creating bonding interface with 2 slaves NIC
ip link add name bond1 type bond mode active-backup
ip link set dev eth2.10 down
ip link set dev eth3.10 down
ip link set master bond10 dev eth2.10
ip link set master bond10 dev eth3.10

ip link set up dev bond10
ip link set dev eth2.10 up
ip link set dev eth3.10 up

### Bridge + bonding
brctl addbr xenbr10
brctl addif xenbr10 bond10

ip addr add 1.2.3.4/24 dev xenbr10
ip link set dev xenbr10 up

ネットワークが稼働中です。

cat /proc/net/bonding/bond10
Ethernet Channel Bonding Driver: v5.10.0-12-amd64

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth2.10
MII Status: up
(..)

Slave Interface: eth2.10
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: (..)

Slave Interface: eth3.10
MII Status: up
(..)

ただし、プロフィールを作成して永久に作成することはできません。私はこのような多くのオプションを試しましたが、運がありません。eth2.10インターフェイスを一部のインターフェイスに直接接続するとxenbr10機能します。

iface eth2.10 inet manual
    vlan-raw-device eth2
iface eth3.10 inet manual
    vlan-raw-device eth3
    bond-master bond10 #It doesn't change nothing, for testing

auto bond10
iface bond10 inet manual
    bond-slaves eth2.10 eth3.10
    #bond-slaves none
    bond-mode active-backup
    bond-miimon 100
    bond-downdelay 200
    bond-updelay 200

auto xenbr10
iface xenbr10 inet static
    address 1.2.3.4/24
    bridge_ports bond1.10

システムの再起動後、通常、次のエラーが発生します。

ifup[686]: eth2.10 を bond10 に依存させることはできません。 bond10 準備ができており、ボンドインターフェイスはありますか?

質問2:この構成にはどのような問題がありますか?頑張った

  • eth2.10 構成を bond10 構成より高くまたは低く設定し、
  • bond-master bond10eth2.10およびbond-slaves nonebond10設定セクションのエントリを使用してください。
  • 部分使用bond-slaves eth2.10 eth3.10項目bond10
  • 使用auto eth2.10

答え1

一日中検索してテストしたところ、2つの解決策が見つかりました。最初の構成はエレガントではないかもしれませんが、うまくいきます。

# Using default ifupdown on Debian 11:
# Set up NIC and NIC's alias with VLAN:
auto eth2
iface eth2 inet manual
    post-up ip link add link eth2 name eth2.10 type vlan id 10
    post-up ip link add link eth2 name eth2.15 type vlan id 15
auto eth3
iface eth3 inet manual
    post-up ip link add link eth3 name eth3.10 type vlan id 10
    post-up ip link add link eth3 name eth3.15 type vlan id 15

auto bond533
iface bond533 inet manual
    bond-slaves eth2.533 eth3.533
    bond-mode active-backup
# (...)

ABのコメントありがとうございます(協会)を使用してより良いソリューションを見つけましたifupdown2。注:このパッケージのインストール中に(以前のバージョンをアンインストールifupdown)、再起動するまでネットワークが切断されました(テストを経ずにネットワークを再起動するだけで十分かもしれません)。

# After installing ifupdown2:
# No need to set up physical NIC or VLAN interface!
#iface eth2.10 inet manual
#   vlan-raw-device eth2
#iface eth2.533 inet manual
#   vlan-raw-device eth2

#Set up bonding and brige (the same as with ifupdown)
auto bond533
iface bond533 inet manual
    bond-slaves eth2.533 eth3.533
    bond-mode active-backup
# (...)

このように単純な構成が正しく動作することは少し奇妙です。ifupdown2必要なボンディングされたスレーブネットワークインターフェイス(またはVLAN)を事前設定しなくても設定できるようです。

私の設定は次のページに基づいています。 https://docs.nvidia.com/networking-ethernet-software/knowledge-base/Configuration-and-Usage/Network-Interfaces/Compare-ifupdown2-with-ifupdown/

関連情報