Как настроить NIC teaming (bonding) используя nmcli в CentOS
Bonding - это технология, поддерживаемая ядром Linux и Red Hat Enterprise Linux, которая позволяет объединить два и более сетевых интерфейса в один логический интерфейс для избыточности или увеличения пропускной способности.
Существует несколько режимом работы при организации NIC teaming.
Режим | Тип | Описание | Fail Tolerance | Balancing |
---|---|---|---|---|
0 | Round Robin | Пакеты последовательно отправляются/принимаются через каждый интерфейс один за другим. | - | + |
1 | Active Backup | Активен один интерфейс, другой находится в standby. Если активный интерфейс выходит из строя или отключается, другой интерфейс становится активным. | + | - |
2 | XOR [exclusive OR] | В этом режиме MAC-адрес вспомогательного интерфейса сопоставляется с MAC входящего запроса, и как только это соединение установлено, тот же интерфейс используется для отправки/получения для MAC-адреса назначения. | + | + |
3 | Broadcast | Происходит передача во все объединенные интерфейсы, тем самым обеспечивая отказоустойчивость. Рекомендуется только для использования MULTICAST трафика. | + | - |
4 | Dynamic Link Aggregation | Динамическое объединение одинаковых портов. В данном режиме можно значительно увеличить пропускную способность входящего так и исходящего трафика. Для данного режима необходима поддержка и настройка коммутатора/коммутаторов. | + | + |
Создаём bonding интерфейс
Используем команду nmcli connection
без каких-либо аргументов для просмотра существующих сетевых подключений (аргумент connection
можно сократить до con
).
1 | # nmcli con |
Создаём связанный интерфейс с именем bond0
, определяем интерфейс как bond0
, устанавливаем режим «Active Backup» и назначаем IP-адрес для связанного интерфейса.
1 | # nmcli con add type bond con-name bond0 ifname bond0 mode active-backup ip4 172.16.1.7/24 |
Проверяем создание интерфейса:
1 | # nmcli con |
Создаём вспомогательные интерфейсы
Для каждого интерфейса, который хотим связать, используем команду nmcli con add type bond-slave
.
Команда не содержит аргумента con-name
, поэтому имя генерируется автоматически. Добавим интерфейсы eth0
и eth1
в качестве вспомогательных.
1 | # nmcli con add type bond-slave ifname eth0 master bond0 |
1 | # nmcli con add type bond-slave ifname eth1 master bond0 |
Команда nmcli con add type bond-slave
автоматически создаёт необходимые файлы конфигурации интерфейса в директории /etc/sysconfig/network-scripts
.
Активируем bonding
Сперва поднимаем вспомогательные интерфейсы.
1 | # nmcli con up bond-slave-eth0 |
Затем поднимаем логический интерфейс bond0
.
1 | nmcli connection up bond0 |
Проверяем статус bonding-интерфейса:
1 | cat /proc/net/bonding/bond0 |
Для отключения IPv6 на bonding-интерфейсе используем команду nmcli connection modify bond0 ipv6.method ignore