Link agregation


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

В этой теме 6 ответов, 3 участника, последнее обновление  Pavel Alexei 3 года/лет, 7 мес. назад.

  • Автор
    Сообщения
  • #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.

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