Кінцева точка 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 підкоряються власній моделі адресації, тож не копіюйте цей список, не прочитавши документацію для того режиму.

Схожі статті