Как лучше организовать отказоустойчивость linux сервера двумя свичами?
Есть сервера, каждый имеет 4 сетевых карты 1GE. На серверах установлен Linux актуальной версии, организован bridge, где живут LXC контейнеры. Пока все сетевые порты агрегированы в bond LACP и подключены к одному свичу. Хочется добиться схемы отказоустойчивости с двумя свичами. Свичи — Cat2960G и они очень нервно относятся к "прыганью" маков, поэтому balance-alb толком не работает (при отключении одного из шнурков, сервер становится недоступным целиком на неопределённое время).
Как правильно организовать включение каждого сервера в два свича, чтобы при пропадании одного из них всё продолжало работать? В идеале, при работе обоих обеспечить балансировку. Так как за бондом по сути бридж, если не LACP, то гипотетически можно словить петлю. Организовывать отказоустойчивость на уровне L3 (quagga/bird OSPF)?
В вашем случае, я бы остановился на active-backup от STP. С quagga тоже можно сделать, но там мороки много если на сервере много IP будет, то придется часто переделывать конфиг на квагге, можно и редистрибюцию настроить, но если будет кейс где не надо редистрибьютить все IP, а надо только конкретные и тд. Или на одном физ сервере будут много виртуалок с другими подсетями или же часто будут меняться или добавляться, то придется часто возиться с квагой. Если траффик не больше 1Г то лучше сделать active-backup. В идале надо бы поставить свичи, которые умеют работать в стеке и от стека уже тянуть агрегированые каналы до сервера.
Достаточно проработанный ответ. Хотел бы развить тему. Итак.
В случае с active-backup у меня есть предположение каждые два порта бондить в LACP до каждого свича, а потом делать бонд active-backup сверху на два LACP. Вопрос здесь только в том, поддерживается ли "бонд на бонде", пока этот вопрос не изучал подробно. Вопрос остаётся в скорости восстановления трафика на бэкап линке после вывода основного. Там вроде как маки переезжают на соседнюю сетевую карту, как на это отреагируют свичи — не очень понятно.
В случае с кваггой или бирдом нравится более надёжная (и понятная) сходимость, потенциальный ECMP, избежание петель. Ручной мороки немного, если редистрибьютить статические маршруты с сервера. Просто на каждую виртуалку выделять /30 (или /31) из серой сети под эти цели. Из минусов — потенциальные падения квагги и необходимость тратить ресурсы на маршрутизацию.
Вадим Рыбалко, создать бонд из бондов на циско не получится. Сделайте по 2 линка на каждый свич, между линками и свичами поднять LACP. STP будет обрабатывать уже не физический порт, а бонд и в таком случае у вас будет один бонд активный, а второй бекап. На циско настройте rapid-pvst и в сторону серверов portfast, в таком случае резервный линк поднимится за 1-2 сек. А МАКи переедут тоже быстро, если трафик постоянный, то я думаю что как только поднимится резервный линк пока вы впишите show mac, чтобы посмотреть все ли маки появились они уже будут атм :)
Кваггу использовал только в тестовом стенде, в тестах работала норм, но там нагрузка маленькая была, так что подсказать не могу. Раньше читал на разных форумах, что у мини провайдеров на линукс сервере с кваггой роутилисиь несколько гигабит без проблем.