Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

REPLAY_WINDOW_VIOLATION Сетевое оборудование и VPN

IPsec Error REPLAY_WINDOW_VIOLATION: отбрасывание ESP пакетов вне окна повтора

Обновлено: 24.08.2026 · Официальная документация ↗

При передаче интенсивного трафика через IPsec VPN туннель фиксируются следующие неполадки:

  • В логах сетевых устройств (Cisco IOS, FortiGate, strongSwan, Linux XFRM) регистрируются ошибки: REPLAY_WINDOW_VIOLATION: Dropped out-of-order ESP sequence packet, replay check failed или IPsec Anti-Replay: packet dropped.
  • Резкое падение пропускной способности TCP, деградация голосового трафика (VoIP/RTP) и рост джиттера.
  • Счетчик XfrmInReplayErrors в статистике ядра Linux непрерывно увеличивается.
  • Пакеты отбрасываются исключительно при многопоточной нагрузке или агрегации каналов (LACP, ECMP).

1. Механизм защиты от повторов (Anti-Replay Mechanism, RFC 4303)

Для предотвращения атак повторного воспроизведения (Replay Attacks) каждый заголовок ESP содержит 32-битный (или 64-битный Extended) порядковый номер Sequence Number. Принимающая сторона поддерживает скользящее окно (Anti-Replay Window) размером $W$. Если порядковый номер входящего пакета меньше левой границы окна (слишком старый) или уже был получен ранее, ядро отбрасывает его. При нарушении порядка доставки пакетов в сети провайдера или многопоточной обработке на CPU легитимные пакеты могут прибыть вне очереди и быть ошибочно уничтожены.

2. Диагностика ошибок Replay на уровне операционной системы

# Просмотр статистики ошибок анти-повтора в сетевом стеке Linux
netstat -s | grep -i replay

# Детальный просмотр счетчиков XFRM ядра
cat /proc/net/xfrm_stat

# Проверка текущего размера окна для установленных SA
ip xfrm state show | grep -E 'replay-window|seq'

3. Увеличение размера Replay Window

Увеличение размера окна позволяет стеку принимать пакеты с большим разбросом задержки без их отбрасывания.

В strongSwan (/etc/swanctl/conf.d/ipsec.conf):

connections {
    site-to-site {
        # Установка размера окна anti-replay (по умолчанию 32, рекомендуется 128-1024)
        replay_window = 512
        # ... остальные параметры ...
    }
}

На оборудовании Cisco ASA / IOS:

# Cisco IOS Router (глобально или в рамках crypto map)
crypto ipsec security-association replay window-size 512

# Cisco ASA (увеличение до максимального)
crypto ipsec security-association replay window-size 1024

# Полное отключение (не рекомендуется в production, только для изоляции проблемы)
no crypto ipsec security-association replay window-size

4. Устранение разбалансировки очередей сетевых карт (NIC Multi-Queue / RSS)

Многопоточная обработка пакетов на сетевых адаптерах серверов может приводить к тому, что пакеты одного потока обрабатываются разными ядрами CPU с разной скоростью, нарушая очередность ESP Sequence:

# Привязка прерываний сетевой карты к фиксированным ядрам (RPS/XPS)
# Пример: установка хэширования Symmetric Toeplitz на базе IP/Port
ethtool -K eth0 rx-flow-hash udp4 sdfn

# Настройка параметра xfrm для многопоточности ядра
sysctl -w net.core.netdev_max_backlog=10000
sysctl -w net.ipv4.xfrm4_gc_thresh=32768

5. Настройка QoS и устранение проблем на канале оператора (ECMP)

Если между точками туннеля используется несколько маршрутов (Equal-Cost Multi-Path) у апстрим-провайдера, пакеты одной сессии могут лететь разными траекториями. Настройте на границе сети единый маршрут или маркировку DiffServ/TOS, чтобы заставить оператора передавать ESP пакеты по одному пути.

💡 Практика специалистов: Если ошибки REPLAY_WINDOW_VIOLATION возникают на виртуальных машинах в облаках (AWS, Azure, Proxmox), первопричиной почти всегда является виртуализация прерываний (vCPU scheduling latency) или включенный LRO/GRO на виртуальном адаптере. Отключите GRO/LRO на интерфейсе туннеля через 'ethtool -K eth0 gro off lro off'.

Частые вопросы (FAQ)

Опасно ли полностью отключать Anti-Replay защиту?

Да, отключение защиты делает VPN уязвимым для атак Man-in-the-Middle, когда перехваченные зашифрованные пакеты могут быть отправлены повторно (например, для повторной отправки банковских транзакций или команд авторизации). Безопаснее увеличить размер окна до 512 или 1024.

Почему ошибки Replay возникают при включении шейпинга трафика (QoS)?

Модули QoS с приоритизацией (Priority Queuing) могут пропускать критичные пакеты вперед менее приоритетных. Если ESP пакеты до шифрования имели разные метки CoS/DSCP, после шифрования они получают последовательные ESP Seq, но в очереди QoS переупорядочиваются, что приводит к дропам на приемнике.

Помогает ли переход на 64-битные Extended Sequence Numbers (ESN)?

ESN предотвращает переполнение 32-битного счетчика номеров пакетов на высокоскоростных 10G/100G линках, но напрямую не решает проблему Out-of-Order пакетов. Для защиты от Out-of-Order необходимо увеличивать ширину битовой маски Replay Window.

Какой максимальный размер окна поддерживается в Linux XFRM?

Современные ядра Linux поддерживают размер replay-window вплоть намеренно больших значений (до 1024 и более пакетов), если это поддерживается демоном IKE.

Полезные материалы
Рекомендуем