В комп'ютерних мережах, термін агрегація каналів застосовується до різних методів об'єднання (агрегації) декількох паралельних мережевих з'єднань з метою підвищення пропускної здатності, а також забезпечення резервування у випадках виходу з ладу одного з каналів. ГАК (група агрегації каналів, ) об'єднує множину фізичних портів, щоб зробити єдиний високошвидкісний канал передачі даних шляхом розподілу навантаження трафіку між портами-членами групи а також покращити надійність з'єднання.

Інші загальні терміни для опису методу включають port trunking, link bundling, Ethernet/network/NIC bonding, або NIC teaming. Ці терміни охоплюють не лише виробничо-незалежні стандарти такі як  Link Aggregation Control Protocol (LACP) для Ethernet, визначених в IEEE 802.1AX та IEEE 802.1aq чи попередньому IEEE 802.3ad, але і різні патентовані рішення.

Мережеві архітектори можуть впроваджувати агрегацію на будь-якому з трьох нижніх рівнів моделі OSI. Приклади агрегації 1-го рівня (фізичний рівень) включають мережеві пристрої ліній електропередач (наприклад IEEE 1901) та безпровідні (наприклад IEEE 802.11), що об'єднують декілька частотних діапазонів. Агрегація 2-го рівня (канальний рівень, наприклад Ethernet frame в LAN-х або multi-link PPP в WAN-х, Ethernet MAC адреса) зазвичай відбувається через порти комутатора, які можуть бути фізичними або віртуальними, під керуванням операційної системи. Агрегація на 3-му рівні (мережевий рівень) може використовувати планувальник round-robin, хеш-значення, що обчислені з полів в заголовку пакета, або комбінації цих двох методів. Незалежно від рівня, на якому відбувається агрегування, балансування навантаження мережі відбувається по всіх каналах. Більшість методів також забезпечує і відмовостійкість.

Об'єднання може відбуватися або таким чином, що кілька інтерфейсів поділяють одну логічну адресу (тобто IP) або одну фізичну адресу (тобто MAC-адресу), або кожному інтерфейсу дозволяється мати власну адресу. Вимагається, щоб обидва кінці лінії зв'язку використовують один і той же метод агрегування.

Опис Об'єднання каналів вирішує дві проблеми з з'єднаннями Ethernet: обмеження смуги пропускання і відсутність стійкості.

Що стосується першого питання: вимоги до пропускної здатності не масштабуються лінійно. Смуги пропускання Ethernet історично збільшувалися на порядок величини кожного покоління: 10 мегабіт/с, 100 Мбіт/с, 1000 Мбіт/с, 10,000 Мбіт/с. Якщо досягали межі пропускної здатності, то єдиним варіантом було перейти до наступного покоління, що могло мати відповідну вартість. Альтернативне рішення, що було представлено багатьма мережевими виробниками на початку 1990-х років, полягало в об'єднанні двох фізичних каналів Ethernet в один логічний канал через channel bonding. Більшість з цих рішень вимагали ручної конфігурації та ідентичного обладнання на обох сторонах агрегації.

Друга проблема охоплює три точки відмови в типовому підключенні порт-кабель-порт. А саме, в будь-якій типовій конфігурації, чи то звичайне з'єднання комп'ютер-комутатор, чи комутатор-комутатор, кабель або порти з обох сторін з'єднання, в які включено кабель, можуть відмовити. Може бути створено кілька фізичних з'єднань, однак, значна кількість протоколів більш вищого рівня не були призначені до повністю безшовного самовідновлення.

IEEE агрегація каналів

Процес стандартизації До середини 1990-х років, більшість виробників мережевих комутаторів включало можливість агрегації як власні розширення для збільшення пропускної здатності між їхніми комутаторами. Але кожен виробник розробив свій власний метод, що призвело до проблем сумісності. На нараді групи IEEE 802.3, в листопаді 1997 року, було створено дослідницьку групу, з метою розробки сумісного стандарту канального рівня. Група швидко вирішила включити функцію автоматичної конфігурації, яка б також вирішила проблему надійності. Це стало відомо як «Протокол Управління Канальною Агрегацією» (анг. «Link Aggregation Control Protocol»).

Перший випуск 802.3ad в 2000 У 2000 році більшість схем агрегованих гігабітних каналів використовують стандарт IEEE Агрегації Каналів, який раніше був статтею 43 стандарту IEEE 802.3, доданою в березні 2000 року цільовою групою IEEE 802.3ad. Майже кожен виробник мережевого устаткування швидко прийняв цей спільний стандарт щодо своїх фірмових стандартів.

Перехід до рівня 802.1 в 2008 Девід Лоу зазначив, що в 2006 році деякі рівні 802.1 (наприклад, безпеки 802.1X) були поміщені в стек протоколів нижче Агрегації Каналу, який був визначений як підрівень 802.3. Цю невідповідність було вирішено формальною передачею протоколу до групи 802.1 з публікацією IEEE 802.1AX-2008 3 листопада 2008 року .

Протокол Управління Канальною Агрегацією (LACP) В IEEE специфікації Протокол Управління Канальною Агрегацією (LACP) надає спосіб для управління групуванням декількох фізичних портів з метою формування одного логічного каналу. LACP дає можливість мережевому пристрою узгодити автоматичне групування каналів, посилаючи LACP кадри партнеру (безпосередньо підключеному пристрою, яке також підтримує LACP).

Особливості LACP та практичні приклади Максимальна дозволена кількість згрупованих портів в агрегованому каналі: Допустимі значення, як правило, від 1 до 8. LACP кадри надсилаються з MAC-адресою багатоадресної групи 01:80:c2:00:00:02 (01-80-c2-00-00-02) У період виявлення LACP LACP кадри передаються кожну секунду Механізм «залишатися живим» (keep alive) для учасників каналу: (за замовчуванням: повільно = 30 с., швидко = 1 с.) LACP може мати режим балансування навантаження канал-порту: Ціле число зв'язок (link-id), яке ідентифікує порт учасника для балансування навантаження. Діапазон становить від 1 до 8. Режими LACP : активний: Включає LACP безумовно. пасивний: Вмикає LACP тільки при виявленні LACP пристрою. (Це стан за замовчуванням)

Переваги перед статичною конфігурацією Аварійне переключення відбувається автоматично: Коли з'єднання дає збій і між пристроями є, наприклад, медіа-конвертер, система не відчує ніяких проблем з підключенням. При статичній агрегації каналів, пристрій буде продовжувати посилати трафік по каналу який дав збій. Динамічна конфігурація: Пристрій може підтвердити, що конфігурація на іншому кінці може опрацьовувати агрегацію каналів. При статичній агрегації каналів помилка кабелю або налаштування може залишитися непоміченою і викликати небажану поведінку мережі.

Практичні нотатки LACP працює шляхом відправки кадрів (LACPDUs) по всім з'єднанням, які мають включений протокол. Якщо він знаходить пристрій на іншому кінці зв'язку, що також має ввімкнутий LACP, то він буде також самостійно передавати кадри тими ж каналами, дозволяючи виявляти декілька зв'язків між ними, а потім об'єднає їх в одне логічне з'єднання. LACP може бути налаштований на один з двох режимів: активний або пасивний. В активному режимі він завжди буде передавати кадри по налаштованих каналах. У пасивному режимі проте, він діє як «говорити, коли заговорили», і, отже, може бути використаний як спосіб контролю випадкових петель (до тих пір, як інший пристрій знаходиться в активному режимі).

Запатентована агрегація каналів In addition to the IEEE link aggregation substandards, there are a number of proprietary aggregation schemes including Cisco's EtherChannel and Port Aggregation Protocol, Juniper's Aggregated Ethernet, AVAYA's Multi-Link Trunking, Split Multi-Link Trunking, Routed Split Multi-Link Trunking and Distributed Split Multi-Link Trunking, ZTE's «Smartgroup», Huawei's «Eth-Trunk», or Connectify's Speedify. Більшість мережевих пристроїв високого класу підтримують якийсь тип агрегації каналів а також існують програмно-базовані реалізації для багатьох операційних систем — такі, як *BSD lagg пакет, Лінукс bonding драйвер сполучний, Solaris dladm aggr і т. д.

Лінукс bonding драйвер Лінукс bonding драйвер забезпечує спосіб об'єднання декількох мережевих плат (NICs) в єдиний логічний інтерфейс об'єднання двох або більше так званих (NIC) рабів. Більшість сучасних дистрибутивів Linux (дистрибутиви) поставляються з ядром Linux, який має інтегрований Linux bonding драйвер як завантажуваний модуль ядра та ifenslave (if = [мережвий] інтерфейс) попередньо встановлена програма управління рівня користувача. Donald Becker розробляв початковий Linux bonding драйвер. Воно увійшло у вжиток з патчами кластера Beowulf для Linux ядра 2.0.

Режими драйвера Режими Linux bonding драйвера (режими агрегації інтерфейсів мережі) постачаються як параметри модуля ядра bonding під час завантаження. Вони можуть бути задані як аргументи командного рядка до команд insmod або modprobe, але, як правило, вказується в файлі конфігурації який є специфічний для різних дистрибутивів Лінукс. Поведінка одного логічного об'єднаного інтерфейсу залежить від заданого режиму bonding драйвера. Параметр за замовчуванням є balance-rr.

Round-robin (balance-rr) Передача мережевих пакетів в послідовному порядку з першого доступного мережного інтерфейсу (NIC) по останній. Цей режим забезпечує балансування навантаження і відмовостійкість.

Active-backup (active-backup) Тільки один підлеглий NIC є активним. Інший стає активним, якщо, і тільки якщо, активний підлеглий виходить з ладу. The single logical bonded interface's MAC address зовні видно тільки на одній NIC (порт), щоб уникнути спотворення в мережевому комутаторі. Цей режим забезпечує відмовостійкість.

XOR (balance-xor) Передача мережевих пакетів на основі [(вихідний МАС-адреса XOR з МАС-адресою призначення) по модулю NIC лічильника веденого]. При цьому вибирається один і той же NIC рабиню для кожного призначення MAC-адреси. Цей режим забезпечує балансування навантаження і відмовостійкість.

Broadcast (broadcast) Передача мережевих пакетів на всіх підлеглих мережевих інтерфейсів. Цей режим забезпечує відмовостійкість.

IEEE 802.3ad Динамічна агрегація кагалів (802.3ad)(LACP) Створює агрегаційні групи, які поділяють ті ж налаштування швидкості і дуплексів. Використовує всі підлеглі мережеві інтерфейси в активній групі агрегації відповідно до специфікації 802.3ad.

Адаптивне балансування навантаження передачі (balance-tlb) Режим Лінукс bonding драйвера, який не вимагає будь-якої спеціальної підтримки мережевого комутатора. Вихідний трафік пакетних розподіляється відповідно до поточного навантаженням (розрахованого по відношенню до швидкості) на кожному підпорядкованому мережевому інтерфейсі. Вхідний трафік приходить на один з призначених на даний момент мережевий інтерфейс. Якщо цей приймальний інтерфейс виходить з ладу, то тоді інший бере МАС-адресу інтерфейсу, що відмовив.

Адаптивне балансування навантаження (balance-alb) Включає в себе balance-tlb плюс балансування вхідного навантаження (RLB) для трафіку IPv4 і не вимагає будь-якого спеціального налаштування комутатора. Балансування вхідного навантаження досягається за рахунок ARP домовлення. Драйвер bonding перехоплює ARP Відповіді послані локальною системою на їх виході і перезаписує вихідну апаратну адресу унікальною апаратною адресою одного з мережевих інтерфейсів, що є в одному логічному об'єднаному інтерфейсі, так що різні мережеві-ровесники використовують різні МАС-адреси для пакетної передачі трафіку.

Драйвер Linux Team  Linux Team драйвер забезпечує альтернативу для bonding драйвера. Основна відмінність полягає в тому, ядерна частина драйвера Team містить тільки важливий код а інша частина коду (перевірки посилань, реалізації LACP, прийняття рішень і т. д.) виконується в просторі користувача як частина teamd сервісу.

Використання

Мережева магістраль Агрегація каналів забезпечує недорогий спосіб будувати високошвидкісну магістральну мережу, яка передає набагато більше даних, ніж один єдиний порт або пристрій. Агрегація каналів також дозволяє поступово збільшувати швидкість магістральної мережі в міру зростання мережі без необхідності заміни всього та купівлі нового обладнання.