Всем привет! Пытаюсь разобраться с проблемой на NordVPN на моём Hex S (версия ПО v6.49.7). Использую проверённую конфигурацию, которая отправляет весь трафик через VPN на Mikrotik, плюс настроен killswitch/blackhole. Всё работало нормально, но иногда (а порой даже несколько раз подряд за короткое время) трафик перестаёт проходить, пока я не сброшу SAs (или не перезагружу устройство). Триггера или закономерности нет, происходит не через определённое время. Иногда весь день летит без нареканий, иногда приходится постоянно держать окно консоли открытым и сбрасывать SAs, потому что стабильность просто ужасная.
Моя конфигурация IPSEC/mangle выглядит так:
/ip ipsec mode-config
add name=NordVPN responder=no src-address-list=local
/ip ipsec policy group
add name=NordVPN
/ip ipsec profile
add enc-algorithm=aes-128 hash-algorithm=sha256 name=NordVPN
/ip ipsec peer
add address=xxxxx.nordvpn.com exchange-mode=ike2 name=NordVPN profile=NordVPN
/ip ipsec proposal
set [ find default=yes ] disabled=yes
add auth-algorithms=sha256 name=NordVPN pfs-group=none
/ip firewall address-list
add address=192.168.88.0/24 list=local
add address=192.168.88.2-192.168.88.254 list=local-range
/ip firewall filter
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related disabled=yes
/ip firewall mangle
add action=mark-connection chain=forward ipsec-policy=out,ipsec new-connection-mark=ipsec
add action=mark-connection chain=forward ipsec-policy=in,ipsec new-connection-mark=ipsec
add action=mark-routing chain=prerouting new-routing-mark=via-vpn passthrough=yes src-address-list=local
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" disabled=yes ipsec-policy=out,none out-interface-list=WAN
/ip ipsec identity
add auth-method=eap certificate=root.der_0 eap-methods=eap-mschapv2 generate-policy=port-strict mode-config=NordVPN peer=NordVPN policy-template-group=NordVPN username=xxxxxxxxxxx
/ip ipsec policy
set 0 disabled=yes
add action=none dst-address=192.168.88.0/24 src-address=0.0.0.0/0
add disabled=yes dst-address=0.0.0.0/0 group=NordVPN proposal=NordVPN src-address=0.0.0.0/0 template=yes
add dst-address=0.0.0.0/0 group=NordVPN proposal=NordVPN src-address=0.0.0.0/0 template=yes
/ip route
add distance=1 gateway=blackhole routing-mark=via-vpn
Обратите внимание, у меня есть строка ‘add disabled=yes dst-address=0.0.0.0/0 group=NordVPN proposal=NordVPN src-address=0.0.0.0/0 template=yes’, я не припоминаю, почему она отключена — может, кто-то подскажет?
При помощи пинга замечаю, что если VPN падает, пинги не проходят, но сам инструмент пинга не даёт запустить какое-то действие или скрипт. Нашёл обсуждения по этой теме и скрипт для пинга, но не смог его запустить. Вот пример — последний комментарий здесь полностью совпадает с моим опытом: и ещё здесь:
Можно ли протестировать скрипты сначала через консоль? Раньше я этого не делал и не знаю, как увидеть вывод скрипта во время выполнения. Пробовал Netwatch, но странно, что когда VPN падает, пинги всё равно проходят, и я не вижу, как заставить трафик идти именно через VPN.
Идея в том, чтобы сбрасывать SAs при провале пингов. Есть ли какие-то другие настройки криптографии, которые стоит попробовать? Какие конкретные строки в логах могут быть полезными? Я добавлял IPSEC в логи, но ничего явного или подозрительного при возникновении ошибки не видел.
Мне не жалко сбросить ВСЕ SAs, так как на этом устройстве только один туннель для всего трафика, так что побочные эффекты не критичны — в отличие от других, у кого их может быть много.
Понимаю, что можно перейти на Wireguard, но это большой шаг с совсем новым уровнем изучения (и моя текущая конфигурация не переносится напрямую на V7, так что делать «один в один» без дополнительного изучения и тестов не получится).
Аппаратное ускорение на Hex S (главная причина, почему я сменил старый hAP Lite) даёт классную производительность, но стабильность в моей конфигурации подводит. Так как этот роутер чисто клиент VPN, «другая сторона» у меня отсутствует для диагностики, но заметил, что моя конфигурация немного отличается от текущей инструкции Nord: — в частности, я усиленно настраиваю криптографию, а в гайде этого нет.
Заранее огромное спасибо!
Моя конфигурация IPSEC/mangle выглядит так:
/ip ipsec mode-config
add name=NordVPN responder=no src-address-list=local
/ip ipsec policy group
add name=NordVPN
/ip ipsec profile
add enc-algorithm=aes-128 hash-algorithm=sha256 name=NordVPN
/ip ipsec peer
add address=xxxxx.nordvpn.com exchange-mode=ike2 name=NordVPN profile=NordVPN
/ip ipsec proposal
set [ find default=yes ] disabled=yes
add auth-algorithms=sha256 name=NordVPN pfs-group=none
/ip firewall address-list
add address=192.168.88.0/24 list=local
add address=192.168.88.2-192.168.88.254 list=local-range
/ip firewall filter
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related disabled=yes
/ip firewall mangle
add action=mark-connection chain=forward ipsec-policy=out,ipsec new-connection-mark=ipsec
add action=mark-connection chain=forward ipsec-policy=in,ipsec new-connection-mark=ipsec
add action=mark-routing chain=prerouting new-routing-mark=via-vpn passthrough=yes src-address-list=local
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" disabled=yes ipsec-policy=out,none out-interface-list=WAN
/ip ipsec identity
add auth-method=eap certificate=root.der_0 eap-methods=eap-mschapv2 generate-policy=port-strict mode-config=NordVPN peer=NordVPN policy-template-group=NordVPN username=xxxxxxxxxxx
/ip ipsec policy
set 0 disabled=yes
add action=none dst-address=192.168.88.0/24 src-address=0.0.0.0/0
add disabled=yes dst-address=0.0.0.0/0 group=NordVPN proposal=NordVPN src-address=0.0.0.0/0 template=yes
add dst-address=0.0.0.0/0 group=NordVPN proposal=NordVPN src-address=0.0.0.0/0 template=yes
/ip route
add distance=1 gateway=blackhole routing-mark=via-vpn
Обратите внимание, у меня есть строка ‘add disabled=yes dst-address=0.0.0.0/0 group=NordVPN proposal=NordVPN src-address=0.0.0.0/0 template=yes’, я не припоминаю, почему она отключена — может, кто-то подскажет?
При помощи пинга замечаю, что если VPN падает, пинги не проходят, но сам инструмент пинга не даёт запустить какое-то действие или скрипт. Нашёл обсуждения по этой теме и скрипт для пинга, но не смог его запустить. Вот пример — последний комментарий здесь полностью совпадает с моим опытом: и ещё здесь:
Можно ли протестировать скрипты сначала через консоль? Раньше я этого не делал и не знаю, как увидеть вывод скрипта во время выполнения. Пробовал Netwatch, но странно, что когда VPN падает, пинги всё равно проходят, и я не вижу, как заставить трафик идти именно через VPN.
Идея в том, чтобы сбрасывать SAs при провале пингов. Есть ли какие-то другие настройки криптографии, которые стоит попробовать? Какие конкретные строки в логах могут быть полезными? Я добавлял IPSEC в логи, но ничего явного или подозрительного при возникновении ошибки не видел.
Мне не жалко сбросить ВСЕ SAs, так как на этом устройстве только один туннель для всего трафика, так что побочные эффекты не критичны — в отличие от других, у кого их может быть много.
Понимаю, что можно перейти на Wireguard, но это большой шаг с совсем новым уровнем изучения (и моя текущая конфигурация не переносится напрямую на V7, так что делать «один в один» без дополнительного изучения и тестов не получится).
Аппаратное ускорение на Hex S (главная причина, почему я сменил старый hAP Lite) даёт классную производительность, но стабильность в моей конфигурации подводит. Так как этот роутер чисто клиент VPN, «другая сторона» у меня отсутствует для диагностики, но заметил, что моя конфигурация немного отличается от текущей инструкции Nord: — в частности, я усиленно настраиваю криптографию, а в гайде этого нет.
Заранее огромное спасибо!
