Маршрутизация через NAT-инстанс с помощью консоли управления
Чтобы настроить маршрутизацию через NAT-инстанс с помощью консоли управления Yandex Cloud:
- Подготовьте облако к работе.
- Создайте группу безопасности.
- Создайте тестовую ВМ.
- Создайте NAT-инстанс.
- Настройте статическую маршрутизацию в облачной сети.
- Проверьте работу NAT-инстанса.
Если созданные ресурсы вам больше не нужны, удалите их.
Перед началом работы
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки NAT-инстанса входят:
- плата за постоянно запущенные ВМ (см. тарифы Yandex Compute Cloud);
- плата за использование динамического или статического внешнего IP-адреса (см. тарифы Yandex Virtual Private Cloud).
Подготовьте инфраструктуру
-
Создайте облачную сеть, например
my-vpc
. -
В облачной сети создайте подсети, например:
public-subnet
, в которой будет размещен NAT-инстанс.private-subnet
, в которой будет размещена тестовая ВМ.
Создайте группу безопасности
Группы безопасности содержат правила, которые разрешают обращаться к ВМ по SSH. В сценарии будет создана группа безопасности nat-instance-sg
.
Чтобы создать группу безопасности:
-
В консоли управления
выберите сервис Virtual Private Cloud. -
Откройте вкладку
Группы безопасности. -
Создайте группу безопасности:
-
Нажмите кнопку Создать группу безопасности.
-
В поле Имя укажите имя группы:
nat-instance-sg
. -
В поле Сеть выберите сеть
my-vpc
. -
В блоке Правила создайте следующие правила по инструкции под таблицей:
Направление
трафикаОписание Диапазон портов Протокол Назначение /
ИсточникCIDR блоки Исходящий any
Весь
Любой
CIDR
0.0.0.0/0
Входящий ssh
22
TCP
CIDR
0.0.0.0/0
Входящий ext-http
80
TCP
CIDR
0.0.0.0/0
Входящий ext-https
443
TCP
CIDR
0.0.0.0/0
-
Выберите вкладку Исходящий трафик или Входящий трафик.
-
Нажмите кнопку Добавить правило.
-
В открывшемся окне в поле Диапазон портов укажите один порт или диапазон портов, куда или откуда будет поступать трафик. Чтобы открыть все порты, нажмите Выбрать весь диапазон.
-
В поле Протокол укажите нужный протокол или оставьте Любой, чтобы разрешить передачу трафика по всем протоколам.
-
В поле Назначение или Источник выберите
CIDR
— правило будет применено к диапазону IP-адресов. В поле CIDR блоки укажите0.0.0.0/0
. -
Нажмите кнопку Сохранить. Таким образом создайте все правила из таблицы.
-
Нажмите кнопку Сохранить.
-
Создайте тестовую виртуальную машину
-
В консоли управления
выберите каталог, в котором будет создана ВМ. -
В списке сервисов выберите Compute Cloud.
-
На панели слева выберите
Виртуальные машины. -
Нажмите кнопку Создать виртуальную машину.
-
В блоке Образ загрузочного диска выберите один из образов и версию операционной системы на базе Linux.
-
В блоке Расположение выберите зону доступности, где находится подсеть
private-subnet
. -
В блоке Сетевые настройки:
- В поле Подсеть выберите подсеть для тестовой ВМ, например
private-subnet
. - В поле Публичный адрес выберите
Без адреса
. - В поле Группы безопасности выберите созданную ранее группу
nat-instance-sg
. - Разверните блок Дополнительно и в поле Внутренний IPv4 адрес выберите
Автоматически
.
- В поле Подсеть выберите подсеть для тестовой ВМ, например
-
В блоке Доступ укажите данные для доступа к ВМ:
- В поле Логин введите имя пользователя, например,
yc-user
. -
В поле SSH-ключ вставьте содержимое файла публичного ключа.
Пару ключей для подключения по SSH необходимо создать самостоятельно, см. раздел о подключении к ВМ по SSH.
- В поле Логин введите имя пользователя, например,
-
В блоке Общая информация задайте имя ВМ:
test-vm
. -
Нажмите кнопку Создать ВМ.
Сохраните имя пользователя, закрытый SSH-ключ и внутренний IP-адрес тестовой ВМ.
Создайте NAT-инстанс
-
В консоли управления
выберите каталог, в котором будет создана ВМ. -
В списке сервисов выберите Compute Cloud.
-
На панели слева выберите
Виртуальные машины. -
Нажмите кнопку Создать виртуальную машину.
-
В блоке Образ загрузочного диска перейдите на вкладку Marketplace и выберите образ NAT-инстанс.
-
В блоке Расположение выберите зону доступности, где находится подсеть
public-subnet
. -
В блоке Сетевые настройки:
- В поле Подсеть выберите подсеть для NAT-инстанса, например
public-subnet
. - В поле Публичный адрес выберите
Автоматически
. - В поле Группы безопасности выберите созданную ранее группу
nat-instance-sg
. - Разверните блок Дополнительно и в поле Внутренний IPv4 адрес выберите
Автоматически
.
- В поле Подсеть выберите подсеть для NAT-инстанса, например
-
В блоке Доступ укажите данные для доступа к ВМ:
- В поле Логин введите имя пользователя, например,
yc-user
. -
В поле SSH-ключ вставьте содержимое файла публичного ключа.
Пару ключей для подключения по SSH необходимо создать самостоятельно, см. раздел о подключении к ВМ по SSH.
- В поле Логин введите имя пользователя, например,
-
В блоке Общая информация задайте имя ВМ:
nat-instance
. -
Нажмите кнопку Создать ВМ.
Сохраните имя пользователя, закрытый SSH-ключ, внутренний и публичный IP-адреса NAT-инстанса.
Настройте статическую маршрутизацию
Примечание
При создании NAT-инстанса автоматически настраивается только один сетевой интерфейс. Остальные интерфейсы можно включить вручную. Назначьте каждому новому интерфейсу IP-адрес и пропишите для него маршрут в таблице маршрутизации. В каждой подсети корректным шлюзом будет первый IP-адрес. Например, для подсети 192.168.0.128/25
первым адресом в подсети будет — 192.168.0.129
.
-
Создайте таблицу маршрутизации и добавьте в нее статический маршрут:
-
В консоли управления
выберите каталог, в котором хотите создать статический маршрут. -
В списке сервисов выберите Virtual Private Cloud.
-
На панели слева выберите
Таблицы маршрутизации. -
Нажмите кнопку Создать.
-
В поле Имя задайте имя таблицы маршрутизации, например
nat-instance-route
. Требования к имени:- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
В поле Cеть выберите сеть, например
my-vpc
. -
В блоке Статические маршруты нажмите Добавить маршрут.
-
В открывшемся окне в поле Префикс назначения введите
0.0.0.0/0
. -
В поле Next hop выберите
IP-адрес
. -
В поле IP-адрес укажите внутренний IP-адрес NAT-инстанса. Нажмите кнопку Добавить.
-
Нажмите кнопку Создать таблицу маршрутизации.
-
-
Привяжите таблицу маршрутизации к подсети, где находится тестовая ВМ, например
private-subnet
:- На панели слева выберите
Подсети. - Нажмите
в строке подсети с тестовой ВМ и выберите Привязать таблицу маршрутизации. - В открывшемся окне в поле Привязка таблицы маршрутизации выберите таблицу
nat-instance-route
и нажмите Привязать.
- На панели слева выберите
Созданный маршрут можно применять и к другим подсетям в той же сети, кроме подсети, где находится NAT-инстанс.
Важно
Не привязывайте таблицу маршрутизации к подсети, в которой находится NAT-инстанс. В противном случае будут возникать маршрутные петли, при которых NAT-инстанс будет направлять пакеты не в локальную сеть, а сам себе.
Проверьте работу NAT-инстанса
-
Подключитесь к тестовой ВМ через внутренний IP-адрес, используя NAT-инстанс в роли джамп-хоста:
ssh -J <имя_пользователя_NAT-инстанса>@<публичный_IP-адрес_NAT-инстанса> \ <имя_пользователя_ВМ>@<внутренний_IP-адрес_ВМ>
Также подключиться к тестовой ВМ можно с помощью перенаправления стандартного ввода-вывода (флаг
-W
) для «проброса» соединения через NAT-инстанс:ssh -o ProxyCommand="ssh -i <путь/имя_файла_ключа_NAT> -W %h:%p <имя_пользователя_NAT>@<публичный_IP-адрес_NAT>" \ -i <путь/имя_файла_ключа_ВМ> <имя_пользователя_ВМ>@<внутренний_IP-адрес_ВМ>
Используйте эту команду для подключения в следующих случаях:
- на ВМ используется версия OpenSSH ниже 7.3;
- ваши SSH-ключи хранятся в отличном от директории по умолчанию месте или имеют нестандартные имена.
-
Введите yes для подключения к NAT-инстансу и повторно введите yes для подключения к тестовой ВМ.
Примечание
При вводе yes команда может не отображаться в терминале, но сработает.
-
Убедитесь, что тестовая ВМ получает доступ в интернет через публичный IP-адрес NAT-инстанса. Выполните команду:
curl ifconfig.co
Если команда вернет публичный IP-адрес NAT-инстанса, все настроено правильно.
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы:
- Удалите тестовую ВМ и NAT-инстанс.
- Удалите группу безопасности.
- Удалите статический публичный IP-адрес, если вы его зарезервировали.