Linux ネットワーク名前空間内で 2 つのインターフェースを結合する

Linux ネットワーク名前空間内で 2 つのインターフェースを結合する

Linux ネットワーク名前空間内で 2 つのインターフェースを結合/集約できるようにしたいと考えています。

私が使用している構成は次のとおりです。

  • ルート Linux ネット スタックには、2 つの物理イーサネット インターフェイスがあります。
    • eth0
    • eth1
  • そして、2 つのインターフェースを持つネットワーク名前空間があります。
    • 物理 eth0 にブリッジされた ethX0
    • 物理 eth1 にブリッジされた ethX1

802.3ad または active-backup を使用して、ネットワーク名前空間内で ethX0 と ethX1 を結合したいと思います。

しかし、Linuxのボンディングは物理インターフェースレベルで機能し、これを機能させることができないようですが、なぜ(フレームレベルで)それができないのかわかりません。net-nsを作成できます。以上絆、だが絆ではない以上ネットns。

他のさまざまなアプリケーション用に eth0 と eth1 の物理インターフェイスを個別にアドレス指定できるようにしたいため、ethX0 と ethX1 のみを結合したいため、eth0 と eth1 の物理インターフェイスを結合できません。

これをどうやって行うのか、何かアイデアはありますか?

答え1

私が見つけた答えは、チームを使用することです。最近の優れた Linux API は、ネットワーク名前空間で動作し、ユーザーランドから動作を制御できます。素晴らしいですね!

答え2

これを として使用している人もいるようですteamsが、実際には必要ありません。Ubuntu/Debian システムの場合は、/etc/network/interfaces次のように編集して、代わりにネイティブ カーネル サポートを使用できます。

# The loopback network interface
auto lo
iface lo inet loopback

# 2 x 10 Gbps LACP link:
auto bond0
iface bond0 inet manual
bond-mode 802.3ad
bond-miimon 100
bond-lacp-rate 1
bond-slaves enp1s0f0 enp1s0f1

# 10 Gbps port 1:
auto enp1s0f0
iface enp1s0f0 inet manual
bond-master bond0

# 10 Gbps port 2:
auto enp1s0f1
iface enp1s0f1 inet manual
bond-master bond0

# VLAN 395:
auto bond0.395
iface bond0.395 inet static
address 11.22.33.44
netmask 255.255.255.224
gateway 11.22.33.1
dns-nameservers 11.22.33.1 11.22.33.2
dns-search example.com
vlan-raw-device bond0

これtcpdumpにより、デバッグが必要な部分にアクセスできるようになります。この例では、bond0は 2 つの接続上の VLAN タグ付きの生のトラフィック、enp1s0f0enp1s0f1LACP/802.3ad トラフィックを転送する生のポート、 はbond0.395VLAN タグのない論理ネットワークです。当然、正しい VLAN 番号はアップストリーム構成によって異なります。 は395単なる例です。

見るhttps://wiki.debian.org/ボンディング詳細については。

関連情報