Документация "Инферит Облако"

предоставляет полное внедрение VPN‑соединения: подготовку инфраструктуры, написание vpn.tf с нужными ресурсами OpenStack, проверку планирования и безопасный деплой для мгновенного защищённого соединения клиента

Документация на нашем сайте предлагает исчерпывающие инструкции и руководства, созданные для повышения вашей эффективности при работе с облачными сервисами. В ней подробно описаны ключевые функции, процессы настройки инструментов, управление ресурсами, меры безопасности и практические сценарии использования

Создание VPN соединения

Подготовка

Ознакомитесь со статьей – Terraform быстрый старт.
Выполните все действия по настройке провайдера, составлению основных конфигурационных файлов.

Для настройки VPN-соединения нужно создать файл с именем vpn.tf и в нем описать конфигурацию требуемого подключения, используя пример ниже. Замените значения настроек на те, которые соответствуют вашему конкретному случаю.

Добавить описание ресурсов

После блока авторизации provider “openstack” {} необходимо добавить следующее:

resource "openstack_vpnaas_service_v2" "service_1" {
name           = "my_service"
router_id      = "Указать ID локального роутера"
admin_state_up = true
}

resource "openstack_vpnaas_ipsec_policy_v2" "policy_1" {
name = "testipsec"
}

resource "openstack_vpnaas_ike_policy_v2" "policy_2" {
name = "testike"
}

resource "openstack_vpnaas_endpoint_group_v2" "group_1" {
name      = "Group1"
type      = "subnet"
endpoints = ["Указать ID локальной подсети"]
}

resource "openstack_vpnaas_endpoint_group_v2" "group_2" {
name      = "Group2"
type      = "cidr"
endpoints = ["Указать CIDR удаленной подсети"]
}

resource "openstack_vpnaas_site_connection_v2" "conn_1" {
name             = "TestVPN"
ikepolicy_id     = openstack_vpnaas_ike_policy_v2.policy_2.id
ipsecpolicy_id   = openstack_vpnaas_ipsec_policy_v2.policy_1.id
vpnservice_id    = openstack_vpnaas_service_v2.service_1.id
psk              = "secret"
peer_address     = "Указать адрес удаленного маршрутизатора"
peer_id          = "Указать адрес удаленного маршрутизатора"
local_ep_group_id = openstack_vpnaas_endpoint_group_v2.group_1.id
peer_ep_group_id  = openstack_vpnaas_endpoint_group_v2.group_2.id
dpd {
  action   = "restart"
  timeout  = 42
  interval = 21
}
}

Значение объектов

Для создания VPN-соединения, обязательны следующие параметры:

  • openstack_vpnaas_service : Управляет VPN-сервисом. Основной параметр:
  • router_id : ID роутера. Изменение этого параметра создает новый сервис. Если вы хотите использовать существующий роутер, укажите его ID.
  •  
  • openstack_vpnaas_ipsec_policy : Управляет политикой IPSec. Основной параметр:
  • name: Имя политики. Изменение этого параметра обновляет имя существующей политики.
  •  
  • openstack_vpnaas_ike_policy : Управляет политикой IKE. Основной параметр:
  • name: имя политики. Изменение этого параметра обновляет имя существующей политики.
  •  
  • openstack_vpnaas_endpoint_group : Управляет группой конечных точек. Основные параметры:
  • type : Тип конечных точек в группе. Возможные значения: subnet, cidr, network, router, vlan. Изменение этого параметра создает новую группу.
  • endpoints : Список конечных точек одного типа, указанных в параметре type. Изменение этого параметра создает новую группу.
  •  
  • openstack_vpnaas_site_connection : Управляет IPSec-подключением. Основные параметры:
  • name : Имя подключения. Изменение этого параметра обновляет имя существующего подключения.
  • ikepolicy_id : ID политики IKE. Изменение этого параметра создает новое подключение.
  • ipsecpolicy_id : ID политики IPSec. Изменение этого параметра создает новое подключение.
  • vpnservice_id : ID VPN-сервиса. Изменение этого параметра создает новое подключение.
  • psk : Публичный ключ. Может быть любым значением типа string.
  • peer_address : Публичный IPv4 или IPv6 адрес peer-шлюза или FQDN.
  • peer_id : ID peer-роутера для аутентификации. Обычно совпадает с peer_address. Изменение этого параметра обновляет политику существующего подключения.
  • local_ep_group_id : ID группы конечных точек для локальных частных подсетей. Требует указания peer_ep_group_id : Если не используется режим обратной совместимости. Изменение этого параметра обновляет существующее подключение.
  • peer_ep_group_id : ID группы конечных точек для частных CIDR-адресов peer-подключения в формате net_address/prefix. Требует указания local_ep_group_id, если не используется режим обратной совместимости.
  •  
  • dpd : Словарь настроек для протокола Dead Peer Detection (DPD). Включает в себя следующие ресурсы:
  •  
  • action : Действие DPD. Возможные значения: clear, hold, restart, disabled, restart-by-peer. Значение по умолчанию: hold.
  • timeout : Тайм-аут DPD в секундах. Принимаются данные типа positive integer, значения которых больше чем interval. Значение по умолчанию: 120.
  • interval : Интервал DPD в секундах. Принимаются данные типа positive integer. Значение по умолчанию: 30.

Запуск развертывания

После добавления нового ресурса, стоит проверить корректность выполнения команды – terraform plan:

Terraform used the selected providers to generate the following execution plan.
Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # openstack_vpnaas_endpoint_group_v2.group_1 will be created
  + resource "openstack_vpnaas_endpoint_group_v2" "group_1" {
      + endpoints = [
          + "*****29a-1481-****-b3e1-*****2b32ac2",
        ]
      + id        = (known after apply)
      + name      = "Group1"
      + region    = (known after apply)
      + tenant_id = (known after apply)
      + type      = "subnet"
    }

  # openstack_vpnaas_endpoint_group_v2.group_2 will be created
  + resource "openstack_vpnaas_endpoint_group_v2" "group_2" {
      + endpoints = [
          + "192.168.1.0/24",
        ]
      + id        = (known after apply)
      + name      = "Group2"
      + region    = (known after apply)
      + tenant_id = (known after apply)
      + type      = "cidr"
    }

  # openstack_vpnaas_ike_policy_v2.policy_2 will be created
  + resource "openstack_vpnaas_ike_policy_v2" "policy_2" {
      + auth_algorithm          = "sha1"
      + encryption_algorithm    = "aes-128"
      + id                      = (known after apply)
      + ike_version             = "v1"
      + name                    = "testike"
      + pfs                     = "group5"
      + phase1_negotiation_mode = "main"
      + region                  = (known after apply)
      + tenant_id               = (known after apply)
    }

  # openstack_vpnaas_ipsec_policy_v2.policy_1 will be created
  + resource "openstack_vpnaas_ipsec_policy_v2" "policy_1" {
      + auth_algorithm       = (known after apply)
      + encapsulation_mode   = (known after apply)
      + encryption_algorithm = (known after apply)
      + id                   = (known after apply)
      + name                 = "testipsec"
      + pfs                  = (known after apply)
      + region               = (known after apply)
      + tenant_id            = (known after apply)
      + transform_protocol   = (known after apply)
    }

  # openstack_vpnaas_service_v2.service_1 will be created
  + resource "openstack_vpnaas_service_v2" "service_1" {
      + admin_state_up = true
      + external_v4_ip = (known after apply)
      + external_v6_ip = (known after apply)
      + id             = (known after apply)
      + name           = "my_service"
      + region         = (known after apply)
      + router_id      = "d9ac****-0ebe-4534-9d5a-****69145***"
      + status         = (known after apply)
      + tenant_id      = (known after apply)
    }

  # openstack_vpnaas_site_connection_v2.conn_1 will be created
  + resource "openstack_vpnaas_site_connection_v2" "conn_1" {
      + admin_state_up    = true
      + id                = (known after apply)
      + ikepolicy_id      = (known after apply)
      + initiator         = (known after apply)
      + ipsecpolicy_id    = (known after apply)
      + local_ep_group_id = (known after apply)
      + mtu               = (known after apply)
      + name              = "TestVPN"
      + peer_address      = "212.**.**.145"
      + peer_ep_group_id  = (known after apply)
      + peer_id           = "212.**.**.145"
      + psk               = "secret"
      + region            = (known after apply)
      + tenant_id         = (known after apply)
      + vpnservice_id     = (known after apply)

      + dpd {
          + action   = "restart"
          + interval = 21
          + timeout  = 42
        }
    }

Удостоверившись, что ресурсы планируются создаться или удалиться, в зависимости от файла состояний, можно перейти к развертыванию:
terraform apply

Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.

Enter a value:

Подтвердите выполнение командой yes.
Ресурсы создадутся, и информация будет добавлена в новый файл состояний.

Если какие-то ресурсы удалены из кода, но они присутствуют в файле состояния, то они будут удалены!
Применяйте команду terraform plan осторожно, во избежание непредвиденных последствий!

Получить доступ в личный кабинет клиента
Публикации в СМИ
Подключить сервис
Получить демо-доступ
Получить консультацию