В компьютерные сети, термин агрегация каналов относится к различным методам объединения (агрегирования ) нескольких сетевых подключений параллельно для увеличения пропускной способности сверх что может выдержать одно соединение, и обеспечить избыточность на случай отказа одного из каналов. Группа агрегации каналов (LAG) - это совокупность объединенных вместе физических портов.
Другие общие термины, используемые для описания метода, включают транкинг, объединение, объединение, формирование каналов или объединение . Эти общие термины охватывают не только стандарты, не зависящие от производителя, такие как Link Aggregation Control Protocol (LACP) для Ethernet, определенный в IEEE 802.1AX или предыдущей версии. IEEE 802.3ad, а также различные проприетарные решения.
Агрегирование каналов увеличивает пропускную способность и отказоустойчивость соединения Ethernet ции.
Требования к полосе пропускания не масштабируются линейно. Пропускная способность Ethernet исторически увеличивалась в десять раз с каждым поколением: 10 мегабит / с, 100 Мбит / с, 1000 Мбит / с, 10 000 Мбит / с. Если кто-то начал выходить за пределы предельной пропускной способности, то единственным выходом был переход к следующему поколению, что могло быть непомерно дорогостоящим. Альтернативное решение, предложенное многими производителями сетей в начале 1990-х годов, заключается в использовании агрегации каналов для объединения двух физических каналов Ethernet в один логический канал. Большинство этих ранних решений требовали ручной настройки и одинакового оборудования на обеих сторонах соединения.
В типичном соединении порт-кабель-порт существует три единых точки отказа. Как в обычной конфигурации «компьютер-коммутатор», так и в конфигурации «коммутатор-коммутатор», сам кабель или любой из портов, к которым он подключен, может выйти из строя. Можно установить несколько логических соединений, но многие из протоколов более высокого уровня не были разработаны для полного переключения при отказе. Объединение нескольких физических соединений в одно логическое соединение с использованием агрегации каналов обеспечивает более устойчивую связь.
Сетевые архитекторы могут реализовать агрегирование на любом из трех нижних уровней модели OSI. Примеры агрегации на уровне 1 (физический уровень ) включают в себя линию питания (например, IEEE 1901 ) и беспроводную сеть (например, IEEE 802.11). устройства, сочетающие несколько частотных диапазонов. Уровень 2 OSI (уровень канала передачи данных, например, кадр Ethernet в локальных сетях или многоканальный PPP в глобальных сетях, Ethernet MAC-адрес ) обычно происходит через порты коммутатора, которые могут быть как физическими, так и виртуальными, управляемыми операционной системой. Агрегация на уровне 3 (сетевой уровень ) в модели OSI может использовать циклическое планирование, хеш-значения, вычисленные из полей в заголовке пакета, или комбинацию этих двух методов.
Независимо от уровня, на котором происходит агрегация, можно сбалансировать сетевую нагрузку по всем каналам. Однако, чтобы избежать доставки вне очереди, не все реализации используют это преимущество. Большинство методов также обеспечивают аварийное переключение.
Объединение может происходить так, что несколько интерфейсов совместно используют один логический адрес (т.е. IP) или один физический адрес (т.е. MAC-адрес), или позволяет каждому интерфейсу иметь свой собственный адрес. Первый требует, чтобы на обоих концах канала использовался один и тот же метод агрегирования, но имеет преимущество в производительности по сравнению со вторым.
Связывание каналов отличается от балансировки нагрузки тем, что балансировка нагрузки разделяет трафик между сетевыми интерфейсами на основе сетевого сокета (уровень 4), в то время как связывание каналов подразумевает разделение трафика между физическими интерфейсами на более низком уровне, на основе пакета (уровень 3) или канала данных (уровень 2).
К середине 1990-х годов большинство производителей сетевых коммутаторов включили возможность агрегирования в качестве собственного расширения для увеличения пропускной способности между своими коммутаторами. Каждый производитель разработал свой метод, что привело к проблемам совместимости. Группа IEEE 802.3 взяла на себя исследовательскую группу для создания стандарта взаимодействия канального уровня (т.е. охватывающего как физический, так и канальный уровни) на собрании в ноябре 1997 года. Группа быстро согласилась включить функцию автоматической настройки, которая также добавит избыточности. Это стало известно как протокол управления агрегацией каналов (LACP).
Начиная с 2000 г., в большинстве схем объединения гигабитных каналов используется стандарт IEEE Link Aggregation, который ранее был пунктом 43 IEEE 802.3 стандарт, добавленный в марте 2000 г. рабочей группой IEEE 802.3ad. Практически каждый производитель сетевого оборудования быстро принял этот общий стандарт над своими собственными стандартами.
В отчете целевой группы по техническому обслуживанию 802.3 для проекта 9-й редакции в ноябре 2006 г. отмечалось, что некоторые уровни 802.1 (например, 802.1X безопасность) были расположены в стеке протоколов ниже Link Aggregation, который был определен как подуровень 802.3. Чтобы устранить это несоответствие, была сформирована целевая группа 802.3ax (802.1AX), что привело к официальной передаче протокола группе 802.1 с публикацией IEEE 802.1AX-2008 3 ноября 2008 года.
В рамках спецификации IEEE протокол управления агрегацией каналов (LACP) предоставляет метод для управления объединением нескольких физических портов вместе для формирования единого логического канала. LACP позволяет сетевому устройству согласовывать автоматическое объединение ссылок, отправляя пакеты LACP партнеру (напрямую подключенному устройству, которое также реализует LACP).
Возможности LACP и практические примеры
LACP работает, отправляя фреймы (LACPDU) по всем каналам, на которых включен протокол. Если он обнаруживает устройство на другом конце ссылки, на котором также включен LACP, он также независимо отправляет кадры по одним и тем же каналам, позволяя двум устройствам обнаруживать множественные ссылки между собой, а затем объединять их в одну логическую ссылку. LACP можно настроить в одном из двух режимов: активном или пассивном. В активном режиме он всегда будет отправлять LACPDU по настроенным ссылкам. Однако в пассивном режиме он реагирует только как «говорить, когда к нему обращаются», и поэтому его можно использовать как способ управления случайными петлями (пока другое устройство находится в активном режиме).
В дополнение к подстандартам агрегации каналов IEEE существует ряд проприетарных схем агрегации, включая Cisco EtherChannel и Протокол агрегации портов, Juniper Aggregated Ethernet, AVAYA Multi-Link Trunking, Split Multi-Link Trunking, Routed Split Multi-Link Trunking и Distributed Split Multi-Link Trunking, ZTE's " Smartgroup "," Eth-Trunk "Huawei или Speedify Connectify. Большинство высокопроизводительных сетевых устройств поддерживают агрегацию каналов и программные реализации, такие как пакет lagg * BSD, драйвер связывания Linux, Solaris dladm aggr и др. - также существуют для многих операционных систем.
Драйвер связывания Linux предоставляет метод для объединения нескольких контроллеров сетевого интерфейса (NIC) в единый логический объединенный интерфейс из двух или более так называемых (NIC) ведомые устройства. Большинство современных дистрибутивов Linux поставляются с ядром Linux, в которое интегрирован драйвер связывания Linux в виде загружаемого модуля ядра и ifenslave (if = [network] интерфейс) предустановленная программа управления пользовательского уровня. Дональд Беккер запрограммировал оригинальный драйвер связывания для Linux. Он стал использоваться с патчами Beowulf cluster для ядра Linux 2.0.
Режимы для связующего драйвера Linux (режимы агрегации сетевого интерфейса) предоставляются в качестве параметров модулю связывания ядра во время загрузки. Они могут быть указаны как аргументы командной строки для команды insmod или modprobe, но обычно указываются в файле конфигурации для конкретного дистрибутива Linux. Поведение единого логического связанного интерфейса зависит от заданного им режима связующего драйвера. Параметр по умолчанию - balance-rr.
Драйвер Linux Team предоставляет альтернативу связующему драйверу. Основное отличие состоит в том, что часть ядра драйвера Team содержит только необходимый код, а остальная часть кода (проверка ссылок, реализация LACP, принятие решений и т. Д.) Выполняется в пользовательском пространстве как часть демона teamd.
Агрегирование каналов предлагает недорогой способ создания высокоскоростной магистральной сети, которая передает гораздо больше данных, чем любая отдельная порт или устройство может доставить. Агрегация каналов также позволяет скорости магистрали сети постепенно увеличиваться по мере увеличения спроса на сеть без необходимости заменять все и развертывать новое оборудование.
В большинстве магистральных сетей устанавливается больше кабелей или оптоволоконных пар, чем это необходимо изначально, даже если у них нет немедленной потребности в дополнительных кабелях. Это сделано потому, что затраты на рабочую силу выше, чем стоимость кабеля, а прокладка дополнительного кабеля снижает будущие затраты на рабочую силу, если потребности в сети изменится. Агрегация каналов позволяет использовать эти дополнительные кабели для увеличения скорости магистрали за небольшую дополнительную плату или без нее, если порты доступны.
При балансировке трафика сетевые администраторы часто не хотят переупорядочивать кадры Ethernet. Например, TCP несет дополнительные накладные расходы при работе с неупорядоченными пакетами. Эта цель приближается к отправке всех кадров, связанных с определенным сеансом, по одной и той же ссылке. Обычные реализации используют хэши L2 или L3 (т. Е. На основе MAC или IP-адресов), гарантируя, что один и тот же поток всегда отправляется по одному и тому же физическому каналу.
Однако это может не обеспечивать равномерного распределения по ссылкам в магистрали, когда только один или очень мало пар хостов взаимодействуют друг с другом, т. е. когда хэши обеспечивают слишком мало вариаций. Он эффективно ограничивает полосу пропускания клиента в совокупности максимальной пропускной способностью одного участника на одного партнера по связи. В крайнем случае, одно звено полностью загружено, а другие полностью бездействуют. По этой причине в реальных реализациях почти никогда не достигается равномерная балансировка нагрузки и полное использование всех транковых каналов. Более продвинутые коммутаторы могут использовать хэш L4 (т. Е. Использовать номера портов TCP / UDP), что может увеличить разброс трафика по ссылкам - в зависимости от того, меняются ли порты - и приблизить баланс к равномерному распределению.
Несколько коммутаторов могут использоваться для оптимизации максимальной пропускной способности в многосетевом коммутаторе топологии, когда коммутаторы настроены параллельно как часть изолированной сети между двумя или более системами. В этой конфигурации переключатели изолированы друг от друга. Одна из причин использовать такую топологию - для изолированной сети с множеством хостов (например, кластера, настроенного для обеспечения высокой производительности), использование нескольких коммутаторов меньшего размера может быть более экономичным, чем один коммутатор большего размера. Если требуется доступ за пределы сети, отдельный хост может быть оснащен дополнительным сетевым устройством, подключенным к внешней сети; затем этот хост дополнительно действует как шлюз. Сетевые интерфейсы с 1 по 3 узла A компьютерного кластера, например, соединены через отдельные сетевые коммутаторы с 1 по 3 с сетевыми интерфейсами с 1 по 3 из компьютерного кластера узла B; между сетевыми коммутаторами 1–3 нет взаимосвязей. Режим связующего драйвера Linux, обычно используемый в конфигурациях этого типа, - это balance-rr; режим balance-rr позволяет отдельным соединениям между двумя хостами эффективно использовать полосу пропускания, превышающую один интерфейс.
Сетевые адаптеры, соединенные вместе, также могут обеспечивать сетевые соединения, превышающие пропускную способность любого отдельного сетевого адаптера. Например, это позволяет центральному файловому серверу устанавливать совокупное 2-гигабитное соединение с использованием двух 1-гигабитных сетевых адаптеров, объединенных вместе. Обратите внимание, что скорость передачи данных по-прежнему будет 1 Гбит / с, что может вводить в заблуждение в зависимости от методологий, используемых для проверки пропускной способности после использования агрегации каналов.
Microsoft Windows Server 2012 изначально поддерживает агрегирование каналов. Предыдущие версии Windows Server полагались на поддержку этой функции производителем в их программном обеспечении драйвера устройства. Intel, например, выпустила Advanced Networking Services (ANS) для связывания карт Intel Fast Ethernet и Gigabit.. Nvidia также поддерживает «объединение» со своим Nvidia Network Access Manager / Firewall Инструмент. HP также имеет инструмент объединения для сетевых адаптеров HP, который позволит объединить сетевые адаптеры без EtherChanneled или который будет поддерживать несколько режимов EtherChannel (агрегация портов), включая 802.3ad с LACP. Кроме того, существует базовая агрегация уровня 3 (доступная по крайней мере в Windows XP SP3), которая позволяет серверам с несколькими IP-интерфейсами в одной сети выполнять балансировку нагрузки, а домашним пользователям с более чем одним подключением к Интернету - увеличивать подключение. скорость за счет распределения нагрузки на все интерфейсы.. Broadcom предлагает расширенные функции через Broadcom Advanced Control Suite (BACS), через который доступны функциональные возможности объединения BASP ("Broadcom Advanced Server Program"), предлагая Статические группы LAG 802.3ad, LACP и «умное объединение», не требующее настройки коммутаторов для работы. Можно настроить объединение с BACS с сочетанием сетевых адаптеров от разных поставщиков, если хотя бы один из них является Broadcom, а другие сетевые адаптеры обладают необходимыми возможностями для создания объединения.
Linux, FreeBSD, NetBSD, OpenBSD, macOS, OpenSolaris и коммерческие дистрибутивы Unix, такие как AIX реализует соединение Ethernet (транкинг) на более высоком уровне и, следовательно, может работать с сетевыми интерфейсами от разных производителей или драйверов, если сетевая карта поддерживается ядром.
Citrix XenServer и VMware ESX имеют встроенную поддержку агрегации каналов. XenServer предлагает как статические LAG, так и LACP. vSphere 5.1 (ESXi) изначально поддерживает как статические LAG, так и LACP с их виртуальным распределенным коммутатором.. Для Microsoft Hyper-V связывание или объединение не предлагается из гипервизора или уровня ОС, но вышеупомянутые методы объединения в Windows применимы и к Hyper-V.
В режимах balance-rr, balance-xor, broadcast и 802.3ad все физические порты в группе агрегации каналов должны находиться на одном логический коммутатор, который в большинстве распространенных сценариев оставляет единую точку отказа, когда физический коммутатор, к которому подключены все каналы, отключается. Режимы active-backup, balance-tlb и balance-alb также можно настроить с помощью двух или более переключателей. Но после отработки отказа (как и во всех других режимах) в некоторых случаях активные сеансы могут завершиться сбоем (из-за проблем с ARP) и их придется перезапустить.
Однако почти все поставщики имеют собственные расширения, которые решают некоторые из этих проблем: они объединяют несколько физических коммутаторов в один логический коммутатор. Протокол Split Multi-Link Trunking (SMLT) позволяет разделить несколько каналов Ethernet между несколькими коммутаторами в стеке, предотвращая возникновение единой точки отказа и дополнительно позволяя балансировать нагрузку на все коммутаторы между несколькими коммутаторами агрегации. стек единого доступа. Эти устройства синхронизируют состояние по межкоммутаторной магистрали (IST), так что они кажутся соединяющемуся устройству (доступу) как одно устройство (блок коммутатора) и предотвращают любое дублирование пакетов. SMLT обеспечивает повышенную отказоустойчивость за счет переключения при отказе за секунды и восстановления за секунды для всех скоростных магистралей (10 Мбит / с, 100 Мбит / с, 1000 Мбит / с и 10 Гбит / с) при прозрачной работе для конечных устройств.
В большинстве реализаций все порты, используемые в агрегации, имеют один и тот же физический тип, например, все медные порты (10/100 / 1000BASE ‑ T), все с несколькими -модовые оптоволоконные порты или все одномодовые оптоволоконные порты. Однако стандарт IEEE требует, чтобы все каналы были полнодуплексными и все они имели одинаковую скорость (10, 100, 1000 или 10 000 Мбит / с).
Многие коммутаторы не зависят от физического уровня, то есть коммутатор может иметь смесь меди, SX, LX, LX10 или других GBIC. Поддержание того же физического уровня является обычным подходом, но можно объединить оптоволокно 1000BASE-SX для одного канала и 1000BASE-LX (более длинный и разнообразный путь) для второго канала, но важно то, что скорость будет равна 1 Полнодуплексный Гбит / с для обоих каналов. Один путь может иметь немного большее время распространения, но стандарт был разработан так, что это не вызовет проблемы.
Несоответствие агрегирования означает несоответствие типа агрегирования на обоих концах ссылки. Некоторые коммутаторы не реализуют стандарт 802.1AX, но поддерживают статическую конфигурацию агрегации каналов. Следовательно, агрегация каналов между коммутаторами с одинаковой статической конфигурацией будет работать, но между статически настроенным коммутатором и устройством, настроенным для LACP, произойдет сбой.
На интерфейсах Ethernet для связывания каналов требуется помощь как коммутатора Ethernet , так и коммутатора операционная система, которая должна «чередовать» доставку кадров через сетевые интерфейсы таким же образом, как ввод-вывод чередуется по дискам в массиве RAID 0. По этой причине некоторые обсуждения связывания каналов также относятся к (RAIN) или к «избыточному массиву независимых сетевых интерфейсов».
В аналоговых модемах несколько коммутируемых соединений ссылки на POTS могут быть связаны. Пропускная способность таких связанных соединений может быть ближе к совокупной пропускной способности связанных каналов, чем пропускная способность при схемах маршрутизации, которые просто балансируют нагрузку исходящих сетевых соединений по каналам.
Аналогично, несколько линий DSL могут быть объединены для увеличения пропускной способности; в Соединенном Королевстве, ADSL иногда связан, чтобы обеспечить, например, пропускную способность для загрузки 512 кбит / с и пропускную способность для загрузки 4 мегабит / с в регионах, где есть только доступ до 2 мегабит / с пропускной способности.
Согласно спецификациям DOCSIS 3.0 и 3.1 для систем передачи данных по кабельному телевидению (CATV) несколько каналов могут быть связаны. В соответствии с DOCSIS 3.0 можно связать до 32 нисходящих и 8 восходящих каналов. Обычно они имеют ширину 6 или 8 МГц. DOCSIS 3.1 определяет более сложные устройства, включающие агрегирование на уровне поднесущих и более крупных условных каналов.
Широкополосная связь - это тип связывания каналов, который относится к объединению нескольких каналов на уровнях OSI на уровне четыре или выше. Связанные каналы могут быть проводными линиями, такими как T-1 или линия DSL. Кроме того, можно связать несколько сотовых каналов для агрегированного беспроводного связанного канала.
Предыдущие методологии связывания находились на нижних уровнях OSI, что требовало координации с телекоммуникационными компаниями для внедрения. Широкополосное соединение, поскольку оно реализовано на более высоких уровнях, может быть выполнено без этой координации.
Коммерческие реализации соединения широкополосных каналов включают: