Назад | Перейти на главную страницу

Балансировка нагрузки между двумя (или более) туннелями GRE

У меня есть размещенная служба (например, zScaler ™), которая заставляет меня отправлять трафик на нее через туннели GRE. Мне предоставлено два устройства, и я хочу сбалансировать нагрузку моего трафика между двумя туннелями.

Я всегда мог статически вырезать сеть, но я бы не стал этого делать.

Мое предлагаемое решение состоит в том, что я мог бы создать два маршрута с равной стоимостью между двумя туннелями, но не балансировал бы для каждого пакета. Поэтому часть потока пойдет через один туннель, а часть - через другой. Я хочу избежать этого, поскольку это затрудняет устранение неполадок, вызовет проблемы с устройствами, отслеживающими соединения, и, вероятно, вызовет проблемы с проверкой SSL.

Есть ли способ, основанный на устройстве или иной (я владею оборудованием безопасности и могу поставить балансировщик нагрузки перед ним), чтобы сбалансировать туннели GRE на основе исходного IP-адреса исходного клиента? Следовательно, клиент X всегда проходит через туннель GRE A, а клиент Y проходит через туннель GRE B.

Мое сетевое оборудование - стандартные коммутаторы Cisco L3 и ASA.

Использование балансировки равной стоимости на основе пакетов не работает с GRE, так как это приведет к переупорядочиванию потоков пакетов и их нарушению. Кажется, вам действительно нужна многопутевая маршрутизация на основе conntrack, которую можно легко настроить на любом маршрутизаторе / брандмауэре на базе Linux. Многопутевая маршрутизация на основе IP-адресов еще проще в настройке.