В компьютерных сетях агрегация каналов — это объединение (агрегация) нескольких сетевых соединений параллельно любым из нескольких методов. Агрегация каналов увеличивает общую пропускную способность сверх того, что может выдержать одно соединение, и обеспечивает избыточность , когда все физические соединения, кроме одного, могут выйти из строя без потери связи. Группа агрегации каналов ( LAG ) — это объединенный набор физических портов.
Другие общие термины, используемые для описания этой концепции, включают в себя транкинг , [1] объединение , [2] связывание , [1] канализацию [3] или объединение .
Реализация может соответствовать независимым от поставщика стандартам, таким как протокол управления агрегацией каналов (LACP) для Ethernet , определенный в IEEE 802.1AX или предыдущем IEEE 802.3ad, а также проприетарным протоколам .
Агрегация каналов увеличивает пропускную способность и устойчивость Ethernet- соединений.
Требования к пропускной способности не масштабируются линейно. Исторически пропускная способность Ethernet увеличивалась в десять раз с каждым поколением: 10 мегабит /с, 100 Мбит/с, 1000 Мбит/с, 10 000 Мбит/с. Если кто-то начинал сталкиваться с потолками пропускной способности, то единственным вариантом был переход на следующее поколение, что могло быть непомерно затратно. Альтернативное решение, представленное многими производителями сетей в начале 1990-х годов, заключается в использовании агрегации каналов для объединения двух физических каналов Ethernet в один логический канал. Большинство этих ранних решений требовали ручной настройки и идентичного оборудования с обеих сторон соединения. [4]
Типичному соединению порт-кабель-порт присущи три отдельные точки отказа , как в конфигурации компьютер-коммутатор, так и коммутатор-коммутатор: сам кабель или любой из портов, к которым подключен кабель, может выйти из строя. Можно сделать несколько логических соединений, но многие из протоколов более высокого уровня не были разработаны для полностью бесшовного переключения при отказе . Объединение нескольких физических соединений в одно логическое соединение с использованием агрегации каналов обеспечивает более устойчивую связь.
Сетевые архитекторы могут реализовать агрегацию на любом из трех нижних уровней модели OSI . Примерами агрегации на уровне 1 ( физическом уровне ) являются сетевые устройства линий электропередач (например, IEEE 1901 ) и беспроводные (например, IEEE 802.11), которые объединяют несколько частотных диапазонов. Агрегация на уровне 2 OSI ( канальный уровень , например, кадр Ethernet в локальных сетях или многоканальный PPP в глобальных сетях, MAC-адрес Ethernet ) обычно происходит через порты коммутатора, которые могут быть как физическими, так и виртуальными портами, управляемыми операционной системой. Агрегация на уровне 3 ( сетевом уровне ) в модели OSI может использовать циклическое планирование , хэш-значения, вычисляемые из полей в заголовке пакета, или комбинацию этих двух методов.
Независимо от уровня, на котором происходит агрегация, можно сбалансировать нагрузку сети по всем каналам. Однако, чтобы избежать доставки вне очереди , не все реализации используют это преимущество. Большинство методов также обеспечивают отказоустойчивость .
Объединение может происходить либо таким образом, что несколько интерфейсов совместно используют один логический адрес (т. е. IP) или один физический адрес (т. е. MAC-адрес), либо позволяет каждому интерфейсу иметь свой собственный адрес. Первое требует, чтобы оба конца соединения использовали один и тот же метод агрегации, но имеет преимущества в производительности по сравнению со вторым.
Объединение каналов отличается от балансировки нагрузки тем, что балансировка нагрузки разделяет трафик между сетевыми интерфейсами на основе каждого сетевого сокета (уровень 4), в то время как объединение каналов подразумевает разделение трафика между физическими интерфейсами на более низком уровне, либо на основе пакета (уровень 3), либо на основе канала передачи данных (уровень 2). [ необходима ссылка ]
К середине 1990-х годов большинство производителей сетевых коммутаторов включили возможность агрегации в качестве фирменного расширения для увеличения пропускной способности между своими коммутаторами. Каждый производитель разработал свой собственный метод, что привело к проблемам совместимости. Рабочая группа IEEE 802.3 создала исследовательскую группу для создания совместимого стандарта канального уровня (т. е. охватывающего как физический, так и канальный уровни) на встрече в ноябре 1997 года. [4] Группа быстро согласилась включить функцию автоматической конфигурации, которая также добавила бы избыточности. Это стало известно как протокол управления агрегацией каналов (LACP).
По состоянию на 2000 год [обновлять]большинство схем объединения гигабитных каналов использовали стандарт IEEE по агрегации каналов, который ранее был пунктом 43 стандарта IEEE 802.3 , добавленным в марте 2000 года рабочей группой IEEE 802.3ad. [5] Почти каждый производитель сетевого оборудования быстро принял этот совместный стандарт вместо своих собственных стандартов.
В отчете целевой группы по обслуживанию 802.3 для проекта 9-й ревизии в ноябре 2006 года отмечалось, что определенные уровни 802.1 (такие как безопасность 802.1X ) были расположены в стеке протоколов ниже агрегации каналов, которая была определена как подуровень 802.3 . [6] Для устранения этого несоответствия была сформирована целевая группа 802.3ax (802.1AX), [7] что привело к формальной передаче протокола группе 802.1 с публикацией IEEE 802.1AX-2008 3 ноября 2008 года. [8]
В стандартах IEEE Ethernet протокол управления агрегацией каналов (LACP) предоставляет метод управления объединением нескольких физических каналов в один логический канал. LACP позволяет сетевому устройству согласовывать автоматическое объединение каналов, отправляя пакеты LACP своему партнеру, напрямую подключенному устройству, которое также реализует LACP.
Возможности LACP и практические примеры
LACP работает, отправляя кадры (LACPDU) по всем каналам, на которых включен этот протокол. Если он находит устройство на другом конце канала, на котором также включен LACP, это устройство будет независимо отправлять кадры по тем же каналам в противоположном направлении, позволяя двум устройствам обнаруживать несколько каналов между собой, а затем объединять их в один логический канал. LACP можно настроить в одном из двух режимов: активный или пассивный. В активном режиме LACPDU отправляются 1 в секунду по настроенным каналам. В пассивном режиме LACPDU не отправляются, пока один не будет получен с другой стороны, протокол «говори, когда говоришь».
В дополнение к подстандартам агрегации каналов IEEE, существует ряд фирменных схем агрегации, включая EtherChannel и Port Aggregation Protocol от Cisco, Aggregated Ethernet от Juniper, Multi-Link Trunking от AVAYA , Split Multi-Link Trunking , Routed Split Multi-Link Trunking и Distributed Split Multi-Link Trunking от AVAYA, Smartgroup от ZTE, Eth-Trunk от Huawei и Speedify от Connectify . [11] Большинство высокопроизводительных сетевых устройств поддерживают ту или иную форму агрегации каналов. Программные реализации, такие как пакет *BSD lagg , драйвер связывания Linux , Solaris dladm aggr и т. д., существуют для многих операционных систем.
Драйвер связывания Linux [12] предоставляет метод объединения нескольких контроллеров сетевых интерфейсов (NIC) в один логический связанный интерфейс из двух или более так называемых (NIC) подчиненных устройств . Большинство современных дистрибутивов Linux поставляются с ядром Linux , в котором драйвер связывания Linux интегрирован как загружаемый модуль ядра и предустановленная программа управления на уровне пользователя ifenslave (if = [network] interface) . Дональд Беккер запрограммировал оригинальный драйвер связывания Linux. Он начал использоваться с патчами кластера Beowulf для ядра Linux 2.0.
Режимы для драйвера связывания Linux [12] (режимы агрегации сетевых интерфейсов) предоставляются в качестве параметров модулю связывания ядра во время загрузки. Они могут быть заданы как аргументы командной строки для команд insmod или modprobe , но обычно указываются в конфигурационном файле, специфичном для дистрибутива Linux. Поведение единого логического связанного интерфейса зависит от указанного режима драйвера связывания. Параметр по умолчанию — balance-rr.
Драйвер Linux Team [15] предоставляет альтернативу драйверу bonding. Главное отличие состоит в том, что часть ядра драйвера Team содержит только необходимый код, а остальной код (проверка ссылок, реализация LACP, принятие решений и т. д.) выполняется в пользовательском пространстве как часть демона teamd .
Агрегация каналов предлагает недорогой способ создания магистральной сети с высокой пропускной способностью , которая передает в несколько раз больше данных, чем может предоставить любой отдельный порт или устройство. Агрегация каналов также позволяет магистральной скорости сети постепенно расти по мере увеличения спроса на сеть, без необходимости замены всего и развертывания нового оборудования.
Большинство установок магистральных сетей устанавливают больше кабелей или оптоволоконных пар, чем изначально необходимо. Это делается, поскольку затраты на рабочую силу выше стоимости кабеля, а прокладка дополнительного кабеля снижает будущие затраты на рабочую силу, если изменятся потребности в сети. Агрегация каналов может позволить использовать эти дополнительные кабели для увеличения скорости магистральной сети за небольшую дополнительную плату или вообще без нее, если порты доступны.
При балансировке трафика сетевые администраторы часто хотят избежать переупорядочивания кадров Ethernet. Например, TCP несет дополнительные накладные расходы при работе с пакетами, идущими не по порядку. Эта цель достигается путем отправки всех кадров, связанных с определенным сеансом, по одному и тому же каналу. Обычные реализации используют хэши L2 или L3 (то есть на основе MAC или IP-адресов), гарантируя, что один и тот же поток всегда отправляется по одному и тому же физическому каналу. [16] [17] [18]
Однако это может не обеспечить равномерного распределения по ссылкам в магистрали, когда только одна или очень мало пар хостов взаимодействуют друг с другом, т. е. когда хэши обеспечивают слишком мало вариаций. Это фактически ограничивает пропускную способность клиента в совокупности. [17] В крайнем случае, одна ссылка полностью загружена, в то время как другие полностью простаивают, и совокупная пропускная способность ограничена максимальной пропускной способностью этого одного участника. По этой причине равномерная балансировка нагрузки и полное использование всех магистральных ссылок почти никогда не достигаются в реальных реализациях.
Сетевые карты, объединенные вместе, также могут обеспечивать сетевые соединения, превышающие пропускную способность любой одной сетевой карты. Например, это позволяет центральному файловому серверу устанавливать совокупное 2-гигабитное соединение с использованием двух 1-гигабитных сетевых карт, объединенных вместе. Обратите внимание, что скорость передачи данных по-прежнему будет составлять 1 Гбит/с, что может вводить в заблуждение в зависимости от методик, используемых для тестирования пропускной способности после использования агрегации каналов.
Microsoft Windows Server 2012 изначально поддерживает агрегацию каналов. Предыдущие версии Windows Server полагались на поддержку производителя этой функции в программном обеспечении драйвера устройства . Например, Intel выпустила Advanced Networking Services (ANS) для объединения карт Intel Fast Ethernet и Gigabit. [19]
Nvidia поддерживает объединение с помощью своего Nvidia Network Access Manager/Firewall Tool. У HP есть инструмент объединения для сетевых карт HP, который поддерживает несколько режимов агрегации каналов, включая 802.3ad с LACP. Кроме того, существует базовая агрегация уровня 3 [20] , которая позволяет серверам с несколькими интерфейсами IP в одной сети выполнять балансировку нагрузки, а для домашних пользователей с более чем одним подключением к Интернету — увеличивать скорость соединения путем распределения нагрузки на все интерфейсы. [21]
Broadcom предлагает расширенные функции через Broadcom Advanced Control Suite (BACS), через который доступна функциональность объединения BASP (Broadcom Advanced Server Program), предлагающая статические LAG 802.3ad, LACP и «умное объединение», которое не требует какой-либо настройки на коммутаторах для работы. Можно настроить объединение с BACS с помощью смеси сетевых карт от разных поставщиков, если хотя бы одна из них от Broadcom, а другие сетевые карты имеют требуемые возможности для поддержки объединения. [22]
Linux , FreeBSD , NetBSD , OpenBSD , macOS , OpenSolaris и коммерческие дистрибутивы Unix, такие как AIX , реализуют Ethernet-связывание на более высоком уровне и, если сетевая карта поддерживается ядром, могут работать с сетевыми картами от разных производителей или с использованием разных драйверов. [12]
Citrix XenServer и VMware ESX имеют встроенную поддержку агрегации каналов. XenServer предлагает как статические LAG, так и LACP. vSphere 5.1 (ESXi) поддерживает как статические LAG, так и LACP изначально с помощью своего виртуального распределенного коммутатора. [23]
Hyper-V от Microsoft не обеспечивает поддержку агрегации каналов на уровне гипервизора, но вышеупомянутые методы объединения в Windows применимы к Hyper-V.
В режимах balance-rr , balance-xor , broadcast и 802.3ad все физические порты в группе агрегации каналов должны находиться на одном логическом коммутаторе, что в большинстве распространенных сценариев приведет к появлению единой точки отказа, когда физический коммутатор, к которому подключены все каналы, отключается. Режимы active-backup , balance-tlb и balance-alb также можно настроить с двумя или более коммутаторами. Но после переключения при сбое (как и во всех других режимах) в некоторых случаях активные сеансы могут выйти из строя (из-за проблем с ARP) и их придется перезапускать.
Однако почти у всех поставщиков есть собственные расширения, которые решают часть этой проблемы: они объединяют несколько физических коммутаторов в один логический коммутатор. Протокол разделения многоканального транкинга (SMLT) компании Nortel позволяет разделить несколько каналов Ethernet между несколькими коммутаторами в стеке, предотвращая возникновение единой точки отказа и дополнительно позволяя всем коммутаторам балансировать нагрузку между несколькими коммутаторами агрегации из единого стека доступа. Эти устройства синхронизируют состояние через межкоммутаторную магистраль (IST) таким образом, что они кажутся подключающемуся устройству (доступу) одним устройством (блоком коммутатора) и предотвращают дублирование пакетов. SMLT обеспечивает повышенную отказоустойчивость с переключением на резерв и восстановлением на резерв в течение секунды для всех скоростных магистралей, работая прозрачно для конечных устройств.
Группа агрегации каналов Multi-chassis обеспечивает аналогичные функции в неспецифической для поставщика манере. Для подключенного устройства соединение выглядит как обычный агрегированный канал связи. Координация между несколькими задействованными источниками обрабатывается в специфической для поставщика манере.
В большинстве реализаций все порты, используемые в агрегации, состоят из одного и того же физического типа, например, все медные порты (10/100/1000BASE‑T), все многомодовые оптоволоконные порты или все одномодовые оптоволоконные порты. Однако стандарт IEEE требует только, чтобы каждое соединение было полнодуплексным и все они имели одинаковую скорость (10, 100, 1000 или 10 000 Мбит/с).
Многие коммутаторы независимы от физического уровня, что означает, что коммутатор может иметь смесь медных, SX, LX, LX10 или других модульных трансиверов GBIC / SFP . Хотя сохранение того же физического уровня является обычным подходом, можно объединить оптоволокно 1000BASE-SX для одного канала и 1000BASE-LX (более длинный, разнообразный путь) для второго канала. Один путь может иметь более длительное время распространения, но поскольку большинство реализаций сохраняют один поток трафика на том же физическом канале (используя хэш либо MAC-адресов, либо IP-адресов, либо комбинаций портов IP/транспортного уровня в качестве индекса), это не вызывает проблемной доставки вне очереди .
Несоответствие агрегации означает несоответствие типа агрегации на обоих концах канала. Некоторые коммутаторы не реализуют стандарт 802.1AX, но поддерживают статическую конфигурацию агрегации каналов. Поэтому агрегация каналов между аналогичными статически настроенными коммутаторами может работать, но не будет работать между статически настроенным коммутатором и устройством, настроенным для LACP.
На интерфейсах Ethernet для объединения каналов требуется помощь как коммутатора Ethernet , так и операционной системы хост-компьютера , которая должна распределять доставку кадров по сетевым интерфейсам таким же образом, как операции ввода-вывода распределяются по дискам в массиве RAID 0. [ требуется ссылка ] По этой причине некоторые обсуждения объединения каналов также ссылаются на избыточный массив недорогих узлов (RAIN) или избыточный массив независимых сетевых интерфейсов . [24]
В аналоговых модемах несколько коммутируемых соединений по POTS могут быть связаны. Пропускная способность таких связанных соединений может быть ближе к совокупной пропускной способности связанных соединений, чем пропускная способность в схемах маршрутизации, которые просто балансируют нагрузку исходящих сетевых соединений по ссылкам.
Аналогичным образом, несколько линий DSL могут быть объединены для обеспечения более высокой пропускной способности; в Соединенном Королевстве ADSL иногда объединяются для обеспечения, например, пропускной способности исходящего трафика 512 кбит/с и пропускной способности загрузочного трафика 4 мегабит/с в областях, где есть доступ только к пропускной способности 2 мегабит/с. [ необходима ссылка ]
В соответствии со спецификациями DOCSIS 3.0 и 3.1 для передачи данных по кабельным телевизионным системам, могут быть объединены несколько каналов. В соответствии со спецификацией DOCSIS 3.0 могут быть объединены до 32 нисходящих и 8 восходящих каналов. [25] Обычно они имеют ширину 6 или 8 МГц. DOCSIS 3.1 определяет более сложные договоренности, включающие агрегацию на уровне поднесущих и более крупных условных каналов. [26]
Широкополосное связывание — это тип связывания каналов, который относится к агрегации нескольких каналов на уровнях OSI на уровне четыре или выше. Связанные каналы могут быть проводными соединениями, такими как линия T-1 или DSL . Кроме того, можно связать несколько сотовых соединений для агрегированного беспроводного связанного соединения.
Другие методологии связывания находятся на нижних уровнях OSI, требуя координации с телекоммуникационными компаниями для внедрения. Широкополосное связывание, поскольку оно реализуется на более высоких уровнях, может быть выполнено без этой координации. [27]
Коммерческие реализации объединения широкополосных каналов включают в себя:
В 802.11 (Wi-Fi) связывание каналов используется в технологии Super G , называемой 108 Мбит/с. Она связывает два канала стандарта 802.11g , который имеет скорость передачи данных 54 Мбит/с на канал.
В IEEE 802.11n указан режим с шириной канала 40 МГц. Это не связывание каналов, а один канал с шириной канала в два раза больше старой 20 МГц, таким образом, используя две смежные полосы по 20 МГц. Это позволяет напрямую удвоить скорость передачи данных PHY из одного канала шириной 20 МГц.
сетей (также известное как объединение портов) заключается в объединении нескольких сетевых интерфейсов в один логический связанный интерфейс, соответствующий одному IP-адресу.
переместить агрегацию каналов в IEEE 802.1 •Это подуровень 802.3, но он должен быть выше IEEE Std 802.1x
802.1 и 802.3 был сделан вывод, что будущее развитие Link Aggregation будет более подходящим в качестве стандарта 802.1
Объединение каналов, иногда также называемое избыточным массивом независимых сетевых интерфейсов (RAIN), представляет собой схему, в которой два или более сетевых интерфейсов на главном компьютере объединяются для обеспечения избыточности или повышения пропускной способности.