Сценарий резервирования туннеля VPN IPSec по типу "клиент-сервер" на аппаратных шлюзах серии ZyWALL USG

Как настроить аппаратные шлюзы серии ZyWALL USG для реализации сценария резервирования туннеля VPN IPSec по типу "клиент-сервер"? Данный сценарий разработан, проверен и описан под типовую задачу резервирования VPN-туннеля IPSec через Интернет, работающего через одноранговую сеть (L2-канал) провайдера.


Данный сценарий разработан, проверен и описан под типовую задачу резервирования VPN-туннеля IPSec через Интернет, работающего через одноранговую сеть провайдера.

Предположим, есть 2 офиса, локальные сети которых необходимо объединить через туннель VPN IPSec. В каждом офисе есть два провайдера: один предоставляет подключение в одноранговую сеть (L2-канал), а другой - выход в Интернет.
Задача - настроить устройства таким образом, чтобы основной туннель VPN IPSec, который настроен и работает через L2-канал, автоматически резервировался через Интернет в случае неработоспособности L2-канала и возвращался обратно на L2-канал, когда он снова заработает. При этом хосты должны иметь выход в Интернет.

Топология сети:

1. Настройка "сервера" с динамическим правилом VPN IPSec

VPN IPSec это подключение типа "точка–точка" или "точка–многоточка" для объединения локальных сетей зашифрованным туннелем, а не подключение типа "клиент-сервер", поэтому сразу нужно обозначить, почему одно из устройств называется "сервер", а другое "клиент".

"Сервер" в данной топологии - это устройство (ZyWALL USG), которое будет ожидать подключения от условного "клиента" – инициатора туннеля VPN IPSec. Если внешний интернет-канал на устройстве находится за NAT (как в предложенной схеме), тогда с вышестоящего маршрутизатора на ZyWALL USG необходимо пробросить порты UDP 500 и 4500, а также удостовериться, что этот маршрутизатор нормально работает с ESP-протоколом. На "сервере" нужно настроить динамическое правило VPN IPSec (подробное описание и пример применения динамического правила можно найти в статье БЗ-2680), которое  должно переходить с одного интерфейса на другой в случае резервирования и возвращаться обратно.
Основная проблема заключается именно в переключении VPN IPSec-туннеля с интерфейса на интерфейс. Прямой настройки для этого в ZyWALL USG нет, и нужно задействовать механизм, который позволяет вместо адреса 0.0.0.0, указанного в настройках правила VPN Gateway (Сonfiguration > VPN > IPSec VPN> закладка VPN Gateway), в поле Domain Name / IP подставлять наибольший по метрике интерфейс. Метрика интерфейса может зависеть от срабатывания функции Сonnectivity check (дополнительную информацию о функции Сonnectivity check можно найти в статье «Настройка Connectivity Check в аппаратных шлюзах серии ZyWALL USG»). В случае если Сonnectivity check определяет, что интерфейс нерабочий, ему присуждается самая высокая метрика, соответственно пакеты по нему перестают идти, и указанный в настройках VPN Gateway адрес 0.0.0.0 преобразуется в IP-адрес следующего по метрике резервного интерфейса.
Таким образом, можно реализовать поставленную задачу, но при этом возникает вопрос с выходом в Интернет. Дело в том, что наименьший по метрике интерфейс, по настройкам транка по умолчанию, является основным шлюзом в Интернет. В данной схеме для основного VPN-туннеля это должен быть L2-канал, где Интернета нет. Для того чтобы хосты локальной сети выходили через второй резервный канал для VPN IPSec - а для Интернета это основной канал, - нужно прописывать правило Policy Route для маршрутизации клиентов в Интернет. При этом обязательно в настройках VPN Connection (Configuration > VPN>IPSec VPN > закладка VPN Connection) снять галочку Use Policy Route to control dynamic IPSec rules, иначе созданное правило изменит динамически создаваемое правило при подключении к VPN IPSec удаленного устройства и трафик в туннель VPN IPSec не пойдет.

Для настройки интерфейсов зайдите в меню Configuration > Interface на закладку Ethernet.

Здесь показана настройка интерфейсов.

Интерфейсы, задействованные в нашей схеме:
wan1 – L2-канал провайдера;
wan2 – подключение к Интернету через вышестоящий маршрутизатор;
lan1 – локальная подсеть офиса, которая будет объединена с локальной подсетью удаленного офиса через туннель VPN IPSec.

Вот настройка интерфейса wan1 (L2-канала провайдера):

Обратите внимание, что в поле Metric установлено значение 0. Интерфейс с наименьшей метрикой является самым приоритетным. Если он считается рабочим, именно он (интерфейс с наименьшей метрикой) будет подменять 0.0.0.0 в настройках VPN Gateway.
Настройка Connectivity check. В данной схеме на интерфейсе wan1 (L2-канал) обязательно нужно настроить проверку. От этого будет зависеть переключение на резервный шлюз, причем от параметров настройки будет зависеть скорость перехода на резервный канал. Чтобы как можно лучше понять какие настройки Connectivity check оптимальны, нужно на конкретном рабочем канале посмотреть какие бывают задержки, и в соответствии с этим выставить минимальные допустимые параметры, при которых уже ясно, что канал не работает.

Интерфейс wan1 является основным для VPN-подключения, поэтому ему приходится присваивать наименьшую метрику. При этом встает вопрос о маршрутизации трафика в Интернет.
По умолчанию трафик в Интернет пойдет через внешний интерфейс с наименьшей метрикой, включенный в SYSTEM_DEFAULT_WAN_TRUNK. В данной топологии таким интерфейсом является wan1, в котором нет выхода в Интернет, и поэтому необходимо маршрутизировать весь трафик в Интернет на интерфейс wan2. Это можно сделать несколькими способами. В данном примере мы отключаем SYSTEM_DEFAULT_WAN_TRUNK и настраиваем выход в Интернет через правило Policy Route.
Так выглядит правило Policy Route для маршрутизации трафика в Интернет через интерфейс wan2:

Для настройки транка зайдите в меню Configuration > Interface на закладку Trunk.

Так как маршрутизацию в Интернет мы настраиваем через Policy Route (из-за того, что основной канал для VPN не является каналом в Интернет), нужно отключить маршрут по умолчанию. Нажмите по ссылке Show Advanced Settings для отображения дополнительных настроек и в поле Enable Default SNAT снимите галочку для отключения маршрута по умолчанию.

Для настройки правила VPN Gateway зайдите в меню Сonfiguration > VPN > IPSec VPN > на закладку VPN Gateway и создайте динамическое правило.

Вот настройка динамического правила:

Здесь нужно обратить внимание на то, что в разделе Peer Gateway Address включена функция Fall back to Primary Peer Gateway when possible. Эта функция позволяет осуществить обратный переход на L2-канал, когда он будет снова работоспособен.
Также нужно установить галочку в разделе Phase 1 Settings в поле NAT Traversal (поле появляется после нажатия Show Advanced Settings). Это необходимо, так как переключение на резервный туннель будет проходить через NAT, причем на нашей схеме с обеих сторон.

Для настройки VPN Connection зайдите в меню Сonfiguration > VPN > IPSec VPN > на закладку VPN Connection.
Здесь показано работающее правило VPN Сonnection.

Обратите внимание на то, что галочка не установлена в поле Use Policy Route to control dynamic IPSec rules.

Настройка правила VPN Сonnection:

В разделе VPN Gateway вместо сценария Site-to-Site with Dynamic Peer можно использовать Remote Access (Server Role), что даст возможность не указывать Remote policy (адрес удаленной локальной сети).

2. Настройка "клиента" с двумя статическими IP-адресами

"Клиент" – устройство (ZyWALL USG), которое будет являться инициатором туннеля VPN IPSec. Главное и необходимое условие для работы резервирования – это постоянный трафик в удаленную VPN-сеть, которая находится за “USG-сервером”. Так как “USG-сервер” не может инициировать подключение (в настройках динамического туннеля не указывается IP-адрес удаленного шлюза безопасности), вся инициатива этих переключений лежит на "клиенте". На основном правиле, настроенном на L2-канал, нужно включить функцию Nailed-Up – в этом случае “USG-клиент” будет все время пытаться установить туннель, если интерфейс L2-канала признан рабочим, вне зависимости от наличия трафика в удаленную VPN-сеть. Но на резервном подключении, которое настроено на второй канал (в Интернет), нельзя включить Nailed-Up. Он должен пытаться подключиться только тогда, когда основной туннель через L2-канал перестанет работать. Проблем с маршрутизацией в туннель и в Интернет на “USG-клиент” не возникнет, так как нет необходимости делать wan1 (подключенный к L2-каналу) основным. Интерфейсу wan1 нужно присвоить метрику ниже, чем wan2, и можно исключить его из транка, чтобы трафик в Интернет в принципе не уходил в этот канал.

Для настройки интерфейсов зайдите в меню Configuration > Interface на закладку Ethernet.

Задействованные интерфейсы:
wan1 – L2-канал провайдера;
wan2 – подключение к Интернету через вышестоящий маршрутизатор;
lan1  - локальная подсеть офиса, которая будет объединена с локальной подсетью удаленного офиса через туннель VPN IPSec.

Настройка интерфейса wan1:

Здесь обратите внимание на метрику. Для интерфейса wan1 в поле Metric установлено значение 3. Это произвольное значение, главное, чтобы оно было больше, чем метрика, установленная на интерфейсе wan2 (канале для Интернета).
Выполните настройку Connectivity check.

Для настройки VPN Gateway зайдите в меню Сonfiguration > VPN > IPSec VPN > на закладку VPN Gateway.
Здесь мы видим два правила: первое настроено через интерфейс wan1 (L2-канал провайдера), а второе - через wan2 (интернет-канал, резервный для VPN).

Настройка правила VPN Gateway через интерфейс wan1 (L2-канал провайдера):

Единственная особенность настройки заключается в том, что в разделе Authentication в поле Local ID Type (поле появляется после нажатия Show Advanced Settings) нужно выбрать формат, а в поле Content указать любое произвольное значение в рамках выбранного формата. Это нужно для лучшего определения и разделения туннелей со стороны "сервера".

Настройка правила VPN Gateway через wan2 (интернет-канал, резервный для VPN):

Та же особенность, при этом в поле Content должно быть значение, не совпадающее с настройкой в первом правиле VPN Gateway.

Для настройки VPN Connection зайдите в меню Сonfiguration > VPN > IPSec VPN > на закладку VPN Connection.
Здесь мы видим рабочее правило Test1 (через wan1) и нерабочее резервное правило test2 (через wan2):

На данном скриншоте показана ситуация после того, как L2-канал был разорван и VPN-туннель перестроился на резервный канал.

Настройки правила VPN Connection (Основное подключение):

Обращаем ваше внимание, что при нажатии на Show Advanced Settings можно увидеть настройки Nailed-Up. В первом основном правиле галочка Nailed-Up должна быть установлена.

Настройки правила VPN Connection (Резервное подключение):

В данном правиле Nailed-Up должен быть выключен. Это важное условие для нормальной работы резервирования.

Таким образом, с представленными настройками на стендовой схеме резервирование туннеля VPN IPSec происходило в течение примерно 30-40 секунд после отключения L2-канала (потеря составила 2-4 пинга) и возврат в течение минуты после восстановления основного L2-канала (при этом терялся 1-2 пинга). Резервирование происходило ТОЛЬКО при условии постоянного трафика со стороны сети “USG-клиента” 192.168.20.0/24 в сеть “USG-сервера” 192.168.21.0/24.

 

KB-2776

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 0

Комментарии

0 комментариев