Как избавиться от асимметричной маршрутизации трафика
Last updated
Last updated
Часто при попытке настроить доступ в удаленные сети через роутер в локальной сети возникает асимметричная маршрутизация. Она делает прохождение пакетов между двумя локальными сетями невозможной. В этой статье описаны случаи возникновения асимметричной маршрутизации и способы от нее избавиться.
Допустим, в локальной сети UTM есть роутер, устанавливающий связь с другими сетями. UTM - шлюз по умолчанию для клиентов сети. Требуется настроить маршрутизацию на UTM так, чтобы клиенты сети 10.80.1.0/24
получали доступ в удаленную сеть 192.168.10.0/24
и обратно через роутер.
Пример неправильной топологии сети:
Здесь:
Ideco UTM - шлюз для локальной сети 10.80.1.0/24
.
10.80.1.2
- роутер, который имеет доступ в удаленную сеть 192.168.10.0/24
.
Красная стрелка - двусторонняя связь роутера с удаленным шлюзом (или тоже роутером), которая обеспечивает доступ к удаленной сети 192.168.10.0/24
(туннель к шлюзу, расположенному в интернете, или маршрут до роутера в соседнюю сеть предприятия).
Черные стрелки - трафик от хостов локальной сети 10.80.1.0/24
до удаленной сети 192.168.10.0/24
- через шлюз UTM (10.80.1.1
) и роутер (10.80.1.2
).
Пунктирная стрелка - участок трафика, который роутер возвращает хостам локальной сети, минуя UTM, что приводит к непринятию такого трафика хостами локальной сети.
Часть трафика от клиентов до роутера идет через шлюз, а часть - непосредственно от роутера абонентам сети. Разная маршрутизация на разных участках делает прохождение пакетов между двумя локальными сетями невозможной.
Аналогичная ситуация складывается, когда в одной локальной сети находится хост и сервер, на котором работает ресурс, опубликованный в интернете при помощи DNAT-правила:
188.114.8.8
- адрес сайта в интернете;
10.80.1.1
- адрес Ideco UTM в локальной сети;
10.80.1.2
- адрес сервера в локальной сети;
10.80.1.5
- адрес хоста в локальной сети;
Красная стрелка - ответ напрямую от сервера хосту в локальной сети.
Когда хост 10.80.1.5
обращается на сайт по внешнему адресу 188.114.8.8
(например, в случае обращения по доменному имени, которое резолвится во внешний IP), трафик проходит через UTM. На UTM срабатывает правило DNAT и перенаправляет трафик на сервер 10.80.1.2
. Однако сервер отвечает непосредственно хосту в обход UTM, и ответ не проходит.
Чтобы схема работала правильно, нужно:
1. Вынести роутер в отдельную локальную сеть (DMZ) (например, 10.90.1.0/24
), чтобы избежать асимметричной маршрутизации между роутером и клиентами локальной сети.
2. Настроить DMZ на UTM, добавив еще один IP-адрес на локальный интерфейс UTM 10.90.1.1/24
, к локальной сети которого подключен роутер.
3. На роутере настроить IP-адрес из адресного пространства новой сети 10.90.1.2
. Шлюзом указать дополнительный IP-адрес, настроенный на локальном интерфейсе UTM из этой сети 10.90.1.1
.
Физически роутер и клиенты локальной сети будут находиться в одном сегменте, имея при этом разную IP-адресацию и шлюзы. Как правило, схемы с виртуальной изоляцией сетей на основе одного физического интерфейса достаточно.
Также можно физически изолировать локальную сеть клиентов UTM и роутер. Для этого:
Подключите к Ideco UTM дополнительную сетевую карту.
Настройте на ней дополнительный локальный интерфейс и отдельную IP-адресацию в этой сети.
Укажите в качестве шлюза для роутера адрес, настроенный на дополнительном локальном интерфейсе.
Физически роутер будет находиться в сегменте дополнительной сетевой карты.
Чтобы избавиться от асимметричной маршрутизации между клиентами в локальной сети и сервером, нужно выделить в DMZ сервер:
Если по какой-то причине изолировать сервер в DMZ невозможно, создайте на UTM специальное SNAT-правило.
1. Откройте в режиме редактирования Локальный интерфейс, к которому подключены пользователи нужной вам локальной сети (10.80.1.1/24
), нажав на напротив его названия.
3. Нажмите на и введите IP-адрес DMZ для изоляции роутера: