Траблшутинг ipsec-туннелей в Juniper

Статья подготовлена для Хабрахабр

Статей по настройке IPSec на Juniper SRX уже появилось несколько: раз, два, три. Но я бы хотел отойти чуть в сторону, и поговорить о том случае, когда что-то пошло не так.

JunOS предоставляет довольно удобные средства мониторинга и траблшутинга туннелей. Часть из них описана в официальной вики, часть есть на просторах интернета, что-то узнаешь из общения с JTAC.

Что оказалось полезным для меня:
Описание ошибок VPN – довольно подробная табличка при анализе логов. Так же информацию можно посмотреть здесь (удобно сгруппировано по типам VPN-туннелей).

Ну а самая мякотка под катом.

Команды

Дебаг первой фазы
show security ike security-associations
# Показывает установленные sa для первой фазы. Удобно матчить по адресу пира
node0:
--------------------------------------------------------------------------
Index   State  Initiator cookie  Responder cookie  Mode           Remote Address
1990848 UP     0a8d1bb614de2965  47ade7df5b93f10f  Main           1.2.3.4
# можно еще вот так:
show security ike security-association index <#> detail
show security ike security-association 

# А это счетчики
show security ike stats sa
Дебаг второй фазы
# SA для второй фазы
show security ipsec security-associations | no-more
node0:
--------------------------------------------------------------------------
  Total active tunnels: 231
  ID    Algorithm       SPI      Life:sec/kb  Mon lsys Port  Gateway
  <131375 ESP:3des/sha1 48707aa6 621/   4608000 -  root 500   1.2.3.4
  >131375 ESP:3des/sha1 a2152402 621/   4608000 -  root 500   1.2.3.4
# Здесь тоже можно посмотреть подробную информацию с помощью detail

show security ipsec next-hop-tunnels
# В случае пользования route-based VPN - крайне удобная штука
# Потому что позволяет оценить, какие именно туннели не поднялись
# Напомню, что в RB VPN для каждой строчки ACL создается свой vpn-инстанс 
# и свой static-route в этот vpn
172.27.10.14      st0.10      client-1-14                        Static   1.2.3.4
172.27.10.15      st0.10      client-1-15                        Static

show security ipsec inactive-tunnels
# Тут все просто - показывает незапустившиеся туннели и причину ошибки
node0:
--------------------------------------------------------------------------
  Total inactive tunnels: 145
  Total inactive tunnels with establish immediately: 145
  ID     Port  Nego#  Fail#  Flag      Gateway          Tunnel Down Reason
  131195 500   0      0      600a29    2.3.4.5      SA not initiated

Сбор логов и трейсов

Входим в режим конфигурации и активируем нужные traceoptions. Не забудьте потом выключить, дабы не грузить роутер лишними задачами.

# Включаем kmd-logs
# В него пишется довольно интересная информация
# По всем устанавливаемым соединениям
set system syslog file kmd-logs daemon info
set system syslog file kmd-logs match KMD

# Включаем traceoptions.
# В них так же можно почерпнуть полезные сведения
edit security ike traceoptions
set file ike-debug files 2 size 10240 world-readable
set flag all
set level 15

top
edit security ipsec traceoptions
set file ipsec-debug files 2 size 10240 world-readable
set flag all

top
edit security flow traceoptions
set file vpn-debug
set file size 5m
set file world-readable
set flag basic-datapath
set flag packet-drops
set packet-filter filter1 protocol esp
set packet-filter filter1 source-prefix /32
set packet-filter filter1 destination-prefix /32
set packet-filter filter2 protocol esp
set packet-filter filter2 source-prefix /32
set packet-filter filter2 destination-prefix /32

Применяем изменения и выходим из режима конфигурации. Теперь запускаем дебаг

> request security ike debug-enable level 10 local  remote 

Пингуем хост в сети клиента, чтобы туннель поднялся, и смотрим логи:

show log ike-debug | no-more

Надеюсь, эта информация окажется для кого-то полезной 😉 А может быть, у вас есть чем поделиться из собственного опыта? Пишите в комментарии!

Leave a Reply