Link agregation


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

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

Aliexpress INT
  • Автор
    Сообщения
  • #19938
    Картинка профиля Pavel Alexei
    Pavel Alexei
    Участник
    Aliexpress INT

    Недавно знакомый настаивал, что у него 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
    Aleksandr
    Участник

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

  • #19940
    Картинка профиля Aleksandr
    Aleksandr
    Участник
  • #19941
    Картинка профиля Pavel Alexei
    Pavel Alexei
    Участник

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

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

  • #19942
    Картинка профиля Pavel Alexei
    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
    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.

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