Поиск по сайту:

Как настроить объединение/объединение сетей (NIC) в Debian Linux


Объединение NIC представляет собой интересное решение для обеспечения избыточности и высокой доступности в вычислительной сфере сервер/рабочая станция. Благодаря возможности иметь несколько сетевых интерфейсных карт администратор может проявить творческий подход к способу доступа к конкретному серверу или создать более крупный канал для прохождения трафика на конкретный сервер.

Читайте также: как настроить сетевое соединение или объединение в Ubuntu

В этом руководстве рассматривается объединение двух сетевых карт в системе Debian. Программное обеспечение, известное как ifenslave, будет использоваться для подключения и отключения сетевых карт от подключенного устройства. Тогда связующее устройство становится сетевым устройством, которое взаимодействует с ядром, но физически использует фактическое устройство сетевого интерфейса (eth0, eth1 и т. д.).

Объединение в Debian Linux

Первое, что необходимо сделать перед настройкой, — это определить тип соединения, которое действительно необходимо реализовать в системе. На момент написания этой статьи ядро Linux поддерживает шесть режимов связывания. Некоторые из этих «режимов» соединения просты в настройке, а другие требуют специальной конфигурации коммутаторов, к которым подключаются каналы.

Понимание режимов связи

Режим связи 0 – Баланс-RR

Этот метод объединения сетевых карт называется «Round-Robin», отсюда и «RR» в названии. При использовании этого метода соединения сетевые пакеты чередуются через каждую из сетевых карт, составляющих связанный интерфейс.

Например, система с eth0, eth1 и eth2 подчинена интерфейсу bond0. Этот интерфейс, если он включен в режиме связи 0, будет отправлять первый пакет eth0, второй пакет - eth1, третий пакет - наш eth0.eth2, а затем вернитесь к eth0 с четвертым пакетом. Именно здесь режим получил свое название «циклический».

Режим связи 1 – активное резервное копирование

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

Режим связи 2 – баланс XOR

В балансном режиме связи XOR связь будет оценивать MAC-адреса источника и назначения, чтобы определить, какой интерфейс отправлять сетевые пакеты. Этот метод выбирает один и тот же интерфейс для данного MAC-адреса и, как следствие, обеспечивает балансировку нагрузки и отказоустойчивость.

Режим связи 3 – Трансляция

В этом методе устройство связи будет передавать данные на все подчиненные интерфейсы, отсюда и название этого конкретного метода связи «broadcast». У этого метода очень мало применений, но он обеспечивает определенный уровень отказоустойчивости.

Режим связи 4 – 802.3ad

Это специальный метод соединения для агрегации каналов, который требует специальной настройки коммутатора, к которому подключается этот конкретный связанный интерфейс. Этот метод соответствует стандартам IEEE для агрегирования каналов и обеспечивает отказоустойчивость и увеличенную пропускную способность.

Режим соединения 5 – балансировка нагрузки передачи

В TLB связь будет получать трафик на подчиненных интерфейсах как обычно, но когда системе необходимо отправить трафик, она определит, какой интерфейс лучше всего передавать данные, основываясь на нагрузке/очереди для каждого из интерфейсы.

Режим связи 6 — адаптивная балансировка нагрузки

В ALB баланс нагрузки будет аналогичен Bond Mode 5, но с добавленной возможностью также загружать и получать баланс.

В зависимости от роли, которую будет играть система, крайне важно выбрать правильный метод соединения. Это руководство будет выполнено на Debian Jessie с двумя сетевыми интерфейсами (eth0 и eth1) и настроено для bond mode 1< или активное резервное копирование.

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

Конфигурация объединения сетевых карт

Первым шагом в этом процессе является получение соответствующего программного обеспечения из репозиториев. Программное обеспечение для Debian называется ifenslave и может быть установлено с помощью apt.

apt-get install ifenslave-2.6

После установки программного обеспечения ядру необходимо будет указать на загрузку модуля связывания как для текущей установки, так и для будущих перезагрузок. Чтобы загрузить модуль один раз, можно использовать утилиту «modprobe» для загрузки модулей ядра.

modprobe bonding

Опять же, чтобы гарантировать, что эта связь активна при перезагрузке системы, необходимо изменить файл «/etc/modules», чтобы сообщить ядру о необходимости загрузки модулей связи при запуске.

echo 'bonding' >> /etc/modules 

Теперь, когда ядро осведомлено о необходимых модулях для связывания сетевых карт, пришло время создать фактически связанный интерфейс. Это делается через файл интерфейсов, который находится по адресу «/etc/network/interfaces» и доступен для редактирования в любом текстовом редакторе.

nano /etc/network/interfaces

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

Первый раздел (красный прямоугольник выше) представляет собой стандартную конфигурацию интерфейса обратной связи. «auto lo» сообщает ядру о необходимости автоматического запуска адаптера при запуске. «iface lo inet Loopback» сообщает системе, что этот интерфейс является интерфейсом обратной связи системы или чаще всего называется 127.0.0.1.

Второй раздел (желтый прямоугольник выше) — это фактический интерфейс связи, который будет использоваться. «auto Bond0» указывает системе автоматически инициализировать связь при запуске системы. 'iface Bond0 inet dhcp' может показаться очевидным, но на всякий случай в этом разделе указано, что интерфейс с именем bond0 должен получать свою сетевую информацию через DHCP. (Протокол динамического управления хостом).

«bond-mode 1» — это то, что используется для определения того, какой режим связи используется этим конкретным связанным интерфейсом. В этом случае режим связи 1 указывает, что эта связь является настройкой активного резервного копирования с опцией «bond-primary», указывающей основной интерфейс, который будет использовать связь. «slave eth0 eth1» указывает, какие физические интерфейсы являются частью этого конкретного связанного интерфейса.

Следующие несколько строк важны для определения того, когда связь должна переключиться с основного интерфейса на один из подчиненных интерфейсов в случае сбоя канала. Miimon — это один из вариантов, доступных для мониторинга состояния связей связи, а другой вариант — использование запросов arp.

В этом руководстве будет использоваться miimon. «bond-miimon 100» сообщает ядру проверять ссылку каждые 100 мс. «bond-downdelay 400» означает, что система будет ждать 400 мс, прежде чем прийти к выводу, что текущий активный интерфейс действительно не работает.

«bond-updelay 800» используется, чтобы указать системе ожидать использования нового активного интерфейса до истечения 800 мс после установления соединения. Примечание относительно updelay и downdelay: оба эти значения должны быть кратны значению miimon, иначе система округлит в меньшую сторону.