Сетевые ГУРУ - отказоустойчивость IP в сочетании с балансировкой нагрузки... Есть ли такое ПО? Возможно ли это?

Сетевые ГУРУ - отказоустойчивость IP в сочетании с балансировкой нагрузки... Есть ли такое ПО? Возможно ли это?

Я экспериментировал с решениями высокой доступности несколько дней и пока что пришел к выводу, чтоЮКАРПочень полезно для отказоустойчивости IP.
Это очень просто и делает свою работу.

Я думал о том, чтобы сделать еще один шаг вперед:
еслимаршрутизаторкоторый соединяет два узла, использующих один и тот же IPбудет отправлять ВСЕ пакеты на оба узла(всегда), тогда я мог быдостичь гораздо большей балансировки нагрузки.
Это похоже на решение «главный-главный» вместо «главный-резервный».

Исходные IP-адреса можно разделить.
Theгруппа избыточности, скажем, два таких узла, разделяют один ("виртуальный") IP, как сказано.
Пока они оба работают, они просто разделяют исходный IP (его простой номер) клиента и знают, как реагировать.

Например, Node1 берет IP-адреса, которые делятся на 2.
Node2 берет остальные.
Клиент инициирует соединение TCP/IP (через общий IP-адрес).
Маршрутизатор, соединяющий оба узла, отправляет этот запрос обоим.
Если IP-адрес клиента идеально делится на 2, то Node1 отвечает.
В этот момент Node2 игнорирует, потому что он знает об Node1.

Если один узел выходит из строя, например Node1, другой (Node2) обнаруживает это - обычно,как это делает UCARP!
В этот момент Node2 начнет обслуживать остальных клиентов.

Когда Node1 возвращается, Node2 перестает отвечать на запросы SYN (первые шаги инициации соединения TCP/IP), поступающие с IP-адреса, делящегося на 2, позволяя Node1 продолжать обслуживание.

Возможная проблема может возникнуть со стороны маршрутизатора.: Необходимо отправлять каждый входящий пакет на узлы X в группе избыточности. Высокая(более) высокая внутренняя сетевая нагрузка.

Другая возможная проблемазаключается в том, что каждый узел фактически получает очень много пакетов, даже тех, которые ему «не нужны».

С сегодняшними маршрутизаторами/сетевыми картами я считаю, что это очень небольшая цена по сравнению с преимуществамиочень высокая доступность.
Не говоря уже о том, что в таком случае я быиспользовать 100% моих ресурсов (в хорошем смысле)вместо того, чтобы иметь один или несколько «резервных» серверов, которые не выполняют никаких функций, кроме «резервирования».

Мой точный вопрос:
1) Существует ли уже такое решение? (с открытым исходным кодом, бесплатное, на базе Linux).
2) Может ли маршрутизатор поддерживать такое? Какие стандарты он должен поддерживать? Что бы я спросил у провайдера DS/VPS относительно этой возможности?

В любом случае, вот некоторые из моих размышлений по этому поводу. Я был бы рад получить краткий ответ, подкрепленный ссылками и несколькими словами. Больше, конечно, приветствуется :)

решение1

Я не думаю, что это возможно / осуществимо. Этого определенно не существует, потому что это имеет очень ограниченное применение по сравнению со стандартными подходами.

Основная проблема, которую я вижу, — это отслеживание каждого входящего и исходящего ip-пакета и синхронизация состояния IP-стека на обоих компьютерах таким образом, чтобы это было полностью прозрачно для приложения. Как можно «симулировать» приложение на узле 1, выполняющее работу, но не отвечающее, или магическим образом получающее состояние узла 2? Оно не может просто продолжать tcp-коммуникацию приложения узла 1 без... специального программирования.

Связанный контент