Объединение 2 интерфейсов внутри сетевого пространства имен Linux

Объединение 2 интерфейсов внутри сетевого пространства имен Linux

Я хотел бы иметь возможность объединить/агрегировать 2 интерфейса внутри сетевого пространства имен Linux.

Конфигурация, с которой я работаю, следующая:

  • В корневом сетевом стеке Linux у меня есть два физических интерфейса Ethernet:
    • eth0
    • eth1
  • И затем у меня есть сетевое пространство имен, имеющее 2 интерфейса:
    • ethX0, подключенный к физическому eth0
    • ethX1, подключенный к физическому eth1

Я хотел бы объединить ethX0 и ethX1 внутри сетевого пространства имен, используя либо 802.3ad, либо active-backup.

Но объединение в Linux работает на уровне физического интерфейса, и я не могу заставить это работать, хотя я не вижу, почему (на уровне фрейма) это не может быть сделано? Я могу создать 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 по двум соединениям, enp1s0f0и enp1s0f1— это необработанные порты, передающие трафик LACP/802.3ad, и bond0.395— это логическая сеть без тегов VLAN. Очевидно, что правильный номер VLAN зависит от вашей конфигурации восходящего потока, это 395всего лишь пример.

Видетьhttps://wiki.debian.org/Склеиваниедля получения подробной информации.

Связанный контент