
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 タグ付きの生のトラフィック、enp1s0f0
はenp1s0f1
LACP/802.3ad トラフィックを転送する生のポート、 はbond0.395
VLAN タグのない論理ネットワークです。当然、正しい VLAN 番号はアップストリーム構成によって異なります。 は395
単なる例です。
見るhttps://wiki.debian.org/ボンディング詳細については。