MikroTik IPsec: phase1 negotiation failed due to send error — решение
Симптомы сбоя отправки пакетов инициализации IPsec
Попытка поднять туннель Site-to-Site на MikroTik завершается неудачей на этапе формирования ассоциаций безопасности Phase 1. В системном журнале RouterOS циклически появляется сообщение об ошибке:
ipsec,error phase1 negotiation failed due to send error (fatal):
192.168.1.1[500] <=> 203.0.113.10[500]
failed to send packet: Operation not permitted / Network unreachable| Параметры лога | Где возникает | Физическая причина |
|---|---|---|
| send error: Network unreachable | /system log (ipsec, error) | В таблице IP Route отсутствует маршрут до IP-адреса удаленного пира |
| send error: Operation not permitted | /ip ipsec peer state | Пакеты IKE (порт UDP 500/4500) блокируются локальным файрволом цепочки Output |
| send error (без детализации) | RouterOS v7 / VRF | Неверная привязка IPsec сокета к нестандартной таблице маршрутизации (Routing Table/VRF) |
Диагностика и устранение сетевых сбоев сокета IPsec
- Проверка таблицы маршрутизации до удаленного пира:
RouterOS пытается отправить пакет IKE со своего интерфейса, но ядро не знает пути к удаленному адресу назначения. Проверьте маршрут командой:
/ip route check 203.0.113.10 # Если маршрут отсутствует или падает в неверный gateway, добавьте прямой статический маршрут: /ip route add dst-address=203.0.113.10/32 gateway=WAN_GATEWAY_IP comment="Route to IPsec Peer" - Проверка блокировок в цепочке Output межсетевого экрана:
Убедитесь, что правила фильтрации не блокируют собственный трафик роутера наружу:
/ip firewall filter # Разрешите исходящий трафик IKE и NAT-T: add chain=output protocol=udp port=500,4500 action=accept place-before=1 comment="Allow IPsec IKE/NAT-T Out" add chain=output protocol=ipsec-esp action=accept place-before=2 comment="Allow ESP Out" - Конфликт FastTrack и аппаратного шифрования (FastPath):
Правило
FastTrackломает перехват пакетов подсистемой IPsec. Исключите трафик туннелей из FastTrack:/ip firewall filter # Измените стандартное правило Fasttrack Connection, добавив исключение: set [find action=fasttrack-connection] connection-mark=!ipsec-traffic # Либо отключите fasttrack для проверки: disable [find action=fasttrack-connection] - Специфика RouterOS v7 (VRF и Source Address):
Если на роутере настроено несколько WAN-провайдеров через разные таблицы маршрутизации, в профиле пира необходимо жестко зафиксировать локальный адрес отправки (Local Address):
/ip ipsec peer set [find name=peer1] local-address=MY_STATIC_WAN_IP
На заметку: Ошибка «send error» возникает на уровне генерации системного сокета Linux. Если у вас используется сотовый модем LTE (интерфейс lte1) в качестве WAN, убедитесь, что модем находится в статусе Connected и получил реальный IP-адрес, иначе сетевой стек вернет системную ошибку сокета ENETUNREACH.
Частые вопросы (FAQ)
Почему ошибка появляется только после перезагрузки MikroTik?
При старте роутера служба IPsec инициирует туннель до того, как WAN-интерфейс успевает получить IP-адрес по DHCP или поднять PPPoE-сессию, что вызывает send error. При появлении линка служба переподключится автоматически.
Что означает порт 4500 вместо 500 в логе?
Порт UDP 4500 используется механизмом NAT-Traversal (NAT-T), когда один или оба маршрутизатора находятся за промежуточным NAT-шлюзом.
Как убедиться, что удаленный провайдер не блокирует протокол ESP?
Если Phase 1 проходит успешно, а Phase 2 не передает трафик — проверьте прохождение протокола IP 50 (ESP). При блокировке ESP включите принудительный NAT-Traversal в профиле IPsec (encapsulation=udp).
Влияет ли размер MTU на эту ошибку?
На этапе начального send error MTU не влияет (пакеты IKE маленькие). Но в дальнейшем при согласовании сертификатов пакеты фрагментируются. Рекомендуется установить clamp-mss для TCP-трафика внутри туннеля на уровень 1360-1400.