В компьютерных сетях агрегация каналов — это параллельное объединение (агрегирование) нескольких сетевых подключений любым из нескольких методов. Агрегация каналов увеличивает общую пропускную способность сверх того, что может поддерживать одно соединение, и обеспечивает избыточность , при которой все физические каналы, кроме одного, могут выйти из строя без потери соединения. Группа агрегации каналов ( 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), либо по каждому пакету (уровень 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 и протокол агрегации портов Cisco , агрегированный Ethernet Juniper, многоканальный транкинг AVAYA , многоканальный транкинг с разделением , многоканальный транкинг с разделением по маршруту и распределенное разделение. Multi-Link Trunking , Smartgroup от ZTE, Eth-Trunk от Huawei и Speedify от Connectify . [11] Большинство высокопроизводительных сетевых устройств поддерживают ту или иную форму агрегации каналов. Программные реализации, такие как пакет *BSD lagg , драйвер связывания Linux , Solaris dladm aggr и т. д., существуют для многих операционных систем.
Драйвер связывания Linux [12] обеспечивает метод объединения нескольких контроллеров сетевых интерфейсов (NIC) в один логически связанный интерфейс двух или более так называемых (NIC) ведомых устройств . Большинство современных дистрибутивов Linux поставляются с ядром Linux , в которое встроен драйвер связывания Linux в виде загружаемого модуля ядра и предустановлена программа управления пользовательского уровня ifenslave (if = [сетевой] интерфейс) . Дональд Беккер запрограммировал оригинальный драйвер связи Linux. Он стал использоваться вместе с патчами кластера Beowulf для ядра Linux 2.0.
Режимы драйвера связывания Linux [12] (режимы агрегации сетевых интерфейсов) передаются в качестве параметров модулю связывания ядра во время загрузки. Они могут быть переданы в качестве аргументов командной строки командам insmod или modprobe , но обычно указываются в файле конфигурации конкретного дистрибутива Linux. Поведение единого логического связанного интерфейса зависит от указанного режима драйвера связывания. Параметр по умолчанию — Balance-RR.
Драйвер Linux Team [16] представляет собой альтернативу драйверу связывания. Основное отличие состоит в том, что часть ядра драйвера Team содержит только необходимый код, а остальная часть кода (проверка связи, реализация LACP, принятие решений и т. д.) запускается в пользовательском пространстве как часть демона Teamd .
Агрегация каналов предлагает недорогой способ создания магистральной сети с высокой пропускной способностью , которая передает в несколько раз больше данных, чем может передать любой отдельный порт или устройство. Агрегация каналов также позволяет постепенно увеличивать скорость магистральной сети по мере увеличения спроса на сеть без необходимости заменять все и развертывать новое оборудование.
В большинстве магистральных сетей устанавливается больше пар кабелей или оптоволокна, чем это необходимо изначально. Это сделано потому, что затраты на рабочую силу выше, чем стоимость кабеля, а прокладка дополнительного кабеля снижает будущие затраты на рабочую силу, если сетевые потребности изменятся. Агрегация каналов может позволить использовать эти дополнительные кабели для увеличения скорости магистральной сети с небольшими дополнительными затратами или без них, если порты доступны.
При балансировке трафика сетевые администраторы часто хотят избежать изменения порядка кадров Ethernet. Например, TCP несет дополнительные издержки при работе с пакетами, находящимися в неправильном порядке. Эта цель достигается путем отправки всех кадров, связанных с конкретным сеансом, по одному и тому же каналу. Общие реализации используют хэши L2 или L3 (т. е. на основе MAC- или IP-адресов), гарантируя, что один и тот же поток всегда отправляется по одному и тому же физическому каналу. [17] [18] [19]
Однако это может не обеспечить равномерного распределения по каналам магистрали, когда только одна или очень немногие пары хостов взаимодействуют друг с другом, т. е. когда хэши обеспечивают слишком мало вариаций. Это эффективно ограничивает пропускную способность клиента в совокупности. [18] В крайнем случае, один канал полностью загружен, в то время как другие полностью простаивают, а совокупная пропускная способность ограничивается максимальной пропускной способностью этого отдельного участника. По этой причине в реальных реализациях почти никогда не достигается равномерная балансировка нагрузки и полное использование всех транкинговых каналов.
Объединенные вместе сетевые карты также могут обеспечивать сетевые соединения, превышающие пропускную способность любого отдельного сетевого адаптера. Например, это позволяет центральному файловому серверу установить совокупное 2-гигабитное соединение, используя два 1-гигабитных сетевых адаптера, объединенных вместе. Обратите внимание, что скорость передачи данных по-прежнему будет составлять 1 Гбит/с, что может вводить в заблуждение в зависимости от методологий, используемых для тестирования пропускной способности после применения агрегации каналов.
Microsoft Windows Server 2012 изначально поддерживает агрегацию ссылок. Предыдущие версии Windows Server полагались на поддержку этой функции производителем в программном обеспечении драйвера устройства . Например, Intel выпустила Advanced Networking Services (ANS) для соединения карт Intel Fast Ethernet и Gigabit. [20]
Nvidia поддерживает объединение со своим Nvidia Network Access Manager/Firewall Tool. У HP есть инструмент объединения сетевых карт HP, который поддерживает несколько режимов агрегации каналов, включая 802.3ad с LACP. Кроме того, существует базовая агрегация уровня 3 [21] , которая позволяет серверам с несколькими IP-интерфейсами в одной сети выполнять балансировку нагрузки, а домашним пользователям с более чем одним подключением к Интернету — увеличивать скорость соединения за счет распределения нагрузки на все интерфейсы. [22]
Broadcom предлагает расширенные функции через Broadcom Advanced Control Suite (BACS), с помощью которого доступны функции объединения BASP (Broadcom Advanced Server Program), предлагая статические LAG 802.3ad, LACP и «умное объединение», не требующее какой-либо настройки на переключатели работают. Можно настроить объединение с BACS, используя сочетание сетевых карт от разных поставщиков, при условии, что хотя бы один из них принадлежит Broadcom, а другие сетевые адаптеры обладают необходимыми возможностями для поддержки объединения. [23]
Linux , FreeBSD , NetBSD , OpenBSD , macOS , OpenSolaris и коммерческие дистрибутивы Unix, такие как AIX , реализуют соединение Ethernet на более высоком уровне и, пока сетевая карта поддерживается ядром, могут работать с сетевыми картами разных производителей или с использованием разных драйверов. [12]
Citrix XenServer и VMware ESX имеют встроенную поддержку агрегации каналов. XenServer предлагает как статические группы LAG, так и LACP. vSphere 5.1 (ESXi) изначально поддерживает как статические LAG, так и LACP с помощью виртуального распределенного коммутатора. [24]
Microsoft Hyper-V не предлагает поддержку агрегации ссылок на уровне гипервизора, но вышеупомянутые методы объединения под Windows применимы и к Hyper-V.
При использовании режимов Balance-RR , Balance-XOR , Broadcast и 802.3ad все физические порты в группе агрегации каналов должны находиться на одном логическом коммутаторе, что в большинстве распространенных сценариев оставляет единую точку отказа при отключении физического коммутатора. к которому подключены все ссылки, уходит в офлайн. Режимы active-backup , Balance-tlb и Balance-alb также можно настроить с помощью двух или более переключателей. Но после аварийного переключения (как и во всех других режимах) в некоторых случаях активные сессии могут выйти из строя (из-за проблем ARP) и их придется перезапускать.
Однако почти у всех поставщиков есть собственные расширения, которые решают часть этой проблемы: они объединяют несколько физических коммутаторов в один логический коммутатор. Протокол разделенного многоканального транкинга (SMLT) Nortel позволяет разделить несколько каналов Ethernet на несколько коммутаторов в стеке, предотвращая появление единой точки отказа и, кроме того, позволяя распределять нагрузку на все коммутаторы между несколькими коммутаторами агрегации из единого стека доступа. Эти устройства синхронизируют состояние через межкоммутационную магистраль (IST), так что для подключающегося устройства (доступа) они кажутся одним устройством (коммутационный блок) и предотвращают любое дублирование пакетов. SMLT обеспечивает повышенную отказоустойчивость благодаря аварийному переключению и восстановлению за доли секунды для всех скоростных магистральных каналов, при этом работая прозрачно для конечных устройств.
Группа агрегации каналов с несколькими шасси предоставляет аналогичные функции, не зависящие от поставщика. Для подключенного устройства соединение выглядит как обычный объединенный магистральный канал. Координация между несколькими задействованными источниками осуществляется в зависимости от поставщика.
В большинстве реализаций все порты, используемые в агрегации, относятся к одному физическому типу, например, все медные порты (10/100/1000BASE‑T), все многомодовые оптоволоконные порты или все одномодовые оптоволоконные порты. Однако все требования стандарта IEEE — это чтобы каждое соединение было полнодуплексным и все они имели одинаковую скорость (10, 100, 1000 или 10 000 Мбит/с).
Многие коммутаторы являются PHY-независимыми, что означает, что коммутатор может иметь комбинацию медных, SX, LX, LX10 или других модульных трансиверов GBIC / SFP . Хотя сохранение одного и того же PHY является обычным подходом, можно объединить волокно 1000BASE-SX для одного канала и 1000BASE-LX (более длинный и разнообразный путь) для второго канала. Один путь может иметь более длительное время распространения, но поскольку большинство реализаций поддерживают один поток трафика по одному и тому же физическому каналу (используя в качестве индекса хэш MAC-адресов, IP-адресов или комбинаций портов IP/транспортного уровня ), это не приводит к проблематичная доставка вне заказа .
Несоответствие агрегации означает несовпадение типа агрегации на обоих концах канала. Некоторые коммутаторы не поддерживают стандарт 802.1AX, но поддерживают статическую настройку агрегации каналов. Таким образом, агрегирование каналов между одинаково статически настроенными коммутаторами может работать, но не будет работать между статически настроенным коммутатором и устройством, настроенным для LACP.
На интерфейсах Ethernet объединение каналов требует помощи как со стороны коммутатора Ethernet , так и со стороны операционной системы главного компьютера , которая должна распределять доставку кадров по сетевым интерфейсам таким же образом, как ввод-вывод распределяется по дискам в массиве RAID 0 . [ нужна цитация ] По этой причине в некоторых обсуждениях объединения каналов также упоминается избыточный массив недорогих узлов (RAIN) или избыточный массив независимых сетевых интерфейсов . [25]
В аналоговых модемах можно объединить несколько коммутируемых каналов через POTS . Пропускная способность таких связанных соединений может приблизиться к совокупной пропускной способности связанных каналов, чем пропускная способность при схемах маршрутизации, которые просто балансируют нагрузку исходящих сетевых соединений по каналам.
Аналогичным образом можно объединить несколько линий DSL , чтобы обеспечить более высокую пропускную способность; в Соединенном Королевстве ADSL иногда подключается , чтобы обеспечить, например, пропускную способность загрузки 512 кбит/с и пропускную способность загрузки 4 мегабит/с в регионах, где есть доступ только к полосе пропускания 2 мегабит/с. [ нужна цитата ]
В соответствии со спецификациями DOCSIS 3.0 и 3.1 для передачи данных по системам кабельного телевидения можно объединить несколько каналов. В рамках DOCSIS 3.0 можно объединить до 32 нисходящих и 8 восходящих каналов. [26] Обычно они имеют ширину 6 или 8 МГц. DOCSIS 3.1 определяет более сложные механизмы, включающие агрегацию на уровне поднесущих и более крупных условных каналов. [27]
Широкополосное соединение — это тип соединения каналов, который означает агрегирование нескольких каналов на уровнях OSI на уровне четыре или выше. Объединенные каналы могут представлять собой проводные каналы связи, такие как линия T-1 или DSL . Кроме того, можно объединить несколько сотовых каналов связи для создания объединенного беспроводного канала связи.
Другие методологии объединения находятся на более низких уровнях OSI, и для их внедрения требуется координация с телекоммуникационными компаниями . Широкополосное соединение, поскольку оно реализуется на более высоких уровнях, может осуществляться без такой координации. [28]
Коммерческие реализации объединения широкополосных каналов включают:
В стандарте 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 был сделан вывод, что будущее развитие агрегации каналов будет более подходящим в качестве стандарта 802.1.
Объединение каналов, иногда также называемое резервным массивом независимых сетевых интерфейсов (RAIN), представляет собой схему, при которой два или более сетевых интерфейса на главном компьютере объединяются для резервирования или увеличения пропускной способности.