Конечная точка AWS Client VPN выдаёт клиентские адреса из пула, который вы выбираете, и AWS проверяет этот пул относительно целевой сети до создания конечной точки. Проверка не о том, выглядит ли подсеть свободной. Она о том, пересекается ли пул с диапазоном VPC, и ответ одинаков независимо от того, использует ли сегодня экземпляр EC2 эти адреса. Пересечение — вопрос диапазонов, а не распределений.

Пройдите пять проверок по порядку. Остановитесь на первой неудачной, потому что ни один следующий шаг не исправит предыдущее решение.

Пересечение — это проверка диапазонов, а не проверка свободных адресов

Начните с CIDR VPC, а не с подсети, которую собираетесь связать. Пул 172.20.0.0/22 находится внутри VPC 172.20.0.0/16 и отклоняется, даже когда ни одна подсеть его не занимает, потому что пересечение — свойство диапазонов, а не текущих распределений. Затем добавьте назначения, в которые маршрутизирует конечная точка: пиринговые VPC, транзитный шлюз и локальные диапазоны через соединение site-to-site. Любой диапазон, до которого клиенту может понадобиться добраться, входит в список.

Соберите их из аккаунта, а не из памяти: aws ec2 describe-vpcs --query "Vpcs[].CidrBlock", плюс записи таблицы маршрутов для подсети, которую собираетесь связать.

Размер пула определяется до сборки

AWS принимает пул клиентов IPv4 от /22 до /12 в Client VPN. /24 слишком мал, /8 выходит за документированный диапазон, и обе ошибки возникают из-за оценки пула как подсети рабочей нагрузки. Оцените его по ожидаемым одновременным клиентам плюс запас, затем округлите до разрешённого префикса.

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

python3 -c "import ipaddress; p=ipaddress.ip_network('172.16.0.0/22'); print(p.num_addresses, p.prefixlen, p.overlaps(ipaddress.ip_network('172.20.0.0/16')))"

Это выводит число адресов, длину префикса и то, конфликтует ли кандидат с диапазоном VPC, что быстрее, чем рассуждать о сетевых масках в конце окна изменений.

У резолвера своя роль адреса

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

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

Четыре поля, которые вы фиксируете при создании

CIDR IPv4 клиента фиксируется при создании. Смена DNS-сервера, добавление связи, замена группы безопасности, правка правил авторизации или изменение маршрутов split-tunnel — всё это обычные изменения, и ни одно из них не переименовывает пул. Эта асимметрия и есть причина, почему это заслуживает проверки: дешёвые настройки — те, которые вы захотите изменить позже, а дорогая — та, которую вы фиксируете первой. Прочитайте описание конечной точки, прежде чем планировать окно изменений.

Проверьте развёрнутую конечную точку, прежде чем предполагать пересборку. aws ec2 describe-client-vpn-endpoints возвращает пул, DNS, флаг split-tunnel и связи в одном ответе, чего обычно достаточно, чтобы исключить пересборку.

Замените конечную точку вместо того, чтобы её латать

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

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

Одна граница, которую стоит назвать: это охватывает пул клиентов IPv4. Настройки трафика dual-stack и IPv6 в Client VPN следуют собственной модели адресации, поэтому не копируйте этот список, не прочитав документацию для того режима.

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