Объединённый или отдельный VPN-шлюз: выбор по домену отказа
Подсчёт устройств ничему не учит. Запишите, что отказывает одновременно, где применяется политика и как вы добираетесь до шлюза, когда он ломается.
Два устройства кажутся надёжнее одного, пока вы не заметите, что они делят один и тот же удлинитель, один и тот же гипервизор и один и тот же вышестоящий канал. Подсчёт коробок отвечает на вопрос, который никто не задавал; полезный вопрос — что отказывает одновременно. Сначала запишите контракт отказа, а затем позвольте ему выбрать топологию. Runbook ниже создаёт эту запись.
Что останавливается во время одной перезагрузки
Для объединённого шлюза перечислите, что исчезает во время перезагрузки, неудачного обновления или отказа оборудования. Если доступ в интернет и частная связность останавливаются вместе, это общее прерывание теперь часть вашего требования доступности, независимо от того, записал ли его кто-нибудь. То же упражнение применимо к одному устройству, завершающему несколько ролей: список служб, которые оно роняет, и есть настоящая спецификация.
Для отдельных шлюзов перечислите, что остаётся общим: питание, хост виртуализации, вышестоящий канал, поставщик идентичности, сеть управления. Два устройства за одним отказавшим коммутатором — один домен отказа с двумя именами хостов. Разделение, игнорирующее эти зависимости, — схема, а не проект.
Посчитайте и владение обслуживанием. Ещё одно устройство приносит конфигурацию, мониторинг, резервные копии и вторую процедуру восстановления, и ничего из этого не бесплатно.
Отметьте, где применяется каждое правило
Проследите один пакет от клиента к частному ресурсу и обратно и отметьте каждое место, где применяется политика. Второй маршрутизатор добавляет ещё одну точку, где предпочтение маршрута, трансляция или состояние соединения могут расходиться с первым. Большинство загадочных отказов в проекте с двумя шлюзами живут именно на этом шве.
ip route get 10.20.30.40
traceroute -n 10.20.30.40
conntrack -L -p tcp --dport 443Запишите, где заканчивается защита VPN и где начинается внутренняя политика. Если путь между двумя устройствами разрешающий, второй ящик не создал границы; он только перенёс место, где граница могла быть. На одной платформе отдельные зоны политики всё ещё могут быть эффективными, и их эффективность следует оценивать по правилам, а не отбрасывать потому, что оборудование общее.
Остановитесь, если не можете сказать, какое устройство применяет важное правило. Этот пробел и есть находка, а не деталь, которую решат позже.
Изоляция — это граница, а не корпус
Отдельное устройство сдерживает компрометацию только тогда, когда путь через него ограничен тем, что нужно другой стороне. Если оба устройства принимают любой трафик друг от друга, у злоумышленника, попавшего на одно, та же достижимость, что и раньше. Утверждение об изоляции принадлежит набору правил, а не описи. Прочитайте правила, скажите, какие потоки разрешены, затем решите, купило ли разделение что-нибудь.
Та же логика применима к пользователям. Пользователь VPN, которому доверяют из-за сети, откуда он пришёл, доверяет местоположению вместо идентичности, и руководство NIST по нулевому доверию описывает альтернативу: аутентифицировать и авторизовать каждый запрос относительно ресурса. Этот принцип действует независимо от того, какой корпус завершает туннель.
Если разделение существует, чтобы удовлетворить линию соответствия, а не изменить поток, скажите это в записи. Контроль, который никто не может объяснить, первым снимают под давлением.
Восстанавливайте то, до чего действительно можно добраться
Спросите, какой путь восстановления выживает, когда умирает любая из двух ролей. Когда единственный путь к сломанному VPN-шлюзу идёт через этот шлюз, запасное устройство в другом месте не помогает администратору, которому нужно его починить. Внеполосный путь, консоль и документированный откат — это части, которые делают проект восстановимым.
systemctl status strongswan
nft list ruleset
ip -brief addressПодбирайте размеры проекта под полную поддерживаемую нагрузку, а не под изолированное число шифрования, потому что фильтрация и инспекция потребляют то же оборудование. Используйте документацию поставщика и собственные измерения вместо предположения, что разделение быстрее или медленнее. Затем запишите решение: какие потоки разрешены, какие зависимости общие, что роняет окно обслуживания, какие доказательства ёмкости у вас есть и кто владеет каждым шагом восстановления. Эта запись достаточно коротка для обзора и достаточно конкретна, чтобы к ней вернуться.
Runbook заканчивается, когда контракт отказа записан, путь пересылки имеет одну именованную точку применения на правило, изоляция описана потоками, а не числом устройств, и восстановление работает извне отказавшего компонента. Выберите более простое устройство, отвечающее этим требованиям.