Настройка связывания Centos 7

Обновлено: 21.11.2024

Связной сетевой интерфейс можно использовать для резервирования или требований к более высокой скорости, чем может предложить 1 сетевая карта. Это руководство поможет вам настроить сетевой интерфейс соединения LACP (IEEE 802.3ad). Это требует, чтобы коммутатор вашего сервера был подключен к его настройке соответствующим образом. Если вы не уверены, обратитесь в нашу службу поддержки.

Шаг 1. Войдите с помощью SSH

Войдите как root. Инструкции см. в этой статье, если вы не знаете, как подключиться.

Шаг 2. Отключите NetworkManager

По нашему опыту, NetworkManager довольно непредсказуем и почти бесполезен в серверной среде, и мы предпочитаем отключать NetworkManager. Эти инструкции не будут работать, если NetworkManager включен!

Шаг 3. Настройте серверы имен

Поскольку NetworkManager теперь отключен, вам необходимо настроить серверы имен вручную. Откройте /etc/resolv.conf в своем любимом текстовом редакторе:

Содержимое этого файла должно быть следующим:

Шаг 4. Загрузите связывающий модуль ядра

Шаг 5. Создайте файл конфигурации интерфейса связывания

Создайте новый файл конфигурации с именем ifcfg-bond0 в каталоге /etc/sysconfig/network-scripts. Для этого мы используем наш любимый текстовый редактор nano:

Мы дадим этому файлу следующее содержание:

Замените IP-адрес в строке IPADDR=89.207.131.xx на основной IP-адрес вашего сервера, а GATEWAY=89.207.131.1 на шлюз, соответствующий вашему IP-адресу.

Шаг 6. Обновите файлы конфигурации физического интерфейса

Пришло время обновить файлы конфигурации физического интерфейса. Наш сервер использует enp6s0 и enp7s0 в качестве интерфейсов, поэтому начнем с enp6s0:

Содержимое этого файла:

Мы обновляем enp7s0 следующим образом:

Содержимое этого файла:

Шаг 8. Перезагрузка

Перезагрузите сервер с помощью:

Шаг 9. Проверьте состояние интерфейса связывания

После перезагрузки на вашем сервере должна быть активна связь. Проверить с помощью:

Вывод должен быть примерно таким:

Заключение

Поздравляем, вы настроили связывающий сетевой интерфейс LACP в соответствии со стандартом IEEE 802.3ad.

Связывание (или связывание каналов) – это технология, поддерживаемая ядром Linux и Red Hat Enterprise Linux, которая позволяет администраторам объединять два или более сетевых интерфейса в единый логический "связанный" интерфейс для резервирования или увеличения пропускной способности. Поведение связанных интерфейсов зависит от режима; вообще говоря, режимы предоставляют либо услуги горячего резерва, либо услуги балансировки нагрузки. Кроме того, они могут обеспечивать мониторинг целостности ссылок.

Зачем использовать связывание интерфейсов?

Две важные причины для создания связи интерфейса:
1. Чтобы обеспечить повышенную пропускную способность
2. Чтобы обеспечить резервирование в случае сбоя оборудования

Одним из предварительных условий для настройки соединения является наличие сетевого коммутатора, поддерживающего EtherChannel (это справедливо для почти всех коммутаторов).

Режимы соединения

В зависимости от ваших требований вы можете установить любой из 7 режимов связывания.

< td>Да
Режим Политика Как это работает Отказоустойчивость Балансировка нагрузки< /th>
0 Round Robin пакеты последовательно передаются/принимаются через каждый интерфейс один за другим. Да Да
1 Активное резервное копирование одна сетевая карта активна, а другая спит. Если активная сетевая карта выходит из строя, другая сетевая карта становится активной. поддерживается только в средах x86. Да Нет
2 XOR [исключающее ИЛИ]< /td> В этом режиме MAC-адрес ведомого сетевого адаптера сопоставляется с MAC-адресом входящего запроса, и после установления соединения тот же сетевой адаптер используется для передачи/приема для MAC-адреса назначения. Да
3 Широковещательная рассылка Все передачи отправляются на все ведомые устройства Да Нет
4 Динамическое агрегирование каналов агрегированные сетевые карты действуют как одна сетевая карта, что приводит к более высокой пропускной способности, но также обеспечивает аварийное переключение в случае сбоя сетевой карты. Для динамической агрегации каналов требуется коммутатор, поддерживающий IEEE 802.3ad. Да Да
5 Балансировка нагрузки при передаче (TLB) Исходящий трафик распределяется в зависимости от текущей нагрузки на каждый ведомый интерфейс. Входящий трафик принимается текущим ведомым устройством. Если принимающее ведомое устройство выходит из строя, другое ведомое устройство принимает MAC-адрес отказавшего ведомого устройства. Да Да
6< /td> Адаптивная балансировка нагрузки (ALB) В отличие от агрегации динамических каналов, адаптивная балансировка нагрузки не требует какой-либо конкретной конфигурации коммутатора. Адаптивная балансировка нагрузки поддерживается только в средах x86. Полученные пакеты распределяются по нагрузке посредством согласования ARP. Да Да

Создание сетевого соединения с помощью nmcli

1. Создание интерфейса склеивания

<р>1. Используйте команду подключения nmcli без каких-либо аргументов, чтобы просмотреть существующие сетевые подключения. Вы можете сократить аргумент «connection» до «con». Пример:

<р>2. Включите аргументы «добавить тип соединения» и любую дополнительную информацию для создания сетевого соединения. В следующем примере создается связанный интерфейс с именем bond0, интерфейс определяется как bond0, устанавливается режим «active-backup» и назначается IP-адрес связанному интерфейсу.

Команда nmcli con показывает новое соединение связи.

<р>3. Команда «nmcli con add type bond» создает файл конфигурации интерфейса в каталоге /etc/sysconfig/network-scripts. Например:

<р>4. Команда ip addr показывает новый интерфейс bond0:

2. Создание подчиненных интерфейсов

<р>1. Для каждого интерфейса, который вы хотите связать, используйте команду «nmcli con add type bond-slave». В следующем примере интерфейс ens33 добавляется в качестве ведомого устройства. Команда не включает аргумент con-name, поэтому имя генерируется автоматически. Вы можете установить имя для ведомых интерфейсов с помощью аргумента con-name.

<р>2. В следующем примере интерфейс ens37 добавляется в качестве «подчиненного устройства».

<р>3. Команда nmcli con показывает новые соединения.

<р>4. Команды nmcli con add type bond-slave создают файлы конфигурации интерфейса в каталоге /etc/sysconfig/network-scripts. Например:

<р>5. Команда ip addr включает «SLAVE» для интерфейсов ens33 и ens37, а также включает «master bond0».

3. Активация связи

<р>1. Вы можете использовать команду nmcli для вызова соединений. Сначала поднимите рабов, а затем поднимите интерфейс соединения. Следующие команды вызывают ведомые устройства:

<р>2. Следующая команда вызывает интерфейс bond0:

<р>3. Команда ip addr или команда ip link теперь показывает ведомый и связующий интерфейсы, которые находятся в состоянии UP.

Просмотр информации о соединении сети

<р>1. Каждый сетевой интерфейс содержит каталог в каталоге /sys/class/net. Например:

<р>2. В этом примере существует сетевая связь с именем «bond0». Существует каталог с тем же именем, который содержит информацию о конфигурации для этой связи. Например:

<р>3. Внутри этого каталога находится каталог bonding, содержащий информацию для интерфейса bond0. Например:

<р>4. Есть также каталоги, которые содержат информацию для каждого из ведомых устройств. Например:

<р>5. Ниже приведены некоторые примеры просмотра файлов в каталоге /sys/class/net.

<р>6. Ниже приведен пример просмотра файла /proc/net/bonding/bond0.

Как отключить IPv4 или IPv6 на связанном интерфейсе

Эти шаги необходимы только в том случае, если bond1 не будет использовать адрес ipv4 или ipv6

Объединение в сеть — это метод объединения (объединения) двух или более сетевых интерфейсов в один интерфейс. Это увеличит пропускную способность сети, пропускную способность и даст избыточность. Если один интерфейс не работает или отключен, другой будет поддерживать сетевой трафик в рабочем состоянии. Объединение в сеть можно использовать в ситуациях, когда вам нужны сети с избыточностью, отказоустойчивостью или балансировкой нагрузки.

Linux позволяет нам объединять несколько сетевых интерфейсов в один интерфейс с помощью специального модуля ядра, который называется bonding. Драйвер связывания Linux предоставляет метод объединения нескольких сетевых интерфейсов в один логический «связанный» интерфейс. Поведение связанных интерфейсов зависит от режима; вообще говоря, режимы предоставляют либо услуги горячего резерва, либо услуги балансировки нагрузки. Кроме того, может выполняться мониторинг целостности канала.

Типы сетевого соединения

Согласно официальной документации, здесь указаны типы сетевых режимов соединения.

режим=0 (баланс-рр)

Циклическая политика: это режим по умолчанию. Он передает пакеты в последовательном порядке от первого доступного ведомого до последнего. Этот режим обеспечивает балансировку нагрузки и отказоустойчивость.

mode=1 (активное резервное копирование)

Политика активного резервного копирования: в этом режиме активен только один подчиненный сервер в связке. Другой станет активным, только когда активный ведомый выйдет из строя. MAC-адрес соединения виден извне только на одном порту (сетевом адаптере), чтобы не запутать коммутатор. Этот режим обеспечивает отказоустойчивость.

mode=2 (баланс-исключающее ИЛИ)

Политика XOR: передача на основе [(MAC-адреса источника XOR с MAC-адресом назначения) по модулю счетчика ведомых устройств]. Это выбирает одно и то же ведомое устройство для каждого MAC-адреса назначения. Этот режим обеспечивает балансировку нагрузки и отказоустойчивость.

mode=3 (трансляция)

Политика широковещания: передает все на все подчиненные интерфейсы. Этот режим обеспечивает отказоустойчивость.

режим=4 (802.3ad)

Агрегация динамических каналов IEEE 802.3ad. Создает группы агрегации с одинаковыми настройками скорости и дуплекса.Использует все ведомые устройства в активном агрегаторе в соответствии со спецификацией 802.3ad.

– Поддержка Ethtool в базовых драйверах для получения скорости и дуплекса каждого подчиненного устройства.
– Коммутатор, поддерживающий агрегацию динамических каналов IEEE 802.3ad. Большинству коммутаторов потребуется определенная конфигурация для включения режима 802.3ad.

mode=5 (баланс-tlb)

Адаптивная балансировка нагрузки при передаче: связывание каналов, не требующее специальной поддержки коммутатора. Исходящий трафик распределяется в соответствии с текущей нагрузкой (вычисляемой относительно скорости) на каждом ведомом устройстве. Входящий трафик принимается текущим ведомым устройством. Если принимающее ведомое устройство выходит из строя, другое ведомое устройство получает MAC-адрес отказавшего принимающего ведомого устройства.

– Поддержка Ethtool в базовых драйверах для получения скорости каждого подчиненного устройства.

режим=6 (баланс-альб)

Адаптивная балансировка нагрузки: включает balance-tlb и балансировку нагрузки на прием (rlb) для трафика IPV4 и не требует какой-либо специальной поддержки коммутатора. Балансировка нагрузки на прием достигается путем согласования ARP. Связующий драйвер перехватывает ARP-ответы, отправленные локальной системой на выходе, и перезаписывает исходный аппаратный адрес уникальным аппаратным адресом одного из подчиненных устройств в соединении, так что разные одноранговые узлы используют разные аппаратные адреса для сервера.

В этом удобном руководстве мы посмотрим, как настроить сетевое соединение в CentOS 7 и CentOS 6.5. Хотя он был протестирован на CentOS, он должен работать на версиях RHEL и Scientific Linux 6.x.

Сначала мы настроим сетевое подключение на CentOS 7.

1. Настройка сетевого соединения в CentOS 7

Давайте объединим два сетевых адаптера (enp0s8 и enp0s9) и превратим их в один сетевой адаптер с именем bond0.

Настройка интерфейса Bond0

В CentOS 7 модуль связывания не загружается по умолчанию. Введите следующую команду от имени пользователя root, чтобы включить его.

Вы можете просмотреть информацию о связующем модуле с помощью команды:

Пример вывода:

Войдите как пользователь root.

Создайте файл конфигурации bond0:

Добавьте следующие строки.

Примечание. Здесь BONDING_OPTS описывает режим связывания. В нашем случае мы будем настраивать режим 0 (активный-активный). Сохраните и закройте файл. 192.168.1.50 — это IP-адрес bond0.

Настройка сетевых интерфейсов

Теперь мы должны изменить оба файла конфигурации (enp0s8 и enp0s9), как показано ниже. Во-первых, давайте начнем с enp0s8.

Редактировать файл /etc/sysconfig/network-scripts/ifcfg-enp0s8,

Измените файл, как показано ниже.

Затем отредактируйте файл /etc/sysconfig/network-scripts/ifcfg-enp0s9,

Измените файл, как показано ниже.

Сохраните и закройте файлы.

Теперь активируйте сетевые интерфейсы.

Теперь введите следующую команду, чтобы Network Manager узнал об изменениях.

Перезапустите сетевую службу, чтобы изменения вступили в силу.

Проверка соединения сети

Теперь введите следующую команду, чтобы проверить, запущен ли интерфейс bond0 и работает ли он:

Как видно из приведенного выше вывода, интерфейс bond0 запущен и работает, и он настроен в режиме активного резервного копирования (режим1). В этом режиме активен только один ведомый в связке. Другой станет активным, только когда активный ведомый выйдет из строя.

Чтобы просмотреть список сетевых интерфейсов и их IP-адреса, введите следующую команду:

Настроить несколько IP-адресов для bond0

Я хочу назначить несколько IP-адресов интерфейсу bond0. Что я должен делать? Очень просто: просто создайте псевдоним для интерфейса bond0 и назначьте несколько IP-адресов.

Поясню подробнее. Скажем, например, мы хотим назначить IP-адрес 192.168.1.151 для bond0. Чтобы создать псевдоним для bond0, скопируйте существующий файл конфигурации (ifcfg-bond0) в новый файл конфигурации (ifcfg-bond0:1).

Затем отредактируйте файл псевдонима /etc/sysconfig/network-scripts/ifcfg-bond0:1,

Измените имя устройства и IP-адрес, как показано ниже.

  • bond0:1 – имя устройства.
  • 192.168.1.151 — IP-адрес bond0:1

Сохраните и закройте файл. Перезапустите сетевую службу, чтобы сохраненные изменения вступили в силу.

Теперь выведите список сетевых интерфейсов и их IP-адресов с помощью команды:

Как указано выше, был создан псевдоним bond0:1, и теперь он активен.

2. Настройка сетевого соединения в CentOS 6.5

Настройка интерфейса Bond0

Сначала создадим файл конфигурации bond0, как показано ниже.

Создайте файл конфигурации bond0 в указанном выше каталоге.

Добавьте следующие строки.

Далее мы должны загрузить интерфейс bond0 в ядро. Для этого создайте новый файл /etc/modprobe.d/bonding.conf,

Добавьте в него следующую строку.

Сохраните и закройте файл.

Настройка сетевых интерфейсов

Теперь мы должны изменить оба файла конфигурации (eth1 и eth2), как показано ниже. Во-первых, давайте начнем с eth1.

Редактировать файл /etc/sysconfig/network-scripts/ifcfg-eth1,

Измените файл, как показано ниже.

Затем отредактируйте файл /etc/sysconfig/network-scripts/ifcfg-eth2,

Измените файл, как показано ниже.

Сохраните и закройте файлы.

Введите следующую команду, чтобы загрузить модуль связывания.

Перезапустите сетевую службу, чтобы изменения вступили в силу.

Проверка соединения сети

Теперь введите следующую команду, чтобы проверить, запущен ли интерфейс bond0 и работает ли он:

Чтобы просмотреть список сетевых интерфейсов и их IP-адреса, введите следующую команду:

Согласно приведенному выше выводу, bond0 настроен как главный; eth1 и eth2 настроены как ведомые.

Настроить несколько IP-адресов для bond0

Затем отредактируйте файл псевдонима /etc/sysconfig/network-scripts/ifcfg-bond0:1,

Измените имя устройства и IP-адрес, как показано ниже.

Сохраните и закройте файл. Перезапустите сетевую службу, чтобы сохраненные изменения вступили в силу.

Теперь выведите список сетевых интерфейсов и их IP-адресов с помощью команды:

Соединение создается с помощью модуля ядра соединения и специального сетевого интерфейса, называемого интерфейсом связывания каналов.

7.4.1. Проверьте, установлен ли модуль Bonding Kernel

В Red Hat Enterprise Linux 7 модуль связывания не загружается по умолчанию. Вы можете загрузить модуль, выполнив следующую команду от имени пользователя root: Эта активация не будет сохраняться при перезапуске системы. См. Руководство по администрированию Red Hat Enterprise Linux Kernel для объяснения постоянной загрузки модулей. Обратите внимание, что при правильном файле конфигурации с использованием директивы BONDING_OPTS модуль соединения будет загружаться по мере необходимости, и поэтому его не нужно загружать отдельно.

Чтобы отобразить информацию о модуле, введите следующую команду: Дополнительные параметры команды см. на справочной странице modprobe(8).

7.4.2. Создайте интерфейс связывания каналов

Чтобы создать интерфейс связывания каналов, создайте файл в каталоге /etc/sysconfig/network-scripts/ с именем ifcfg-bondN , заменив N номером для интерфейса, например 0 .

Содержимое файла может основываться на файле конфигурации для любого типа подключаемого интерфейса, например интерфейса Ethernet. Существенные отличия заключаются в том, что директива DEVICE имеет значение bondN , заменяя N номером интерфейса, и TYPE=Bond . Кроме того, установите BONDING_MASTER=yes .

Пример 7.1. Пример файла конфигурации интерфейса ifcfg-bond0

Директива NAME полезна для именования профиля подключения в NetworkManager. ONBOOT указывает, следует ли запускать профиль при загрузке (или, в более общем смысле, при автоматическом подключении устройства).

Важно

Параметры модуля ядра связывания должны быть указаны в виде списка, разделенного пробелами, в директиве BONDING_OPTS replaceable">параметры связывания" в файле интерфейса ifcfg-bondN. не задавайте параметры связывающего устройства в файле /etc/modprobe.d/bonding.conf или в устаревшем файле /etc/modprobe.conf.

Параметр max_bonds не зависит от интерфейса, и его не следует устанавливать при использовании файлов ifcfg-bondN с директивой BONDING_OPTS, так как эта директива заставит сетевые сценарии создавать требуемые интерфейсы связи.< /p>

Для получения дополнительных инструкций и советов по настройке модуля связывания и для просмотра списка параметров связывания см. Раздел 7.7, «Использование связывания каналов».

Обратите внимание: если параметр NM_CONTROLLED="no" отсутствует, NetworkManager может переопределить параметры в этом файле конфигурации.

7.4.3. Создание интерфейсов SLAVE

Интерфейс связывания каналов называется «главным», а интерфейсы, которые необходимо связать, называются «ведомыми». После того, как интерфейс связывания каналов создан, сетевые интерфейсы, которые должны быть связаны вместе, должны быть настроены путем добавления директив MASTER и SLAVE в файлы конфигурации ведомых устройств. Файлы конфигурации для каждого подчиненного интерфейса могут быть почти идентичными.

Пример 7.2. Пример файла конфигурации ведомого интерфейса

Например, если два интерфейса Ethernet объединены в каналы, enp1s0 и enp2s0 , они оба могут выглядеть следующим образом:

В этом примере замените device_name именем интерфейса. Обратите внимание, что если существует более одного профиля или файла конфигурации с параметром ONBOOT=yes для интерфейса, они могут конкурировать друг с другом, и вместо ведомого устройства может быть активирован простой профиль TYPE=Ethernet.

Примечание

Обратите внимание: если параметр NM_CONTROLLED="no" отсутствует, NetworkManager может переопределить параметры в этом файле конфигурации.

7.4.4. Активация связи канала

Обратите внимание, что при редактировании файлов интерфейса для интерфейсов, которые в настоящее время находятся в состоянии «вверх», сначала установите их следующим образом: затем, когда закончите, откройте все ведомые устройства, что откроет связь (при условии, что она не была установлена ​​в положение «вниз»).

Чтобы уведомить NetworkManager об изменениях, введите команду для каждого измененного интерфейса от имени пользователя root: Альтернативно, перезагрузите все интерфейсы: По умолчанию NetworkManager не знает об изменениях и продолжает использовать старые данные конфигурации. Это устанавливается параметром monitor-connection-files в файле NetworkManager.conf. Дополнительную информацию см. на странице руководства NetworkManager.conf(5).

7.4.5. Создание нескольких облигаций

В Red Hat Enterprise Linux для каждого соединения создается интерфейс связывания каналов, включая директиву BONDING_OPTS. Этот метод конфигурации используется для того, чтобы несколько устройств соединения могли иметь разные конфигурации. Чтобы создать несколько интерфейсов связывания каналов, выполните следующие действия:

Создайте несколько файлов ifcfg-bondN с директивой BONDING_OPTS; эта директива заставит сетевые сценарии создавать требуемые интерфейсы связи.

Создайте или отредактируйте существующие файлы конфигурации интерфейса для связывания и включите директиву SLAVE.

Назначьте связываемые интерфейсы, ведомые интерфейсы, интерфейсам связывания каналов с помощью директивы MASTER.

Пример 7.3. Пример нескольких файлов конфигурации интерфейса ifcfg-bondN

В этом примере замените N номером интерфейса связи. Например, чтобы создать две связи, создайте два файла конфигурации, ifcfg-bond0 и ifcfg-bond1 с соответствующими IP-адресами.

Создайте интерфейсы для связывания в соответствии с Примером 7.2, «Пример файла конфигурации ведомого интерфейса» и назначьте их связующим интерфейсам, как требуется, с помощью директивы MASTER=bondN. Например, продолжая пример выше, если требуется два интерфейса на связь, то для двух связей создайте четыре файла конфигурации интерфейса и назначьте первые два с помощью MASTER=bond0, а следующие два с помощью MASTER =связь1 .

Читайте также: