IPsec Error: DPD_TIMEOUT — Обрыв связи по тайм-ауту Dead Peer Detection
Архитектура механизма Dead Peer Detection (RFC 3706) и отказ DPD_TIMEOUT
Механизм Dead Peer Detection (DPD / RFC 3706 / RFC 7296) предназначен для непрерывного контроля доступности удаленного шлюза на уровне протокола IKE. При отсутствии полезного трафика стороны обмениваются периодическими эхо-запросами IKE DPD: R-U-THERE (в IKEv2 — пустые информационные сообщения INFORMATIONAL Request/Response). Событие DPD_TIMEOUT (Dead Peer Detection packet timeout) генерируется, когда инициатор проверки не получает ответное подтверждение R-U-THERE-ACK в течение заданного интервала после отправки предельного числа повторных попыток (DPD Maximum Failures / Retries). Контроллер фиксирует физический обрыв канала (Link Down), аварийно уничтожает ассоциации безопасности (SA Flush) и запускает сценарий восстановления (Clear / Restart / Failover).
Бизнес-риски
Полный разрыв VPN-туннеля при кратковременных потерях пакетов у интернет-провайдера, «зависание» филиалов без автоматического переключения на резервный канал LTE/Backup, разрыв голосовых сессий VoIP.
Параметры механизма Dead Peer Detection (DPD)
| Параметр | Рекомендуемое значение | Описание функции |
|---|---|---|
DPD Interval | 10 – 30 сек | Интервал отправки контрольных запросов при отсутствии трафика. |
DPD Timeout / Delay | 3 – 5 сек | Тайм-аут ожидания ответа на одиночный DPD-запрос. |
DPD Maximum Retries | 3 – 5 попыток | Количество последовательных неудач до объявления пира мертвым. |
DPD Action | restart / trap | Действие при сбое: перезапуск, очистка или удержание политики. |
Пошаговый регламент устранения сбоев DPD Timeout
Сценарий 1: Тонкая настройка таймингов DPD на маршрутизаторах
На нестабильных каналах связи (LTE/4G, спутниковые каналы, радиомосты) агрессивные тайминги DPD вызывают ложные разрывы соединений. Увеличьте пороги отказоустойчивости:
# Оптимизация профиля DPD на MikroTik RouterOS v7
/ip ipsec profile set [find name="PROFILE_SITE_B"] \
dpd-interval=15s dpd-maximum-failures=5
# Оптимизация DPD в strongSwan (/etc/swanctl/swanctl.conf)
connections {
site-a-to-b {
dpd_delay = 20s
dpd_timeout = 60s
dpd_action = restart
}
}Сценарий 2: Диагностика прохождения пакетов UDP 500 / 4500 и NAT Keepalive
Если шлюз находится за NAT, промежуточный роутер провайдера может сбрасывать UDP-сессию из-за короткого времени жизни трансляции (NAT State Timeout, обычно 30 секунд для UDP):
# Принудительное включение NAT-Traversing и учащенного NAT Keepalive
/ip ipsec profile set [find] nat-traversal=yes
# Проверка наличия входящих DPD пакетов через встроенный Packet Sniffer
/tool sniffer quick ip-protocol=udp port=4500 interface=ether1Сценарий 3: Настройка автоматического переключения на резервный канал (IPsec Failover)
# Скрипт Netwatch для контроля туннеля и мгновенного перезапуска при DPD Timeout
/tool netwatch add host=192.168.20.1 interval=10s timeout=2s \
down-script="/ip ipsec active-peers kill-connections [find]; :log error 'VPN Down -> Force Reset'"Типовые ошибки администраторов
- Полное отключение DPD (dpd-interval=disable): При физическом обрыве кабеля провайдера шлюз будет часами отправлять данные в «мертвый» туннель, не зная, что противоположный узел недоступен.
- Установка dpd-interval=2s на загруженных CPU устройствах: Малейший скачок утилизации процессора приводит к ложному таймауту и бесконечному циклу перезапуска VPN.
Инженеры ITSTM настроят отказоустойчивые SD-WAN архитектуры, балансировку нескольких провайдеров и бесшовный Failover.
Частые вопросы (FAQ)
Чем DPD отличается от обычного ICMP-пинга хоста внутри туннеля?
DPD работает на уровне протокола IKE (порты UDP 500/4500) и проверяет жизнеспособность непосредственно криптографического демона шлюза, в то время как ICMP пингует стек ОС конечного хоста.
Почему DPD пакеты перестают ходить при активной загрузке канала (Torrent / Backup)?
При переполнении буфера исходящего интерфейса (Bufferbloat) низкоприоритетные UDP-пакеты DPD отбрасываются очередью. Настройте QoS и приоритезацию для трафика UDP 500/4500 (DSCP CS6/EF).
Что означает DPD Action: Clear vs Restart?
Action=Clear полностью удаляет ассоциацию безопасности и переводит порт в ожидание. Action=Restart немедленно начинает отправку новых IKE_SA_INIT пакетов для переустановки туннеля.
Работает ли DPD, если обе стороны одновременно являются инициаторами?
Да, протокол IKEv2 полностью симметричен. Каждая сторона может независимо запускать DPD-интервалы для проверки состояния своего партнера.