ѕодпишитесь на наш Telegram-канал Ѕудьте в курсе последних новостей 👇 😉 ѕодписатьс€
ѕоддержим в трудное врем€ —пециальное предложение на техническую поддержку вашей »“ - инфраструктуры силами наших экспертов ѕодобрать тариф
ѕоставка оборудовани€ √аранти€ и помощь с настройкой. —кидка дл€ наших читателей по промокоду WIKIMERIONET  упить
»нтерфейс статистики Merion Mertics показывает ключевые диаграммы и графики по звонкам, а также историю звонков в формате, который легко поймет менеджер ѕопробовать бесплатно
¬недрение
офисной телефонии
Ўаг на пути к созданию доступных унифицированных коммуникаций в вашей компании ¬недрить
»нтеграци€ с CRM ѕомогаем навести пор€док с данными
и хранить их в единой экосистеме
ѕодключить
»“ Ѕезопасность ”мна€ информационна€ безопасность дл€ вашего бизнеса «аказать

јгрегирование каналов

ѕакетна€ коммутаци€. „асть 2

ћерион Ќетворкс

11 минут чтени€

Ёто продолжение статьи про пакетную коммутацию. ѕерва€ часть тут.

—хемы агрегации каналов берут несколько физических каналов и объедин€ют их в один виртуальный канал. ¬ цел€х протоколов маршрутизации и алгоритмов предотвращени€ петель, таких как св€зующее дерево, виртуальный канал обрабатываетс€, как если бы он был одним физическим каналом.

јгрегирование каналов используетс€ дл€ увеличени€ пропускной способности между узлами сети без необходимости замены более медленных физических каналов на более быстрые. Ќапример, два канала 10 √бит/с можно объединить в один канал 20 √бит/с, тем самым удвоив потенциальную полосу пропускани€ между двум€ узлами, как показано на рисунке 6. —лово Ђпотенциалї было выбрано тщательно, поскольку агрегированные каналы на практике не масштабируютс€ линейно.

ѕроблема, с которой сталкиваетс€ агрегаци€ каналов, заключаетс€ в определении, какие пакеты должны быть отправлены по какому элементу св€зи. »нтуитивно это может показатьс€ не проблемой. ¬ конце концов, казалось бы, имеет смысл использовать группу каналов св€зи в циклическом режиме. ѕервоначальный фрейм будет отправлен по первому элементу св€зки, второй фрейм - по второму элементу и так далее, в конечном итоге возвраща€сь к первому элементу св€зки. “аким образом, канал должен использоватьс€ идеально равномерно, а пропускна€ способность - линейно.

–ис. 6 јгрегирование каналов

¬ реальной жизни существует очень мало подобных реализаций, в которых агрегированные каналы используютс€ на такой циклической основе, как эта, потому что они рискуют доставить неупор€доченные пакеты. ѕредположим, что первый кадр Ethernet отправл€етс€ первому звену нисход€щего канала, а второй кадр - второму элементу нисход€щего канала сразу после него. ѕо какой-то причине второй кадр попадает на другой конец раньше первого кадра. ѕакеты, содержащиес€ в этих кадрах, будут доставлены принимающим узлам в неупор€доченном пор€дке - пакет два перед пакетом один. Ёто проблема, потому что теперь на хост возлагаетс€ вычислительна€ нагрузка по переупор€дочению пакетов, чтобы можно было правильно собрать всю дейтаграмму.

ѕоэтому большинство поставщиков реализуют хеширование потоков, чтобы гарантировать, что весь поток трафика использует один и тот же элемент пакета. “аким образом, нет никакого риска того, что хост получит пакеты не по пор€дку, так как они будут отправл€тьс€ последовательно через один и тот же элемент канала.

’еширование потока работает путем выполнени€ математической операции над двум€ или более статическими компонентами потока, такими как MAC-адреса источника и получател€, IP-адреса источника и получател€, протокол управлени€ передачей (TCP) или протокол дейтаграмм пользовател€ (UDP). номера портов дл€ вычислени€ элемента св€зи, который будет использовать поток. ѕоскольку характеристики потока статичны, алгоритм хешировани€ приводит к идентичным вычислени€м дл€ каждого кадра или пакета в потоке трафика, гарантиру€, что один и тот же канал будет использоватьс€ в течение всего срока службы потока.

’от€ хеширование потока решает проблему неупор€доченных пакетов, оно создает новую проблему. Ќе все потоки имеют одинаковый размер. Ќекоторые потоки используют большую полосу пропускани€, например те, которые используютс€ дл€ передачи файлов, резервного копировани€ или хранени€. »х иногда называют Ђслоновьими потокамиї (elephant flows). ƒругие потоки довольно малы, например, те, которые используютс€ дл€ загрузки веб-страницы или св€зи с использованием передачи голоса по IP. »х иногда называют Ђмышиными потокамиї (mouse flows). ѕоскольку потоки имеют разные размеры, некоторые элементы св€зи могут работать на полную мощность, а другие - недостаточно.

Ёто несоответствие в использовании возвращает нас к вопросу о линейном масштабировании. ≈сли бы фреймы были сбалансированы по нагрузке через агрегированный набор каналов совершенно равномерно, то добавление новых каналов в набор равномерно увеличило бы емкость. ќднако алгоритмы хэшировани€ в сочетании с непредсказуемым объемом потоков трафика означают, что св€занные каналы не будут загружатьс€ равномерно.

«адача сетевого администратора - пон€ть тип трафика, проход€щего через агрегированный канал, и выбрать доступный алгоритм хешировани€, который приведет к наиболее равномерному распределению нагрузки. Ќапример, некоторые соображени€ по этому поводу:

  • ќбмениваютс€ ли многие хосты в одном широковещательном домене друг с другом через агрегированный канал? ’еширование против MAC-адресов, найденных в заголовке кадра Ethernet, €вл€етс€ возможным решением, потому что MAC-адреса будут разными.
  • ќбмениваетс€ ли небольшое количество хостов с одним сервером через агрегированный канал? ¬ этом сценарии может не хватить разнообрази€ MAC-адресов или IP-адресов. ¬место этого хеширование по номерам портов TCP или UDP может привести к наибольшему разнообразию и последующему распределению трафика по агрегированным ссылкам. ѕротокол управлени€ агрегацией каналов (LACP)

ѕри объединении каналов св€зи необходимо учитывать сетевые устройства на обоих концах канала св€зи и про€вл€ть особую осторожность, чтобы обеспечить формирование пакета каналов св€зи при сохранении топологии без петель. Ќаиболее распространенным способом решени€ этой проблемы €вл€етс€ использование отраслевого стандарта Link Aggregation Control Protocol (LACP), кодифицированного как стандарт 802.3 ad института инженеров электротехники и электроники (IEEE).

Ќа каналах, обозначенных сетевым администратором, LACP объ€вл€ет о своем намерении сформировать агрегированный канал с другой стороной. ƒруга€ сторона, также выполн€юща€ LACP, принимает это объ€вление, если объ€вленные параметры действительны, и формирует канал.  ак только группа каналов сформирована, агрегированный канал переводитс€ в состо€ние пересылки. «атем операторы сети могут запросить LACP дл€ получени€ информации о состо€нии агрегированного канала и о состо€нии его членов.

LACP также знает, когда элемент св€зки выходит из стро€, так как управл€ющие пакеты больше не проход€т через сбойный канал. Ёта возможность полезна, так как позвол€ет процессу LACP уведомл€ть сетевую операционную систему о необходимости пересчета хэшей потока. Ѕез LACP сетевой операционной системе может потребоватьс€ больше времени, чтобы узнать о сбойном канале, что приведет к хешированию трафика к элементу св€зи, который больше не €вл€етс€ допустимым путем.

—уществуют и другие протоколы управлени€ агрегацией каналов. ¬ некоторых случа€х также возможно создавать пакеты каналов вручную без защиты управл€ющего протокола. ќднако LACP доминирует в качестве стандарта, используемого сетевыми поставщиками, а также ведущими операционными системами и поставщиками гипервизоров дл€ агрегации каналов.


Multichassis Link Aggregation

Multichassis Link Aggregation (MLAG) - это функци€, предлагаема€ некоторыми сетевыми поставщиками, позвол€юща€ одному агрегированной св€зке каналов охватывать два или более сетевых коммутатора. „тобы облегчить это, специальный протокол управлени€ поставщика будет работать между коммутаторами-членами MLAG, заставл€€ несколько сетевых коммутаторов действовать так, как если бы они были одним коммутатором, в отношении LACP, протокола св€зующего дерева (STP) и любых других протоколов.

ќбычным обоснованием дл€ MLAG €вл€етс€ физическа€ избыточность, когда сетевому инженеру требуетс€ более низкий уровень (например, Ethernet) смежности между сетевыми устройствами (вместо маршрутизируемого соединени€), а также требуетс€, чтобы св€зка каналов оставалась включенной, если удаленна€ сторона канала выходит из стро€. –аспространение св€зки каналов между двум€ или более коммутаторами позвол€ет выполнить это требование. –исунок 7 демонстрирует это.

–ис 7. Multichassis Link Aggregation

¬ то врем€ как многие сети используют некоторые разновидности MLAG в производстве, другие уклон€ютс€ от этой технологии, по крайней мере частично, потому что MLAG €вл€етс€ собственностью. Ќет такой вещи, как multivendor MLAG. “енденции к лучшему проектированию сети в сторону от широко рассредоточенных коммутируемых доменов, сценарий, который выигрывает у MLAG. ¬место этого при проектировании сети наблюдаетс€ тенденци€ к ограниченным коммутируемым доменам, взаимосв€занным посредством маршрутизации, что устран€ет необходимость в технологи€х MLAG.


ћаршрутизированные параллельные каналы

ћаршрутизируемые плоскости управлени€, называемые протоколами маршрутизации, иногда вычисл€ют набор нескольких путей через сеть с равными затратами. ¬ случае маршрутизации несколько каналов с одинаковой стоимостью могут даже не подключать одну пару устройств; –исунок 8 демонстрирует это.

–ис. 8 ћаршрутизированный ECMP

Ќа рисунке 8 есть три пути:

  • [A, B, D] общей стоимостью 10
  • [A, D] общей стоимостью 10
  • [A, C, D] общей стоимостью 10

ѕоскольку эти три пути имеют одинаковую стоимость, все они могут быть установлены в локальной таблице переадресации в точках A и D. ћаршрутизатор A, например, может пересылать трафик по любому из этих трех каналов в направлении D.  огда маршрутизатор имеет несколько вариантов. чтобы добратьс€ до того же пункта назначени€, как он решает, какой физический путь выбрать?

 ак и в случае с ECMP нижнего уровн€, ответ - хеширование. ћаршрутизированное хеширование ECMP может выполн€тьс€ в различных област€х. ќбщие пол€ дл€ хешировани€ включают IP-адреса источника или назначени€ и номера портов источника или назначени€. ¬ результате хешировани€ выбираетс€ согласованный путь на прот€жении потока L3. “олько в случае сбо€ канала потребуетс€ перестроить поток и выбрать новый канал пересылки.


ћеханизмы обработки пакетов

Ўаги, св€занные с маршрутизацией одного пакета, могут показатьс€ очень простымиЧнайдите пункт назначени€ в таблице, создайте (или извлеките) перезапись заголовка MAC, перепишите заголовок MAC, а затем поместите пакет в правильную очередь дл€ исход€щего интерфейса.  ак бы просто это ни было, все равно требуетс€ врем€, чтобы обработать один пакет. Ќа рисунке 9 показаны три различных пути, по которым пакет может быть коммутироватьс€ в сетевом устройстве.

–ис. 9  оммутаци€ путей

–исунок 9 иллюстрирует три различных пути коммутации через устройство; это не единственные возможные пути коммутации, но они €вл€ютс€ наиболее распространенными. ѕервый путь обрабатывает пакеты через программное приложение, работающее на универсальном процессоре (GPP), и состоит из трех этапов:

  1. ѕакет копируетс€ с физического носител€ в основную пам€ть
  2. ‘изический сигнальный процессор, чип PHY, посылает сигнал на GPP (веро€тно, но не об€зательно, главный процессор в сетевом устройстве), называемый прерыванием.
    1. ѕрерывание заставл€ет процессор останавливать другие задачи (вот почему это называетс€ прерыванием) и запускать небольшой фрагмент кода, который будет планировать запуск другого процесса, приложени€ коммутации, дл€ выполнени€ позже.
    2.  огда приложение коммутации запуститс€, оно выполнит соответствующий поиск и внесет соответствующие изменени€ в пакет.
  3. ѕосле коммутации пакета он копируетс€ из основной пам€ти исход€щим процессором. “акое переключение пакета через процесс часто называетс€ коммутацией процесса (по пон€тным причинам) или иногда медленным путем. Ќезависимо от того, насколько быстрым €вл€етс€ GPP, дл€ достижени€ полной линейной скорости коммутации на высокоскоростных интерфейсах требуетс€ больша€ настройка - до такой степени, что это практически невозможно. ¬торой путь коммутации, показанный на рисунке 9, был разработан дл€ более быстрой обработки пакетов:
  4. ѕакет копируетс€ с физического носител€ в основную пам€ть
  5. ћикросхема PHY прерывает GPP; код обработчика прерывани€, а не вызов другого процесса, фактически обрабатывает пакет.
  6. ѕосле коммутации пакета, пакет копируетс€ из основной пам€ти в процесс вывода, как описано ниже. ѕо пон€тным причинам этот процесс часто называют interrupt context switching; многие процессоры могут поддерживать коммутацию пакетов достаточно быстро, чтобы передавать пакеты между интерфейсами с низкой и средней скоростью в этом режиме. —ам код коммутации, конечно же, должен быть сильно оптимизирован, потому что коммутаци€ пакета заставл€ет процессор прекращать выполнение любых других задач (например, обработки обновлени€ протокола маршрутизации). ѕервоначально это называлось - и до сих пор иногда называетс€ fast switching path. ƒл€ действительно высокоскоростных приложений процесс коммутации пакетов должен быть выгружен с главного процессора или любого типа GPP на специализированный процессор, предназначенный дл€ конкретной задачи обработки пакетов. »ногда эти процессоры называютс€ сетевыми процессорами (Network Processing Units -NPU), подобно тому, как процессор, предназначенный дл€ обработки только графики, называетс€ графическим процессором (Graphics Processing Unit-GPU). Ёти специализированные процессоры €вл€ютс€ подмножеством более широкого класса процессоров, называемых специализированными интегральными схемами (Application-Specific Integrated Circuits -ASIC), и инженеры часто просто называют их ASIC. ѕереключение пакета через ASIC показано как шаги с 7 по 9 на рисунке 9:
  7. ѕакет копируетс€ с физического носител€ в пам€ть ASIC
  8. ћикросхема PHY прерывает работу ASIC; ASIC обрабатывает прерывание путем переключени€ пакета.
  9. ѕосле коммутации пакета пакет копируетс€ из пам€ти ASIC в процесс вывода, как описано ниже.

ћногие специализированные ASIC дл€ обработки пакетов имеют р€д интересных функций, в том числе:

  1. —труктуры внутренней пам€ти (регистры) настроены специально дл€ обработки различных типов адресов, используемых в сет€х.
  2. —пециализированные наборы команд, предназначенные дл€ выполнени€ различных требований к обработке пакетов, таких как проверка внутренних заголовков, переносимых в пакете, и перезапись заголовка MAC.
  3. —пециализированные структуры пам€ти и наборы инструкций, предназначенные дл€ хранени€ и поиска адресов назначени€ дл€ ускорени€ обработки пакетов
  4. ¬озможность повторного использовани€ пакета через конвейер пакетов дл€ выполнени€ операций, которые не могут поддерживатьс€ за один проход, таких как глубока€ проверка пакетов или специализированные задачи фильтрации.