Link agregation

Главная Форумы POWER Systems AIX/Hardware Link agregation

Просмотр 6 веток ответов
  • Автор
    Сообщения
    • #19938
      Pavel Alexei
      Участник

      Недавно знакомый настаивал, что у него bonding на линукс на 2-х адаптерах, подымается под 2Gb, при трафике между 2-мя!!! узлами. Спрашивал, можно ли такое сделать ли на AIX.
      Честно говоря, я даже не очень представляю как это в принципе можно сделать при любом раскладе.
      Есть делать etherchannel, будь то “родной” Cisco или LACP, то пакеты по линкам разбрасываются согласно hash функции, и трафик от узла A на узел B, будет пролетать всегда только через один и тот же порт. Будь это hash по MAC или IP.
      Есть куча switch independent agregation, типа софтов от Broadcom или Intel, или linux bonding. Но я понимаю как оно работает через ARP таблицы. Т.е. есть сервер и кучу клиентов, части клиентов трафик уходит через одну карту и “демонстрируется” ейный MAC, другим – другая карта.
      Но как это можно сделать так, чтоб трафик от узла А уходил на узел B, через разные порты, я не представляю. Нет, оно конечно же можно, но как себя поведет при этом свич. Узел А подключен к нему через 2 порта, и трафик с одним и тем же SRC MAC “прелетае” то через один порт, то через другой…. Свич должен все время поддерживать таблицу MAC по портам. А SRC MAC не может быть разный, он же соответсвует MAC в ARP таблице на узле B. Свичу же надо как-то трафик от узла B слать на узел А. Через какой порт?
      Полез в настройки Etherchannel на AIX и опа, а тут все можно. Можно hash не только по адресам, но и TCP/UDP портам, и там так и написано, чтоб “разносить” трафик между 2-мя узлами на разные карты. И даже round-robin есть.
      Полез в документацию, понял, что это все через etherchannel делается. Но это “туда”, обратно балансировку свич делает в port-channel, а они как знаю умеют только по ip или MAC, tc/udp портами не видел, нету и round-robin. Получается что все равно “обратный” трафик от узла B на узел А свич будет гнать только через один из линков.

      А есть ли вообще решения увеличения скорости между 2-мя узлами, агрегируя порты?

    • #19939
      Aleksandr
      Участник

      На сколько мне известно, на Cisco есть возможность агрегирования портов с распределением нагрузки по портам, НО сетевеки этого обычно делать не любят, так как данная настройка ОЧЕНЬ сильно грузит процессор и при большом трафике укладывает коммутатор на лопатки.

    • #19940
      Aleksandr
      Участник
    • #19941
      Pavel Alexei
      Участник

      Я про это и писал. Только остал я от жизни. В “свое” время port-channel load balansing был только по MAC и IP address. Про порты я только сейчас увидел. 🙁
      Хотя наверное это не для всех свичей действительно. Пойду поизучаю свежие cisco мануалы.

      P.S. интересно, можно ли такое на switch independent технологии получить. Понятно, что уже не для AIX.

    • #19942
      Pavel Alexei
      Участник

      не, все-таки я был недалеко от правды
      Может и 4500 и 6500 “понимает” tcp/up порты, но “обычные” свичи – нет
      http://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3750x_3560x/software/release/15-0_1_se/command/reference/3750xcr/cli1.html#wp1864309
      только mac и ip.

    • #19944

      Есть делать etherchannel, будь то “родной” Cisco или LACP, то пакеты по линкам разбрасываются согласно hash функции, и трафик от узла A на узел B, будет пролетать всегда только через один и тот же порт. Будь это hash по MAC или IP.

      Если бы это было так как вы описываете, то бондинг не имел бы никакого практического смысла. В 802.ad есть несколько алгоритмов, но в общем суть состоит в том, что это задача отсылающей стороны организовать равномерную отсылку по всем интерфейсам. Самой простой алгоритм rr: каждый следущий пакет идет на следущий по порядку интерфейс.

      У нас в инфраструктуре все построено на бондинге: в основном 802.3ad. Это технология, на мой взгляд из разряда must have в любой инфраструктуре.

    • #19945
      Pavel Alexei
      Участник

      http://en.wikipedia.org/wiki/Link_aggregation
      есть 2 типа агрегации портов:
      – switch dependent: static (802.3ad), etherchannel (cisco proprietary), LACP (802.1ax)
      – switch independent: средствами софта на OC, включая linux bonding
      Первый требует настройки свича, и трафик распределяется по портам согласно hash от MAC или IP address. Некоторые свичи уже умеют использовать hash от tcp/udp портов. Равномерное распределение добивается только кол-вом “клиентов”. Трафик от конкретного “сервера” до конкретного “клиента” всегда проходит через один и тот же порт в агрегации (конечно если это не hash по портам) Я по крайней мере только такие реализации видел на практике. Что касается Cisco, то как работает этот hash есть документ
      http://www.cisco.com/c/en/us/support/docs/lan-switching/etherchannel/12023-4.html
      Второй путь не требует конфигурации свича, и трафик распределяется по интерфейсам уже самим софтом, в зависимости от “погоды на Марсе”. Но при этом каждый клиент, всегда работает только с одним из NIC сервера. Сервер как-бы “обманывает” клиентов и при ARP запросах отвечает “по разному”, раздавая поочередно MAC своих NIC.

Просмотр 6 веток ответов
  • Для ответа в этой теме необходимо авторизоваться.