Как настроить сетевое соединение или объединение в RHEL/CentOS 7 — часть 11
Когда системный администратор хочет увеличить доступную пропускную способность и обеспечить избыточность и балансировку нагрузки для передачи данных, функция ядра, известная как сетевое связывание, позволяет выполнить работу экономически эффективным способом.
Узнайте больше о том, как увеличить или ограничить пропускную способность в Linux.
Как ограничить пропускную способность сети, используемую приложениями в Linux, с помощью Tricklehttp://t.co/It2ccJeAih
Через @tecmint pic.twitter.com/nzKwF3ec2O— TecMint.com (@tecmint) 17 сентября 2015 г.
Проще говоря, объединение означает объединение двух или более физических сетевых интерфейсов (называемых подчиненными) в один логический (называемый главным). Если на конкретной сетевой карте (сетевой интерфейсной карте) возникает проблема, связь существенно не страдает, пока другие карты остаются активными.
Подробнее о сетевых связях в системах Linux читайте здесь:
- Сетевое объединение или NiC Bondin в RHEL/CentOS 6/5
- Объединение или объединение сетевых сетевых карт в системах на базе Debian
- Как настроить сетевое соединение или объединение в Ubuntu
Включение и настройка сетевого соединения или объединения
По умолчанию модуль ядра связывания не включен. Таким образом, нам нужно будет загрузить его и обеспечить его постоянство при загрузке. При использовании с опцией --first-time
modprobe предупредит нас, если загрузка модуля не удалась:
modprobe --first-time bonding
Приведенная выше команда загрузит модуль связывания для текущего сеанса. Чтобы обеспечить постоянство, создайте файл .conf
внутри /etc/modules-load.d
с описательным именем, например /etc/modules-load. .d/bonding.conf
:
echo "# Load the bonding kernel module at boot" > /etc/modules-load.d/bonding.conf
echo "bonding" >> /etc/modules-load.d/bonding.conf
Теперь перезагрузите сервер и после его перезапуска убедитесь, что модуль связывания загружается автоматически, как показано на рис. 1:
В этой статье мы будем использовать 3 интерфейса (enp0s3
, enp0s8
и enp0s9
) для создания связи, удобно названной bond0
.
Чтобы создать bond0
, мы можем использовать nmtui, текстовый интерфейс для управления NetworkManager. При вызове без аргументов из командной строки nmtui открывает текстовый интерфейс, который позволяет редактировать существующее соединение, активировать соединение или устанавливать имя хоста системы.
Выберите Редактировать соединение –> Добавить –> Связь, как показано на Рис. 2:
На экране Изменить соединение добавьте подчиненные интерфейсы (в нашем случае enp0s3
, enp0s8
и enp0s9
) и дайте им описательное (профильное) имя (например, NIC #1
, NIC #2
и NIC #3
соответственно).
Кроме того, вам потребуется задать имя и устройство для бонда (TecmintBond
и bond0
на рис. 3 соответственно) и IP-адрес для bond0
введите адрес шлюза и IP-адреса DNS-серверов.
Обратите внимание, что вам не нужно вводить MAC-адрес каждого интерфейса, поскольку nmtui сделает это за вас. Все остальные настройки вы можете оставить по умолчанию. Более подробную информацию см. на рис. 3.
Когда закончите, перейдите в нижнюю часть экрана и выберите ОК (см. рис. 4):
И вы сделали. Теперь вы можете выйти из текстового интерфейса и вернуться в командную строку, где включите вновь созданный интерфейс с помощью команды ip:
ip link set dev bond0 up
После этого вы можете видеть, что bond0
находится в состоянии UP и ему присвоен 192.168.0.200, как показано на рис. 5:
ip addr show bond0
Тестирование сетевого соединения или объединения в Linux
Чтобы убедиться, что bond0
действительно работает, вы можете либо проверить его IP-адрес с другой машины, либо, что еще лучше, просмотреть таблицу интерфейсов ядра в реальном времени (ну, время обновления в секундах задается параметром опция -n
), чтобы увидеть, как сетевой трафик распределяется между тремя сетевыми интерфейсами, как показано на рис. 6.
Опция -d
используется для выделения изменений, когда они происходят:
watch -d -n1 netstat -i
Важно отметить, что существует несколько режимов склеивания, каждый из которых имеет свои отличительные характеристики. Они описаны в разделе 4.5 руководства по сетевому администрированию Red Hat Enterprise Linux 7. В зависимости от ваших потребностей вы выберете тот или иной вариант.
В нашей текущей настройке мы выбрали режим Round-robin (см. рис. 3), который обеспечивает передачу пакетов, начиная с первого подчиненного устройства в последовательном порядке, заканчивая последним подчиненным устройством и начиная с снова первый.
Альтернатива циклического перебора также называется mode 0
и обеспечивает балансировку нагрузки и отказоустойчивость. Чтобы изменить режим связывания, вы можете использовать nmtui, как объяснялось ранее (см. также рис. 7):
Если мы изменим его на Активное резервное копирование, нам будет предложено выбрать подчиненное устройство, которое будет единственным активным интерфейсом в данный момент времени. Если такая карта выйдет из строя, один из оставшихся слейвов займет ее место и станет активным.
Давайте выберем enp0s3
в качестве основного подчиненного устройства, выключим и снова поднимем bond0
, перезапустим сеть и отобразим таблицу интерфейсов ядра (см. рис. 8).
Обратите внимание, что передача данных (TX-OK и RX-OK) теперь осуществляется только через enp0s3
:
ip link set dev bond0 down
ip link set dev bond0 up
systemctl restart network
Альтернативно, вы можете просмотреть связь так, как ее видит ядро (см. рис. 9):
cat /proc/net/bonding/bond0
Краткое содержание
В этой главе мы обсудили, как установить и настроить связывание в Red Hat Enterprise Linux 7 (также работает в CentOS 7 и Fedora 22+). ) с целью увеличения пропускной способности наряду с балансировкой нагрузки и резервированием передачи данных.
Потратив время на изучение других способов объединения, вы освоите концепции и практику, связанные с этой темой сертификации.
Если у вас есть вопросы по этой статье или предложения, которыми вы можете поделиться с остальным сообществом, сообщите нам об этом, используя форму комментариев ниже.