---
title: "Connect Cloud Platform private network to DNS resolver via Terraform"
sidebar_label: "Connect Cloud Platform network to DNS resolver"
description: "How to connect a Cloud Platform network to a DNS resolver"
sidebar_position: 2
---

import Formbricks from '@theme/MDXComponents/Formbricks'
import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import ConfigureProviders from '@site/i18n/en/docusaurus-plugin-content-docs-terraform/current/_partials/common/configure-providers.mdx'
import ConfigureProvidersConfig from '@site/i18n/en/docusaurus-plugin-content-docs-terraform/current/_partials/common/configure-providers-config.mdx'
import CreateResourcesAlert from '@site/i18n/en/docusaurus-plugin-content-docs-terraform/current/_partials/common/create-resources-alert.mdx'
import CreateNetworks from '@site/i18n/en/docusaurus-plugin-content-docs-terraform/current/_partials/cloud-networks/create-networks.mdx'
import {TabItemLabel} from '@selectel/docux/components'

# Connect a Cloud Platform private network to a DNS resolver via Terraform

If a Cloud Platform private network is connected to a DNS resolver, cloud servers in that network can resolve domain names of all zones within their [pool](/infrastructure/locations/#pool) and [project](/access-control/projects/).

<CreateResourcesAlert />

<br />

1. Optional: [configure the providers](#configure-providers).
2. [Create a private network and subnet](#create-networks).
3. [Connect the network to the DNS resolver](#connect-network-to-dns-resolver).
4. [Specify the DNS resolver IP addresses in the subnet settings](#specify-dns-addresses-for-subnet).

## Configuration files \{#config}

<details>
  <summary>Example file for configuring providers</summary>

  <ConfigureProvidersConfig />
</details>

<details>
  <summary>Example file for connecting a private network to a DNS resolver</summary>

  ```hcl
  resource "openstack_networking_network_v2" "network_1" {
    name                  = "network"
    port_security_enabled = "true"
  }

  resource "openstack_networking_subnet_v2" "subnet_1" {
    name       = "subnet"
    network_id = openstack_networking_network_v2.network_1.id
    cidr       = "192.168.0.0/24"
  }

  resource "selectel_private_dns_service_v1" "service_1" {
    region     = openstack_networking_network_v2.network_1.region
    project_id = openstack_networking_network_v2.network_1.tenant_id
    network_id = openstack_networking_network_v2.network_1.id
  }
  ```
</details>

## 1. Optional: configure providers \{#configure-providers}

If you have [configured the Selectel and OpenStack providers](/terraform/configure-terraform-environment/#configure-providers), skip this step.

<ConfigureProviders />

## 2. Create a private network and subnet \{#create-networks}

<CreateNetworks />

## 3. Connect the network to the DNS resolver \{#connect-network-to-dns-resolver}

```hcl
resource "selectel_private_dns_service_v1" "service_1" {
  region     = openstack_networking_network_v2.network_1.region
  project_id = openstack_networking_network_v2.network_1.tenant_id
  network_id = openstack_networking_network_v2.network_1.id
}
```

See the detailed resource description [selectel\_private\_dns\_service\_v1](/terraform/selectel-provider-reference/resources/private_dns_service_v1/).

## 4. Specify the DNS resolver IP addresses in the subnet settings \{#specify-dns-addresses-for-subnet}

You can specify the DNS resolver IP addresses in the subnet settings via the control panel or OpenStack CLI. Use the [Change DNS servers on private subnet](/cloud-servers/cloud-networks/private-networks-and-subnets/#change-dns-servers-on-private-subnet) subsection in the instructions for [Private networks and subnets](/cloud-servers/cloud-networks/private-networks-and-subnets/).

IP addresses of the DNS resolver in the network can be viewed in the [Control Panel](https://my.selectel.ru/vpc/default/private-dns/resolvers): in the top menu click **Products** → **Cloud Servers** → **Private DNS** → tab **DNS Resolvers** → network row → field **DNS resolver**.

<Formbricks />
