Назад | Перейти на главную страницу

Связывание balance-xor (режим 2) с использованием только одного сетевого интерфейса

Я использую Ubuntu 16.04.6 LTS и 2 связанных сетевых интерфейса со следующей конфигурацией:

auto eno0
iface eno0 inet manual
        bond-master bond0

auto eno1
iface eno1 inet manual
        bond-master bond0

auto bond0
iface bond0 inet static
        bond-slaves none
        bond-miimon 100
        bond-mode balance-xor
       address [IP]
       netmask [IP]
       network [IP]
       broadcast [IP]
       gateway [IP]
       # dns-* options are implemented by the resolvconf package, if installed
       dns-nameservers 8.8.8.8 8.8.4.4

Сеть работает, но трафик идет почти исключительно только через один интерфейс:

       eno0                eno1               bond0
 KB/s in  KB/s out   KB/s in  KB/s out   KB/s in  KB/s out
 3436.42  100942.1     11.59      0.00   3447.97  100929.5
 3450.31  98191.30     10.32      0.00   3461.29  98208.12
 3426.57  94762.22      9.16      0.00   3436.65  94754.99
 3579.97  101313.8     10.66      0.00   3588.80  101302.2
 4029.16  97184.86      9.93      0.00   4038.42  97196.67
 3225.66  90987.53     13.48      0.00   3239.43  90991.49

Когда я отключаю eno0, трафик переходит на eno1. Когда я подключаю его обратно, он возвращается к eno0. AFAIK, трафик должен более или менее равномерно распределяться между двумя интерфейсами, поскольку он генерируется тысячами пользователей.

Есть идеи, что может быть не так?

РЕДАКТИРОВАТЬ:

cat /sys/class/net/bond0/bonding/mode
balance-xor 2

Если и eno0, и eno1 подключены к одному и тому же коммутатору, или между двумя коммутаторами существует какая-то связь. Затем вам необходимо настроить на коммутаторе статическое агрегирование.

Это связано с тем, что коммутатор действует как устройство уровня 2, он автоматически записывает сопоставление между MAC-адресами и портами (по умолчанию каждый MAC-адрес может быть сопоставлен только с одним портом за раз). Но в режиме 2 все сетевые адаптеры под bond0 используют один и тот же MAC-адрес.

Если ваш коммутатор поддерживает LACP, рассмотрите возможность использования 802.3ad (режим 4). В противном случае, если нет разрешения на конфигурацию коммутатора, можно использовать только режим 1, 5 или 6.