[Документация Yandex Cloud](../../index.md) > [Yandex Virtual Private Cloud](../index.md) > [Пошаговые инструкции](index.md) > Статическая маршрутизация > Удалить NAT-шлюз

# Удалить NAT-шлюз

Если [NAT-шлюз](../concepts/gateways.md) вам больше не нужен, вы можете [удалить его](#delete-nat-gateway). Перед удалением NAT-шлюза [отвяжите его](#unlink-nat-gateway) от всех таблиц маршрутизации, в которых он используется.

## Отвязать NAT-шлюз от таблицы маршрутизации {#unlink-nat-gateway}

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, где требуется отвязать NAT-шлюз.
  1. [Перейдите](https://kz.console.yandex.cloud/link/vpc) в сервис **Virtual Private Cloud**.
  1. На панели слева выберите ![image](../../_assets/console-icons/route.svg) **Таблицы маршрутизации**.
  1. В открывшемся списке найдите таблицу маршрутизации, у которой в колонке **Статические маршруты** указан нужный NAT-шлюз.
  1. В строке с нужной таблицей нажмите на значок ![image](../../_assets/console-icons/ellipsis.svg) и выберите **Редактировать**.
  1. В открывшемся окне нажмите на значок ![image](../../_assets/console-icons/xmark.svg) в строке с названием NAT-шлюза.
  1. Нажмите кнопку **Сохранить**.

- CLI {#cli}

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).

  По умолчанию используется каталог, указанный при [создании](../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  Чтобы отвязать NAT-шлюз от таблицы маршрутизации:

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

      ```bash
      yc vpc route-table update --help
      ```

  1. Узнайте имя или идентификатор таблицы маршрутизации, к которой привязан NAT-шлюз:

      ```bash
      yc vpc route-table list
      ```
      Результат:
      ```text
      +----------------------+----------------------+-------------+----------------------+
      |          ID          |         NAME         | DESCRIPTION |      NETWORK-ID      |
      +----------------------+----------------------+-------------+----------------------+
      | enpcaaqahk3c******** | test-table           |             | enptgj64mv2r******** |
      +----------------------+----------------------+-------------+----------------------+

      ```
  1. Отвяжите NAT-шлюз:
      ```bash
      yc vpc route-table update <имя_или_идентификатор_таблицы_маршрутизации> --clear-routes
      ```
      Используйте либо параметр `--id`, либо параметр `--name`.

- Terraform {#tf}

  Если у вас еще нет Terraform, [установите его и настройте провайдер Yandex Cloud](../../tutorials/infrastructure-management/terraform-quickstart.md#install-terraform).
  
  
  Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, [аутентифицируйтесь](../../terraform/authentication.md) соответствующим способом.

  [Terraform](https://www.terraform.io/) позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
  
  Terraform распространяется под лицензией [Business Source License](https://github.com/hashicorp/terraform/blob/main/LICENSE), а [провайдер Yandex Cloud для Terraform](https://github.com/yandex-cloud/terraform-provider-yandex) — под лицензией [MPL-2.0](https://www.mozilla.org/en-US/MPL/2.0/).
  
  Подробная информация о ресурсах провайдера в документации на сайте [Terraform](https://www.terraform.io/docs/providers/yandex/index.html) или в [зеркале](../../terraform/index.md).

  Чтобы отвязать NAT-шлюз от таблицы маршрутизации, созданной с помощью Terraform:

  1. Откройте файл конфигурации Terraform и найдите фрагмент с описанием таблицы маршрутизации, к которой привязан NAT-шлюз.

     {% cut "Пример описания таблицы маршрутизации в конфигурации Terraform" %}

     ```hcl
     ...
     resource "yandex_vpc_route_table" "routetable" {
       folder_id  = "<идентификатор_каталога_пользователя>"
       name       = "<имя_таблицы_маршрутизации>"
       network_id = "<идентификатор_сети>"
       static_route {
         destination_prefix = "0.0.0.0/0"
         gateway_id         = <идентификатор_шлюза>
       }
     }
     ...
     ```

     {% endcut %}

  1. Удалите объект `static_route`.

  1. В командной строке перейдите в папку, где расположен файл конфигурации Terraform.

  1. Проверьте конфигурацию командой:

     ```bash
     terraform validate
     ```

     Если конфигурация является корректной, появится сообщение:

     ```text
     Success! The configuration is valid.
     ```

  1. Выполните команду:

     ```bash
     terraform plan
     ```

     В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

  1. Примените изменения конфигурации:

     ```bash
     terraform apply
     ```

  1. Подтвердите изменения: введите в терминал слово `yes` и нажмите **Enter**.

     Проверить изменения можно в [консоли управления](https://kz.console.yandex.cloud) или с помощью команды [CLI](../../cli/quickstart.md):

     ```bash
     yc vpc route-table get <имя_или_идентификатор_таблицы_маршрутизации>
     ```
     Используйте либо параметр `--id`, либо параметр `--name`.

- API {#api}

  Чтобы отвязать NAT-шлюз от таблицы маршрутизации, нужно удалить из таблицы маршрутизации статический маршрут с этим NAT-шлюзом. Для этого воспользуйтесь методом REST API [update](../api-ref/RouteTable/update.md) для ресурса [RouteTable](../api-ref/RouteTable/index.md) или вызовом gRPC API [RouteTableService/Update](../api-ref/grpc/RouteTable/update.md) и передайте в запросе список статических маршрутов без удаляемого маршрута в параметре:
    * `staticRoutes` для REST API;
    * `static_routes` для gRPC API.

  Если в списке содержался только один статический маршрут, передайте пустой список.

  Чтобы получить список статических маршрутов, воспользуйтесь методом REST API [get](../api-ref/RouteTable/get.md) для ресурса [RouteTable](../api-ref/RouteTable/index.md) или вызовом gRPC API [RouteTableService/Get](../api-ref/grpc/RouteTable/get.md) и передайте в запросе идентификатор таблицы маршрутизации в параметре:
    * `routeTableId` для REST API;
    * `route_table_id` для gRPC API.

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

{% endlist %}

## Удалить NAT-шлюз {#delete-nat-gateway}

{% note warning %}

Перед удалением NAT-шлюза [отвяжите его](#unlink-route-table) от всех таблиц маршрутизации, к которым он привязан.

{% endnote %}

{% list tabs group=instructions %}

- Консоль управления {#console}

  Чтобы удалить NAT-шлюз:
  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, где требуется удалить NAT-шлюз.
  1. [Перейдите](https://kz.console.yandex.cloud/link/vpc) в сервис **Virtual Private Cloud**.
  1. На панели слева выберите ![image](../../_assets/vpc/gateways.svg) **Шлюзы**.
  1. Нажмите на значок ![image](../../_assets/console-icons/ellipsis.svg) в строке с именем нужного NAT-шлюза и выберите **Удалить**.
  1. В открывшемся окне нажмите кнопку **Удалить**.

- CLI {#cli}

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).

  По умолчанию используется каталог, указанный при [создании](../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  Чтобы удалить таблицу маршрутизации:

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

      ```bash
      yc vpc gateway delete --help
      ```

  1. Узнайте имя или идентификатор NAT-шлюза, который требуется удалить:

      ```bash
      yc vpc gateway list
      ```
      Результат:
      ```text
      +----------------------+-----------+-------------+
      |          ID          |   NAME    | DESCRIPTION |
      +----------------------+-----------+-------------+
      | enpkq171u4gb******** | gateway-1 |             |
      +----------------------+-----------+-------------+
      ```
  1. Удалите NAT-шлюз:
      ```bash
      yc vpc gateway delete <имя_или_идентификатор_шлюза>
      ```
      Используйте либо параметр `--id`, либо параметр `--name`.

- Terraform {#tf}

  Если у вас еще нет Terraform, [установите его и настройте провайдер Yandex Cloud](../../tutorials/infrastructure-management/terraform-quickstart.md#install-terraform).
  
  
  Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, [аутентифицируйтесь](../../terraform/authentication.md) соответствующим способом.

  [Terraform](https://www.terraform.io/) позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
  
  Terraform распространяется под лицензией [Business Source License](https://github.com/hashicorp/terraform/blob/main/LICENSE), а [провайдер Yandex Cloud для Terraform](https://github.com/yandex-cloud/terraform-provider-yandex) — под лицензией [MPL-2.0](https://www.mozilla.org/en-US/MPL/2.0/).
  
  Подробная информация о ресурсах провайдера в документации на сайте [Terraform](https://www.terraform.io/docs/providers/yandex/index.html) или в [зеркале](../../terraform/index.md).

  Чтобы удалить NAT-шлюз, созданный с помощью Terraform:

  1. Откройте файл конфигурации Terraform и удалите фрагмент с описанием нужного NAT-шлюза.

     {% cut "Пример описания NAT-шлюза в конфигурации Terraform" %}

     ```hcl
     ...
     resource "yandex_vpc_gateway" "natgateway" {
       folder_id      = "<идентификатор_каталога>"
       name = "<имя_шлюза>"
       shared_egress_gateway {}
     }
     ...
     ```

     {% endcut %}

  1. В командной строке перейдите в папку, где расположен файл конфигурации Terraform.

  1. Проверьте конфигурацию командой:

     ```bash
     terraform validate
     ```

     Если конфигурация является корректной, появится сообщение:

     ```text
     Success! The configuration is valid.
     ```

  1. Выполните команду:

     ```bash
     terraform plan
     ```

     В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

  1. Примените изменения конфигурации:

     ```bash
     terraform apply
     ```

  1. Подтвердите изменения: введите в терминал слово `yes` и нажмите **Enter**.

     Проверить изменения можно в [консоли управления](https://kz.console.yandex.cloud) или с помощью команды [CLI](../../cli/quickstart.md):

     ```bash
     yc vpc gateway list
     ```

- API {#api}

  Чтобы удалить NAT-шлюз, воспользуйтесь методом REST API [delete](../api-ref/Gateway/delete.md) для ресурса [Gateway](../api-ref/Gateway/index.md) или вызовом gRPC API [GatewayService/Delete](../api-ref/grpc/Gateway/delete.md) и передайте в запросе идентификатор удаляемого NAT-шлюза в параметре:
    * `gatewayId` для REST API;
    * `gateway_id` для gRPC API.

  Чтобы узнать идентификатор NAT-шлюза, воспользуйтесь методом REST API [list](../api-ref/Gateway/list.md) для ресурса [Gateway](../api-ref/Gateway/index.md) или вызовом gRPC API [GatewayService/List](../api-ref/grpc/Gateway/list.md) и передайте в запросе идентификатор каталога в параметре:
    * `folderId` для REST API;
    * `folder_id` для gRPC API.

{% endlist %}