
Я хотел бы иметь возможность объединить/агрегировать 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/Склеиваниедля получения подробной информации.