在 Linux 網路命名空間內綁定 2 個介面

在 Linux 網路命名空間內綁定 2 個介面

我希望能夠在 Linux 網路命名空間內綁定/聚合 2 個介面。

我正在使用的配置如下:

  • 在根 Linux 網路堆疊上,我有兩個實體乙太網路介面:
    • 乙太網路0
    • 乙太網路1
  • 然後我有一個有 2 個介面的網路命名空間:
    • 橋接到物理 eth0 的 ethX0
    • 橋接到物理 eth1 的 ethX1

我想使用 802.3ad 或 active-backup 將 ethX0 和 ethX1 綁定在網路命名空間內。

但是 Linux 上的綁定在物理介面層級工作,我似乎無法使其工作,儘管我不明白為什麼(在幀級別)它無法完成?我可以建立一個 net-ns超過是債券,但不是債券超過一個net-ns。

我無法綁定 eth0 和 eth1 實體接口,因為我希望能夠為無數其他應用程式單獨處理它們,但我只想綁定 ethX0 和 ethX1。

知道如何做到這一點嗎?

答案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是兩個連接上帶有 VLAN 標記的原始流量,enp1s0f0enp1s0f1傳輸 LACP/802.3ad 流量的原始端口,bond0.395是沒有 VLAN 標記的邏輯網路。顯然,正確的 VLAN 號碼取決於您的上游配置,這395只是一個範例。

https://wiki.debian.org/Bonding了解詳情。

相關內容