Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Virtual Private Cloud
  • Начало работы
    • Все инструкции
      • Создать статический маршрут
      • Создать и настроить NAT-шлюз
      • Получить информацию о NAT-шлюзе
      • Перенести таблицу маршрутизации между каталогами
      • Получить информацию о таблице маршрутизации
      • Перенести NAT-шлюз между каталогами
      • Удалить таблицу маршрутизации
      • Удалить NAT-шлюз
    • Включить программно-ускоренную сеть
    • График сетевых соединений
    • Посмотреть операции с ресурсами сервиса
  • DDoS Protection
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Аудитные логи Audit Trails
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы
  1. Пошаговые инструкции
  2. Статическая маршрутизация
  3. Создать и настроить NAT-шлюз

Настроить NAT-шлюз

Статья создана
Yandex Cloud
Улучшена
Обновлена 15 мая 2025 г.

Минимально необходимые роли для создания и настройки NAT-шлюза: vpc.admin и vpc.gateways.user.

Чтобы создать и настроить NAT-шлюз:

Консоль управления
CLI
Terraform
API
  1. В консоли управления перейдите в каталог, где требуется создать шлюз.

  2. В списке сервисов выберите Virtual Private Cloud.

  3. На панели слева выберите Шлюзы.

  4. Нажмите кнопку Создать.

  5. Задайте имя шлюза. Требования к имени:

    • длина — от 2 до 63 символов;
    • может содержать строчные буквы латинского алфавита, цифры и дефисы;
    • первый символ — буква, последний — не дефис.
  6. (Опционально) Добавьте описание шлюза.

  7. По умолчанию выбран тип шлюза NAT-шлюз.

  8. Нажмите кнопку Сохранить.

  9. На панели слева выберите Таблицы маршрутизации.

  10. Нажмите кнопку Создать, чтобы создать новую таблицу, или выберите одну из существующих.

  11. Нажмите кнопку Добавить маршрут.

  12. В открывшемся окне в поле Next hop выберите Шлюз.

  13. В поле Шлюз выберите созданный NAT-шлюз. Префикс назначения заполнится автоматически.

  14. Нажмите кнопку Добавить.

  15. Нажмите кнопку Сохранить.

Затем привяжите таблицу маршрутизации к одной из подсетей, чтобы направить трафик из нее через NAT-шлюз:

  1. На панели слева выберите Подсети.
  2. В строке нужной подсети нажмите кнопку .
  3. В открывшемся меню выберите пункт Привязать таблицу маршрутизации.
  4. В открывшемся окне выберите созданную таблицу в списке.
  5. Нажмите кнопку Привязать.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

  1. Посмотрите описание команды CLI для создания шлюза:

    yc vpc gateway create --help
    
  2. Создайте шлюз в каталоге по умолчанию:

    yc vpc gateway create \
       --name test-gateway
    
  3. Получите идентификатор шлюза:

    yc vpc gateway list
    

    Результат:

    +----------------------+--------------+-------------+
    |          ID          |     NAME     | DESCRIPTION |
    +----------------------+--------------+-------------+
    | enpkq1v2e7p0******** | test-gateway |             |
    +----------------------+--------------+-------------+
    
  4. Создайте таблицу маршрутизации со шлюзом в качестве next hop и префиксом назначения 0.0.0.0/0:

    yc vpc route-table create \
       --name=test-route-table \
       --network-name=<имя_сети> \
       --route destination=0.0.0.0/0,gateway-id=enpkq1v2e7p0********
    

    Где --network-name — имя сети, в которой создается таблица.

  5. Привяжите таблицу к подсети:

    yc vpc subnet update <имя_подсети> \
       --route-table-name=test-route-table
    

Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

Чтобы создать NAT-шлюз, указать его в качестве next hop в таблице маршрутизации и привязать таблицу к подсети используйте следующую конфигурацию:

data "yandex_vpc_network" "net" {
  folder_id = "<идентификатор_каталога>"
  name      = "<имя_сети>"
}

resource "yandex_vpc_subnet" "subnet" {
  folder_id      = "<идентификатор_каталога>"
  name           = "<имя_подсети>"
  v4_cidr_blocks = ["10.20.30.0/24"]
  zone           = "ru-central1-a"
  network_id     = data.yandex_vpc_network.net.id
  route_table_id = yandex_vpc_route_table.rt.id
}

resource "yandex_vpc_gateway" "nat_gateway" {
  folder_id      = "<идентификатор_каталога>"
  name = "test-gateway"
  shared_egress_gateway {}
}

resource "yandex_vpc_route_table" "rt" {
  folder_id      = "<идентификатор_каталога>"
  name       = "test-route-table"
  network_id = "<идентификатор_сети>"

  static_route {
    destination_prefix = "0.0.0.0/0"
    gateway_id         = yandex_vpc_gateway.nat_gateway.id
  }
}

Где folder_id — идентификатор каталога, в котором находится подсеть.

  1. Создайте NAT-шлюз. Воспользуйтесь методом REST API create для ресурса Gateway или вызовом gRPC API GatewayService/Create и передайте в запросе:

    • Идентификатор каталога, в котором будет размещен шлюз, в параметре folderId.

    • Имя шлюза в параметре name. Формат имени:

      • длина — от 2 до 63 символов;
      • может содержать строчные буквы латинского алфавита, цифры и дефисы;
      • первый символ — буква, последний — не дефис.
  2. Привяжите NAT-шлюз к новой таблице маршрутизации. Для этого воспользуйтесь методом REST API create для ресурса RouteTable или вызовом gRPC API RouteTableService/Create и передайте в запросе:

    • Идентификатор каталога, в котором будет размещена таблица маршрутизации, в параметре folderId.

    • Имя таблицы маршрутизации в параметре name. Формат имени:

      • длина — от 2 до 63 символов;
      • может содержать строчные буквы латинского алфавита, цифры и дефисы;
      • первый символ — буква, последний — не дефис.
    • Идентификатор сети, в которой будет размещена таблица маршрутизации, в параметре networkId.

    • Значение 0.0.0.0/0 для префикса подсети назначения в параметре staticRoutes[].destinationPrefix.

    • Идентификатор NAT-шлюза в параметре staticRoutes[].gatewayId.

      Чтобы узнать идентификатор NAT-шлюза, воспользуйтесь методом REST API list для ресурса Gateway или вызовом gRPC API GatewayService/List и передайте в запросе идентификатор каталога в параметре folderId.

  3. Привяжите таблицу маршрутизации к подсети. Для этого воспользуйтесь методом REST API update для ресурса Subnet или вызовом gRPC API SubnetService/Update и передайте в запросе:

    • Идентификатор подсети в параметре subnetId.

      Чтобы узнать идентификатор подсети, воспользуйтесь методом REST API list для ресурса Subnet или вызовом gRPC API SubnetService/List и передайте в запросе идентификатор каталога в параметре folderId.

      О том, как узнать идентификатор каталога, читайте в разделе Получение идентификатора каталога.

    • Идентификатор таблицы маршрутизации в параметре routeTableId.

    • Имя параметра routeTableId в параметре updateMask.

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

Была ли статья полезна?

Предыдущая
Создать статический маршрут
Следующая
Получить информацию о NAT-шлюзе
Проект Яндекса
© 2025 ООО «Яндекс.Облако»