VPN қосылымын жасау
Мақалада Terraform көмегімен VPN-қосылымын жасау және баптау мысалы келтірілген.
Нұсқаулық қадамдарынан өткеннен кейін сіз:
- Жасайсыз конфигурация файлын.
- Қосасыз виртуалды желі үшін ресурстар мен деректер көздерін.
- Қосасыз VPN-қосылымы үшін ресурсты.
- Жасайсыз қосылған ресурстарды.
Параметрлердің толық сипаттамасы — Terraform провайдерінің құжаттамасында.
-
Квоталарды тексеріңіз. Таңдалған аймақта желілерді жасауға жеткілікті ресурстар бар екеніне көз жеткізіңіз. Әртүрлі аймақтарда әртүрлі квоталар қолданылуы мүмкін.
Қажет болса, квоталарды арттырыңыз.
-
Егер әлі жасалмаған болса, ссылка.
-
Провайдер баптаулары бар файлды жобамен жұмыс істейтін директорияға орналастырыңыз және осы директориядан команданы орындаңыз:
terraform initTerraform инициализациясының аяқталуын күтіңіз.
Жобамен жұмыс істейтін директорияда vpn.tf файлын жасаңыз. Бұл файлда жасалатын қосылымның конфигурациясы сипатталады.
-
Қолданылатын SDN түріне байланысты төмендегі қойындылардың бірінің мазмұнын
vpn.tfфайлына көшіріңіз.NeutronSprutdata "vkcs_networking_network" "extnet" {name = "ext-net"}resource "vkcs_networking_network" "network" {name = "vpnaas_network"sdn = "neutron"}resource "vkcs_networking_subnet" "subnet" {name = "vpnaas_subnet"network_id = vkcs_networking_network.network.idcidr = "192.168.199.0/24"}resource "vkcs_networking_router" "router" {name = "router"sdn = "neutron"external_network_id = data.vkcs_networking_network.extnet.id}resource "vkcs_networking_router_interface" "router_interface" {router_id = vkcs_networking_router.router.idsubnet_id = vkcs_networking_subnet.subnet.id}Желіні жасау үшін келесі объектілер қажет болады:
-
Ресурстар (resource):
- vkcs_networking_network — ВМ жасалатын желі.
- vkcs_networking_subnet — осы желідегі ішкі желі.
- vkcs_networking_router — жеке желіні сыртқы желілермен қосатын маршрутизатор.
- vkcs_networking_router_interface — маршрутизаторды ішкі желіге қосатын интерфейс.
-
Деректер көзі (data source): vkcs_networking_network — маршрутизатордың жария IP-адрес алуына, сондай-ақ жеке желі мәндеріне Floating IP-адрес бөлуге арналған сыртқы желі.
-
-
Қосылымыңыз үшін баптау мәндерін өңдеңіз.
Terraform көмегімен виртуалды желілерді жасау туралы толығырақ — Желілерді жасау практикалық нұсқаулығында.
-
vpn.tfфайлына VPN-қосылымының баптауларын көшіріңіз:resource "vkcs_vpnaas_service" "service" {router_id = vkcs_networking_router.router.id}resource "vkcs_vpnaas_ipsec_policy" "policy_1" {name = "ipsec-policy"}resource "vkcs_vpnaas_ike_policy" "policy_2" {name = "ike-policy"}resource "vkcs_vpnaas_endpoint_group" "group_1" {type = "cidr"endpoints = ["10.0.0.24/24", "10.0.0.25/24"]}resource "vkcs_vpnaas_endpoint_group" "group_2" {type = "subnet"endpoints = [ vkcs_networking_subnet.subnet.id ]}resource "vkcs_vpnaas_site_connection" "connection" {name = "connection"ikepolicy_id = vkcs_vpnaas_ike_policy.policy_2.idipsecpolicy_id = vkcs_vpnaas_ipsec_policy.policy_1.idvpnservice_id = vkcs_vpnaas_service.service.idpsk = "secret"peer_address = "192.168.10.1"peer_id = "192.168.10.1"local_ep_group_id = vkcs_vpnaas_endpoint_group.group_2.idpeer_ep_group_id = vkcs_vpnaas_endpoint_group.group_1.iddpd {action = "restart"timeout = 42interval = 21}depends_on = [vkcs_networking_router_interface.router_interface]}VPN-қосылымын қосу үшін келесі ресурстар пайдаланылады:
-
vkcs_vpnaas_service — VK Cloud ішіндегі VPN сервисін басқарады.
router_idпараметрін — маршрутизатордың ID мәнін қамтиды. Осы параметрдің мәнін өзгерту арқылы сіз жаңа сервис жасайсыз. Егер бар маршрутизаторды пайдалану қажет болса, деректер көзін пайдаланып оның ID мәнін (data.vkcs_networking_router.router.idнемесеdata.vkcs_dc_router.router.id) көрсетіңіз. -
vkcs_vpnaas_ipsec_policy — VK Cloud ішіндегі ресурс үшін IPSec-саясатын басқарады.
nameпараметрін — жасалатын саясаттың атауын қамтиды. Осы параметрдің мәнін өзгерту арқылы сіз бар саясаттың атауын өзгертесіз. -
vkcs_vpnaas_ike_policy — VK Cloud ішіндегі ресурс үшін IKE-саясатын басқарады.
nameпараметрін — жасалатын саясаттың атауын қамтиды. Осы параметрдің мәнін өзгерту арқылы сіз бар саясаттың атауын өзгертесіз. -
vkcs_vpnaas_endpoint_group — VK Cloud ішіндегі эндпоинттер тобын басқарады. Келесі параметрлерді қамтиды:
type— топтағы эндпоинттердің түрі.subnet,cidr,network,routerнемесеvlanмәндерін қабылдай алады. Осы параметрдің мәндерін өзгерту арқылы сіз жаңа топ жасайсыз.endpoints— эндпоинттер тобына қосылатын бір типтегі эндпоинттер тізімі. Тізім элементтерінің типіtypeпараметрімен анықталады.endpointsпараметрінің мәнін өзгерту арқылы сіз жаңа топ жасайсыз.
-
vkcs_vpnaas_site_connection — VK Cloud ішіндегі сайттың IPSec-қосылымы ресурсын басқарады. Келесі параметрлерді қамтиды:
-
name— қосылым атауы. Осы параметрдің мәнін өзгерту арқылы сіз бар қосылымның атауын өзгертесіз. -
ikepolicy_id— IKE-саясатының ID мәні. Осы параметрдің мәнін өзгерту арқылы сіз жаңа қосылым жасайсыз. -
ipsecpolicy_id— IPsec-саясатының ID мәні. Осы параметрдің мәнін өзгерту арқылы сіз жаңа қосылым жасайсыз. -
vpnservice_id— VPN сервисінің ID мәні. Осы параметрдің мәнін өзгерту арқылы сіз жаңа қосылым жасайсыз. -
psk— жария кілт.stringтипіндегі кез келген мәндерді қабылдайды. -
peer_address— peer-шлюздің FQDN немесе жария IP-адресі (IPv4 немесе IPv6). -
peer_id— аутентификациядан өту үшін peer-роутердің ID мәні.<АДРЕС_IPv4>,<АДРЕС_IPv6>,<EMAIL>,<KEY_ID>,<FQDN>типтерінің мәндерін қабылдай алады. Әдетте бұл параметрдің мәніpeer_addressпараметрінің мәнімен сәйкес келеді. Осы параметрдің мәнін өзгерту арқылы сіз бар қосылымның саясатын өзгертесіз. -
local_ep_group_id— жергілікті қосылымның жеке ішкі желілерін қамтитын эндпоинттер тобының ID мәні. Кері үйлесімділік режимі қосылмаған болса,peer_ep_group_idпараметрін көрсетуді талап етеді, ондаpeer_cidrsмәндері VPN сервисініңsubnet_idмәнімен бірге беріледі. Осы параметрдің мәнін өзгерту арқылы сіз бар қосылымды өзгертесіз. -
peer_ep_group_id—<IP-АДРЕС>/<ПРЕФИКС>форматындағы peer-қосылымының жеке CIDR-адрестерін қамтитын эндпоинттер тобының ID мәні. Кері үйлесімділік режимі қосылмаған болса,local_ep_group_idпараметрін көрсетуді талап етеді, ондаpeer_cidrsмәндері VPN сервисініңsubnet_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.
-
depends_on— VPN-қосылымы көрсетілген ресурстар жасалғаннан кейін іске қосылады.
-
-
-
Қосылымыңыз үшін баптау мәндерін өңдеңіз.
-
vpn.tfфайлы бар директорияға өтіңіз. -
Конфигурациялық файлдардың дұрыс екенін және қажетті өзгерістерді қамтитынын тексеріңіз:
terraform validate && terraform plan -
Өзгерістерді қолданыңыз:
terraform applyРастауды сұрағанда
yesенгізіңіз. -
Операцияның аяқталуын күтіңіз.
Желі мен инфрақұрылымның сәтті жасалғанына көз жеткізіңіз:
- VK Cloud жеке кабинетіне өтіңіз.
- Виртуалды желілер → VPN бөліміне өтіңіз. VPN-қосылымы жасалғанына және мысалда қосылған барлық ресурстарды қамтитынына көз жеткізіңіз.
Егер Terraform көмегімен жасалған ресурстар енді қажет болмаса, оларды жойыңыз:
-
Terraform конфигурация файлдары бар директорияға өтіңіз.
-
Команданы орындаңыз:
terraform destroyРастауды сұрағанда
yesенгізіңіз. -
Операцияның аяқталуын күтіңіз.