[Yandex Cloud documentation](../../../index.md) > [Yandex Virtual Private Cloud](../../index.md) > [Tutorials](../index.md) > Configuring network resources and interaction between them > Routing through a NAT instance > Overview

# Routing through a NAT instance


A _NAT instance_ is a [VM](../../../compute/concepts/vm.md) with pre-configured routing and [IP address](../../concepts/address.md) translation rules. Technically, it is a regular Ubuntu VM with pre-installed `iptables`, fully user-configurable. The only difference between a NAT instance and a standard VM is that the former has IP routing pre-enabled and supports connecting multiple network interfaces.

NAT instance images are available on Cloud Marketplace:

* [NAT instance powered by Ubuntu 22.04 LTS](https://yandex.cloud/en/marketplace/products/yc/nat-instance-ubuntu-22-04-lts)
* [NAT instance powered by Ubuntu 18.04 LTS](https://yandex.cloud/en/marketplace/products/yc/nat-instance-ubuntu-18-04-lts)

Yandex Cloud allows you to connect internal VMs to the internet through a NAT instance with [static routing](../../concepts/routing.md). All internal VMs use a single public IP address of the NAT instance.

In this tutorial, you will create a test VM and a NAT one and set up routing using [Yandex Compute Cloud](../../../compute/index.md) and [Yandex Virtual Private Cloud](../../index.md), respectively.

You can use one of the following tools to set up NAT routing:

* [Management console](console.md): Create your infrastructure step by step from the Yandex Cloud management console.
* [Terraform](terraform.md): Streamline creating and managing your resources with the _infrastructure as code_ (IaC) approach. Download a Terraform configuration example and deploy your infrastructure using the [Yandex Cloud Terraform provider](../../../terraform/index.md).