Локальный и удалённый CIDR в AWS VPN: какая сторона какая?
В параметрах AWS VPN LocalIpv4NetworkCidr — сторона клиента, а RemoteIpv4NetworkCidr — сторона AWS. Обозначьте обе роли, прежде чем трогать работающий туннель.
Вы открываете параметры Site-to-Site VPN, видите два поля CIDR с пометками локальное и удалённое и тянетесь к адресу, который считаете локальным: к VPC. Это обратное тому, что имеет в виду API. В параметрах подключения LocalIpv4NetworkCidr называет сторону клиентского шлюза, а RemoteIpv4NetworkCidr сторону AWS, потому что подключение строится от клиентского шлюза. Консоль никогда не говорит этого вслух, и ничто не отклоняет правдоподобную замену.
Начните с вызова API, а не с подписи в консоли
Прочитайте справочник параметров подключения один раз целиком и заметьте, что каждый параметр написан с точки зрения клиентского шлюза. Это не случайность именования. Туннель описывается так, как его видит устройство, завершающее его на вашей стороне, поэтому локальное означает сеть за вашим шлюзом, а удалённое — сеть за шлюзом AWS. И поля IPv4, и поля IPv6 подчиняются одному правилу.
Напишите две пометки на стикере, прежде чем что-то вводить: сторона клиента, сторона AWS. Затем сопоставьте с ними свои адреса.
Разобранный пример с ролями
Предположим, локальный префикс — 10.20.0.0/16, а префикс VPC — 10.60.0.0/16. Параметры читаются именно так, как подсказывают роли, а локальный диапазон стоит в локальном поле:
{
"LocalIpv4NetworkCidr": "10.20.0.0/16",
"RemoteIpv4NetworkCidr": "10.60.0.0/16"
}Теперь передайте ту же пару тому, кто настраивает партнёрское устройство, и посмотрите, как сработает ловушка. Во многих межсетевых экранах локальное означает интерфейс, на котором завершается туннель, а удалённое — дальний конец, и для стороны AWS это обратное сопоставление. Оба человека могут быть правы и всё же получить туннель, который никогда не поднимется, потому что два словаря описывают разные конечные точки.
Повторите упражнение на бумаге в терминологии партнёра, с обоими CIDR и обеими пометками, прежде чем трогать любое устройство.
Значения по умолчанию — не проект
Тот же справочник указывает 0.0.0.0/0 как значение по умолчанию для обоих полей IPv4, с аналогичными значениями для IPv6. Если вы видите такие значения в существующем подключении, это значит, что поле никогда не сужали, а не что настроен выход в интернет. Распределение маршрутов, таблица маршрутов подсети и средства безопасности по-прежнему решают, какой трафик действительно может пройти; значения CIDR лишь описывают, какие диапазоны туннель готов выбирать.
Поэтому замена более узкого значения значением по умолчанию — не трюк совместимости, который применяют, когда туннель ведёт себя неправильно. Он расширяет селектор и оставляет все остальные уровни точно такими, какими они были.
Партнёрское устройство использует другую точку зрения
Когда сторона AWS ясна, конфигурация партнёра — это место, где живёт большая часть оставшейся путаницы. Устройство, которое спрашивает локальную сеть и удалённую сеть, описывает свой собственный интерфейс как локальный, поэтому ваш диапазон VPC попадает в его удалённое поле, а ваш локальный диапазон — в его локальное поле. Если же оно спрашивает селекторы трафика парами, вы пишете оба направления явно, и пометки значат меньше, чем сопоставление пар.
Читайте справку по полям устройства, а не названия его полей. Производители используют одни и те же два слова для трёх разных понятий.
Затем проверьте состояние туннеля для обеих фаз, потому что несовпадающий селектор обычно проявляется как сбой второй фазы, пока первая фаза спокойно стоит установленной.
Меняйте параметры как изменение, а не как документацию
Редактирование параметров подключения на работающем VPN может прервать обслуживание, поэтому относитесь к этому как к регламентной работе с окном, значением для отката и заметкой о том, кого это затрагивает. Сначала зафиксируйте текущие параметры, включая оба поля CIDR и параметры туннеля, чтобы откат был вставкой, а не пересборкой.
После изменения проверьте со стороны AWS и со стороны партнёра: источник в каждом диапазоне достигает назначения в другом, в обоих направлениях. Один ping с одной стороны доказывает только один селектор.
Затем обновите документацию подключения, выписав роли, чтобы следующему человеку не пришлось заново открывать, что локальное означает вашу сторону.