Когда IPsec падает, запасной маршрут — не запасная политика
Запись в таблице маршрутизации отвечает, куда пакет может пойти, а не то, можно ли пройти без защиты. Решите, какой из двух разрешённых исходов вы покупаете.
Площадка теряет туннель, а таблица маршрутизации по-прежнему показывает полностью работоспособный путь к месту назначения через интернет. Кто-то предлагает переключиться на него и называет это исправлением маршрутизации. Пакет мог бы пойти этим путём; вопрос, который никто не задал, — разрешено ли ему прийти без защиты. Это разные ответы из разных таблиц, и их смешение — это то, как сбой превращается в инцидент.
Два исхода, которые в таблице маршрутизации выглядят одинаково
Достижимость говорит, что пакету есть куда идти. Политика безопасности говорит, что должно произойти с этим пакетом в пути, и обе обеспечиваются разными механизмами. Маршрут может существовать для потока, который политика обязана отбросить, и такое сочетание не является ошибкой конфигурации. Именно разделение двух вопросов делает план на случай сбоя вообще проверяемым.
Поэтому путь на случай сбоя становится проектом только после того, как кто-то решит, какой из разрешённых исходов применяется. Пока такого решения нет, запасной маршрут — искушение, а не план.
У модели политики три вердикта, а не два
Архитектура IPsec разделяет трафик, который должен быть отброшен, трафик, которому разрешено обходить защиту, и трафик, который должен быть защищён. Это три разных предписания, и среднее — намеренное исключение, а не режим отказа. Именно чтение их парой порождает ложный выбор между туннелем и открытой дорогой.
Отсутствующая ассоциация не превращает молча правило защиты в обход. Политика по-прежнему говорит защищать, поэтому пакет ждёт или умирает, и это поведение — контроль, работающий так, как написано, а не доказательство поломки политики.
Запишите требование для своего потока как одно из трёх предложений: остановитесь, пока не появится защищённый путь, переключитесь на другой защищённый путь или используйте путь, которому отдельно разрешено работать без IPsec. Только третье меняет контракт безопасности, и ему нужен владелец, который может его подписать. Это предложение идёт в журнал изменений, а не в чью-то память. Рецензенты одобряют второе предложение и отказывают третьему, и оба решения разумны, когда они видны.
Обход — это контракт, который подписывают оба конца
Альтернативному пути нужны маршрутизируемые адреса, явный допуск там, куда он прибывает, и обратный путь, работающий в обе стороны. Частные адреса площадки не становятся доступными оттого, что маршрут по умолчанию куда-то указывает.
Аутентификация значит не меньше, чем адресация. Трафик, который минует туннель и прибывает на границу, ожидающую защиты, отвергается даже тогда, когда попадает на правильный интерфейс, поэтому принимающая политика должна намеренно принять такую форму. Исключение, с которым дальняя сторона никогда не соглашалась, — это сбой с лишними шагами.
Удаление селектора или ослабление карты, чтобы резерв заработал, — не контролируемое исключение. Оно расширяет то, что исключено, оставляет дальнюю сторону применять нечто иное и может изменить, какое правило трансляции подходит потоку.
Трансляция и допуск меняют арифметику
Трансляция может представить иной вид адресов, но прямое и обратное отображение должны согласовываться с альтернативным путём. Одностороннее отображение даёт соединение, которое открывается и затем зависает. Половина отображения хуже, чем ничего, потому что выглядит как прогресс.
Допуск — вторая половина. У принимающей стороны должно быть явное правило для этого трафика, собственный журнал и способ в три часа ночи отличить одобренное исключение от ошибки.
Восстановление — часть проекта
Запишите, как обнаруживается сбой, какая политика выбирает замену и что происходит с сеансами, которые работали в момент его наступления. Новое соединение может преуспеть после переключения, тогда как более старое сохраняет состояние, привязанное к адресу, который больше не действует.
Предпочитайте другой защищённый путь всякий раз, когда требование — непрерывная защита. Там, где незащищённое исключение действительно необходимо, ограничьте его источниками, назначениями, службами и сроком и запишите, как оно снимается.
Проверяйте оба состояния, а не только сбой
Приёмка охватывает случай отказавшего туннеля и восстановленный, с проверкой приложения в каждом. Интересный результат не в том, что пакеты продолжали двигаться, а в том, что они двигались только по контракту, который выбрала организация.
Добавьте и тест отзыва. Исключение, которое никто не может отключить, тихо стало постоянной политикой, и именно от этого защищало исходное правило. Поставьте на него срок и названного рецензента, иначе исключение переживёт всех, кто его понимал.