(!) Что такое зомби-туннель?

Идет много дискуссий о переустановке сети VPN после того, как предыдущие соединения были заблокированы.

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



Приведенная выше схема описывает данную проблему более подробно.
Стороны A и B имеют VPN-туннель, и он прекрасно работает.
Позднее сторона B изменяет свой IP-адрес, если интернет-провайдер меняет политику назначения IP-адресов интернет-провайдером или происходит перезапуск системы.
Поскольку сторона A не получает об этом уведомления, она и далее сохраняет зомби-туннель.
После того как сторона B получит новый IP-адрес или система перезапустится, B не сможет создать VPN-туннель из-за наличия зомби-туннеля в маршрутизаторе стороны A.


Для решения проблемы зомби-туннеля можно использовать один из следующих методов.


  1. Первоначальный контакт (Init-Contact);
  2. Время бездействия для исходящих сообщений;
  3. Время бездействия для входящих пакетов;
  4. Dead Peer Detection (DPD).

Рассмотрим их более подробно.


1. Первоначальный контакт (Init-Contact)


В аппаратных шлюзах ZyXEL серии ZyWALL встроенное микропрограммное обеспечение имеет поддержку первоначального контакта (Init-Contact), который определен в документации RFC2407. При соблюдении ниже следующих условий первоначальный контакт уничтожит зомби-туннель сети VPN, что позволит появиться новой сети VPN. Таким образом решается вопрос блокировки сети VPN.


1. Не имеет значения, является ли B инициатором или ответчиком;
2. Пока не существует активного соединения SA в фазе 2 для маршрутизатора A;
3. Маршрутизатор B использует статический IP-адрес.


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



После того как маршрутизатор B перезапустится, он попытается переустановить VPN-туннель с маршрутизатором A. Однако маршрутизатор A сохраняет прежнее соединение SA, поэтому он не принимает запрос от B на прежний туннель.

При использовании функции "Первоначальный контакт" маршрутизатор B пошлет первоначальный контакт маршрутизатору A, чтобы известить его о том, что желательно установить совершенно новый VPN-туннель. Поэтому маршрутизатор A удалит свой прежний туннель и примет запрос на новый туннель. Первоначальный контакт уничтожит зомби-туннель сети VPN только после того, как будет произведена идентификация запрашивающей стороны посредством Предварительно Согласованного Ключа или Цифрового Сертификата.

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

1. Если маршрутизатор A хотел бы использовать зомби-туннель, а маршрутизатор B не имеет намерения построить новый туннель;
2. Если маршрутизатор B использует динамический IP-адрес, то у маршрутизатора A не имеет способа обнаружить связь между зомби-туннелем и динамическим IP-адресом маршрутизатора B. Поэтому маршрутизатор A не сможет уничтожить зомби-туннель в соответствии с первоначальным контактом.

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

2. Время бездействия для исходящих сообщений


Время бездействия для исходящих сообщений решает случай 1 данной проблемы. Мы основываемся на следующем допущении.
Трафик всегда двусторонний, односторонний трафик - это отклонение от нормы. Это означает, что туннель высылает пакеты, но входящие пакеты не используют этот туннель в течение некоторого времени, и он становится бесполезным. Поэтому такой туннель будет удален. Пользователи могут установить время бездействия для исходящих пакетов CI-командой "ipsec timer chk_conn <min>". По умолчанию значение этого времени равно 2 минутам.




3. Время бездействия для входящих пакетов


Время бездействия для входящих пакетов решает случай 2 данной проблемы. Если в течение некоторого времени не существует входящего трафика, таймер простоя удалит данный туннель. Пользователи могут установить время бездействия для входящих пакетов CI-командой "ipsec timer chk_input <min>". Эта функция по умолчанию отключена.

Если вы просто введете эту команду в Меню 24.8, она перестанет выполняться после перезагрузки системы. Чтобы команда работала постоянно, пожалуйста, запомните ее в ZyWALL с помощью следующей CLI-команды в Меню 24.8:

"sys edit autoexec.net"


1. Введите: "sys edit autoexec.net";
2. Нажмите "i", чтобы вставить команду, например ”ipsec timer chk_input <min>”;
3. Нажмите "x", чтобы выйти с сохранением;
4. Введите "sys view autoexec.net", чтобы посмотреть содержание.


4. Dead Peer Detection (DPD)


Функция Dead Peer Detection (DPD) предназначена для определения работоспособности туннеля.



Отправитель должен быть уверен, что получатель еще существует и посылает Hello-пакеты. Если 5 Hello-пакетов отправлены без подтверждения от получателя, зомби-туннель будет удален. 

 

KB-1351

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