Клиент говорит, что аутентификация прошла, состояние IKE выглядит здоровым, а счётчики пакетов остаются на нуле. Это сочетание не противоречие: IKEv2 держит управляющее отношение и отношение данных раздельно, и первое может завершиться успешно, пока второе так и не поднимается. Родитель ведёт переговоры; потомок несёт трафик. Прочитайте два слоя по отдельности, прежде чем называть туннель упавшим.

Что делают два SA

IKE SA — управляющее отношение: он аутентифицирует стороны и несёт обмены, которые согласуют, заменяют и удаляют защиту. Он никогда не несёт пакеты вашего приложения. Поэтому здоровый родитель доказывает лишь то, что два конца могут договориться о политике безопасности, и ничего больше.

CHILD SA — отношение данных, созданное под родителем, с селекторами трафика и ключевым материалом для одного защищённого набора. Оно направленное, поэтому вывод состояния перечисляет входящую и исходящую ассоциацию с отдельными идентификаторами и обычно отдельными счётчиками для каждого направления. Эта пара — причина, по которой одно направление может работать, а другое падать, и по которой фраза туннель поднят ничего не говорит о трафике. Один родитель может держать несколько потомков, и так одна метка соединения скрывает нужный вам.

Читайте записи потомка, а не метку соединения

Откройте состояние родителя и список потомков вместе и найдите потомка, селекторы которого совпадают с проверяемым потоком. Запишите его селекторы трафика, согласованные алгоритмы, время жизни и счётчики в обоих направлениях. Если потомков несколько, сопоставляйте по селекторам, а не по позиции, потому что позиция меняется после обновления ключа. Запишите идентификаторы, прежде чем что-либо менять.

Если родитель перечисляет не тот набор трафика, который вы проверяете, вы читаете не того потомка. Это проблема селекторов, а не сломанный туннель.

Записывайте и метки времени. Обновление ключа может заменить один слой, пока другой остаётся установленным, и потомок, который выглядит новым, может быть заменой того, за которым вы наблюдали. Сравните идентификаторы, прежде чем заключать, что потомок исчез.

Когда потомка нет вовсе

Аутентификация может пройти, пока предложение данных или селекторы терпят неудачу, и родитель остаётся совсем без потомка. Обычная причина — несовпадение алгоритмов или несовпадение селекторов трафика, и обе стороны записывают в журнал отклонённое предложение. Читайте оба конца, потому что доступная вам сторона может показывать только отказ. Исправьте несовпадение вместо перезапуска родителя, который повторяет те же неудачные переговоры и добавляет к доказательствам ещё один простой.

Родитель, который постоянно устанавливается заново, — это другая неисправность, чем родитель, который держится без потомка. Во втором случае журналы называют отклонённое предложение, поэтому соберите это предложение с обоих концов, прежде чем править политику.

Когда потомок есть, но счётчики стоят на нуле

Отправьте свежий запрос, соответствующий селекторам потомка. Запрос к адресату вне этой политики не сдвинет его счётчики, как бы успешно он ни выглядел.

Проверьте маршрут, который должен заталкивать поток в туннель, потому что потомок без трафика часто оказывается потомком, в который ничего не маршрутизируется. Счётчики, которые движутся только в одну сторону, указывают на несовпадение селекторов или политики на обратном пути. Посмотрите на обратные селекторы удалённой стороны, прежде чем трогать локальную. Свежий запрос даёт ещё и метку времени, чтобы сопоставить её с выводом состояния обоих концов.

Назовите слой в отчёте

Сообщайте о сбое как о трёх полях, а не приговоре: слой, который отказал, обмен или потомок, который вы проверили, и доказательство, которое у вас есть. Слой — один из трёх: родитель так и не установился, переговоры потомка были отклонены, или потомок есть, а трафик до него не доходит. Доказательство — идентификатор потомка с его селекторами и счётчиками или отклонённое предложение, процитированное из обоих журналов. Любой читатель может сразу перейти к важному обмену, вместо того чтобы спрашивать, какой VPN вы имеете в виду.

документация strongSwan по IKEv2 показывает, как эти слои выглядят в выводе состояния. Приложите вывод проверенного потомка, а не только сводку родителя.

Похожие статьи