Проблемы асимметричной маршрутизации

Просмотр категорий

Проблемы асимметричной маршрутизации

4 min read

Обзор #

В этой статье объясняется, как выявлять и устранять проблемы. проблемы асимметричной маршрутизации в RELIANOID развертывание, когда балансировщик нагрузки имеет несколько сетевых интерфейсов, подключенных к разным подсетям.

Такая ситуация может возникнуть, когда клиентам на стороне фронтенда необходимо получить доступ к бэкэнд-сервисам, расположенным в другой подсети, в то время как балансировщик нагрузки имеет интерфейсы в обеих сетях.

relianoid_asimetric_routing

Неправильное поведение маршрутизации может привести к тому, что ответный трафик будет выходить через другой интерфейс, отличный от того, который использовался для входящего запроса, что приведет к... асимметричная маршрутизация.

Описание проблемы #

В некоторых случаях развертывания RELIANOID Балансировщик нагрузки настроен с использованием нескольких интерфейсов, подключенных к различным сетям.

Следующая конфигурация представляет собой Пример среды, использованной в демонстрационных целях..

Интерфейс Cеть Цель
eth0 192.168.1.0/24 Управление и менеджмент
eth1 192.168.110.0/24 Frontend
eth2 192.168.100.0/24 Приложение / Бэкенд

Серверы бэкэнда расположены в 192.168.100.0/24 подсеть и доступ к ним осуществляется через фермы, настроенные на балансировщике нагрузки.

Однако некоторые клиенты находятся в 192.168.110.0/24 Сети также необходимо получить доступ к сервисам, размещенным в ней. 192.168.100.0/24 сеть.

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

Это приводит к асимметричная маршрутизациячто может привести к сбоям соединения или потере пакетов.

Пример конфигурации интерфейса #

relianoid_example_interface_configuration

Что такое асимметричная маршрутизация? #

Асимметричная маршрутизация возникает, когда Входящий и исходящий трафик одного и того же соединения следует по разным сетевым путям..

Пример потока #

Конечный маршрут: 192.168.110.11 через eth2 (Клиент) > 192.168.100.100 (Балансировщик нагрузки) > 192.168.100.42 (Бэкенд)

Обратный путь (неверный): 192.168.100.42 (Бэкенд) > 192.168.100.100 (Балансировщик нагрузки) > 192.168.110.11 через eth1 (Клиент)

Поскольку обратный трафик проходит через другой интерфейс, промежуточные устройства, такие как межсетевые экраны или маршрутизаторы, могут отбрасывать пакеты.

Как работают таблицы маршрутизации #

RELIANOID использования таблицы маршрутизации для каждого интерфейса для управления тем, как трафик перенаправляется между сетями.

Каждый интерфейс автоматически генерирует свою собственную таблицу маршрутизации.

Примеры таблиц маршрутизации: table_eth1, table_eth2

Эти таблицы маршрутизации определяют:

  • Маршруты, связанные с интерфейсом
  • Шлюзы, используемые для переадресации трафика.
  • Интерфейсы, которым разрешена маршрутизация трафика.

В каждой таблице маршрутизации интерфейсы можно настроить следующим образом:

Управляемые интерфейсы #

Интерфейсы, которым разрешено маршрутизировать трафик в таблице маршрутизации с использованием функции пересылки IP-пакетов.

Неуправляемые интерфейсы #

Интерфейсы, исключенные из решений по маршрутизации для данной таблицы и пересылки IP-пакетов, не будут применяться к этим интерфейсам.

Контролируя, какие интерфейсы являются управляемыми, а какие — неуправляемыми, администраторы могут влиять на поток трафика через балансировщик нагрузки и предотвращать конфликты маршрутизации.

Пример таблицы маршрутизации #

relianoid_example_routing_table

Решение #

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

В этом случае, Параметр eth1 следует удалить из таблицы маршрутизации. table_eth2, обеспечивая маршрутизацию трафика через правильный шлюз.

relianoid_simetric_routing

Решение с использованием веб-интерфейса. #

  1. Перейдите в раздел: Сеть > Маршрутизация
  2. Выберите таблицу маршрутизации, связанную с внутренним интерфейсом: table_eth2
  3. Прокрутите страницу вниз.
  4. Найдите Управляемые интерфейсы .
  5. Переместить интерфейс eth1 от Управляемые интерфейсы в Неуправляемые интерфейсы.

Это предотвращает прямую маршрутизацию трафика через интерфейс внешнего пользователя при использовании таблицы маршрутизации внутреннего интерфейса.
решение_с_использованием_веб-графики

Решение с использованием командной строки #

Аналогичную конфигурацию можно применить и с помощью RELIANOID Интерфейс командной строки.

Шаг 1: Включите доступ к API. #

Перейдите в раздел: Система > Пользовательские настройки

Включите доступ к API и настройте ключ API. Вы можете либо определить свой собственный ключ, либо сгенерировать случайный.

После создания ключа скопируйте и сохраните его, так как он понадобится при первом доступе к командной строке с помощью noid-cli.

Шаг 2: доступ RELIANOID CLI #

В системной консоли выполните следующую команду:

noid-cli

Введите ключ API, когда появится соответствующий запрос.

Шаг 3: Удалите интерфейс из таблицы маршрутизации. #

Выполните следующую команду:

network-routing-table-unmanaged add table_eth2 -interface eth1

Эта команда предотвращает маршрутизацию трафика. eth1 при использовании таблицы маршрутизации table_eth2.

Шаг 4: Отмена настроек (необязательно) #

При необходимости конфигурацию можно отменить с помощью следующей команды:

network-routing-table-unmanaged remove table_eth2 eth1

Лучшие практики #

  • Вносите изменения в маршрутизацию во время часы низкой загруженности или периоды технического обслуживания.
  • После применения настроек проверьте подключение.
  • Убедитесь, что изменения в маршрутизации не затрагивают другие сервисы.

Заключение #

Проблемы асимметричной маршрутизации могут возникать, когда балансировщик нагрузки подключен к нескольким сетям, и трафик возвращается через другой интерфейс, отличный от того, который использовался для входящего соединения.

In RELIANOIDЭту проблему можно решить, скорректировав конфигурацию таблиц маршрутизации и исключив конфликтующие интерфейсы из определенных таблиц маршрутизации.

Это гарантирует, что трафик будет следовать по правильному сетевому пути и предотвратит проблемы с подключением.

📄 Загрузите этот документ в формате PDF #

    EMAIL: *

    Powered by BetterDocs