Направлять ответ пакета через тот же интерфейс запроса автоматически (в среде балансировки нагрузки) - PullRequest
0 голосов
/ 29 февраля 2020

У меня есть сеть с 2 маршрутизаторами (B и C), обслуживающими 1 клиента каждый, и маршрутизатором (A), который управляет некоторыми задачами базовой сети.

enter image description here

При обычном доступе Inte rnet от клиента маршрутизатора B (красные стрелки) пакет отправляется на маршрутизатор B, который затем достигает маршрутизатора A. Маршрутизатор A выполняет NAT и после получения ответ с помощью stati c маршрута, который он знает, через какой интерфейс он должен отправить ответ.

Однако эта система имеет компонент балансировки нагрузки, который при сбое восходящей линии связи B будет перенаправлять трафик c клиента маршрутизатора B к маршрутизатору C (зеленые стрелки) примерно так: traffi c поступает на маршрутизатор B, перенаправляется на маршрутизатор C, который затем пересылается на A.

И здесь начинается проблема. На маршрутизаторе A у меня есть маршрут stati c для клиентских сетей, например:

  • traffi c в сеть B, go через интерфейс маршрутизатора B и
  • traffi c в C сеть, go через интерфейс маршрутизатора C.

Однако, поскольку я выполняю балансировку нагрузки, мне нужен ответ клиенту B на Маршрутизатор с go по C, если запрос также поступил через этот интерфейс. Обратите внимание, что балансировка нагрузки происходит только на уровне B и C, и я не могу управлять этим или когда происходит перенаправление.

Я прочитал несколько вопросов и ответов об «отправке ответа через тот же интерфейс запроса» , например:

https://serverfault.com/questions/228195/answering-on-the-same-interface-where-the-request-came-from/228258

, но все они требуют добавления команд ip route и ip rule.

Мой вопрос есть: в Linux системах есть ли способ автоматически маршрутизировать ответ пакета через интерфейс, с которого поступил запрос (а не в соответствии с маршрутами stati c)? Любой инструмент? Если нет, то как я могу решить эту проблему, если это вообще возможно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...