Terraform Client VPN маршруттары: ички тармактардан көп CIDR менен
Байланыштыруу, маршрут жана авторизация өзүнчө объектилер. Кыска ички тармак тизмесин индекстөөнүн ордуна ар бир багыттагы CIDR-ды байланышкан ички тармакка дал келтириңиз.
Ноутбук Client VPN акыркы чекитине туташат, бирок terraform apply маршрут ресурсунда дагы эле иштебейт. Конфигурацияда адатта байланышкан ички тармактардан көп багыттагы CIDR болот, ал эми маршрут блогу бутага индекстен тандайт. Бул эки топтомдун параллель экенин болжолдойт. Алар параллель эмес, жана ката карап чыгуу учурунда эмес, колдонуу учурунда пайда болот.
Иштебей калган объектини атаңыз
Үч ресурс катышат жана ар бири башка суроого жооп берет. Байланыштыруу акыркы чекиттин тармактык интерфейсин ички тармакка жайгаштырат. Маршрут кайсы багыттагы префикстин бута ички тармагына жеткирилерин айтат. Авторизация эрежеси кайсы колдонуучулар кайсы префикске жете аларын айтат. Эч качан байланыштырылбаган ички тармакка көрсөткөн маршрут эки объект тең болсо да иштебейт, анткени бута ушул акыркы чекитке таандык болушу керек.
Алгач байланыштарды тизмектеңиз: aws ec2 describe-client-vpn-target-networks --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdef0.
VPC-нын жергиликтүү маршрутун эстеп калыңыз
Биринчи байланыш бүт VPC үчүн жергиликтүү маршрут кошот, ошондуктан ал VPC-дагы ар бир ички тармак маршрут ресурсусуз эле жеткиликтүү. Кошумча маршруттар теңдеш VPC-лар, Transit Gateway туташуулары жана VPC-га таандык эмес on-premises префикстери үчүн бар. Ошондуктан үч байланышы бар акыркы чекит жети багыт жазуусун мыйзамдуу түрдө алып жүрө алат.
Маршруттарды кошуудан мурун VPC-дан тышкары калган багыттарды санаңыз. Эгер бул сан CIDR тизмесинен аз болсо, тизме такыр маршрут талап кылбаган ички тармактарды сүрөттөйт.
Индексти карта менен алмаштырыңыз
Индексти модуль операторуна ороп, катаны тынчытат жана моделдөө катасын сактап калат. Тандалган бута аркылуу жетүү мүмкүн болбогон багыт, план канчалык таза колдонулса да, эч кандай трафик ташыбайт. Анын ордуна мамилени сактаңыз жана бир нерсе жаралганга чейин Terraform аны текшерсин. Төмөнкү блок иллюстрациялык жана провайдердин акыркы чекит маршрутунун аргументтерин колдонот.
variable "client_vpn_destinations" {
description = "Destination CIDR mapped to an associated subnet key"
type = map(string)
}
resource "aws_ec2_client_vpn_route" "this" {
for_each = var.client_vpn_destinations
client_vpn_endpoint_id = aws_ec2_client_vpn_endpoint.this.id
destination_cidr_block = each.key
target_vpc_subnet_id = aws_subnet.private[each.value].id
lifecycle {
precondition {
condition = contains(keys(aws_subnet.private), each.value)
error_message = "Route target must be a subnet key in the associated map."
}
}
}
Карта байланыш тизмесинин жанында турганда, багыт кошуу аны кайсы ички тармак ташырын чечүүгө мажбурлайт. Бул индекстин жашырган сүйлөшүүсү.
Башка ката индексийн катасынын ордуна маанисиз маанилерди чыгарат. Жогорку деңгээлдеги интерфейс күтүлгөн жерге төмөнкү деңгээлдеги курулманы берүү API окуган талааларды толтурулбаган калтырат, ал эми алынган CIDR жараксыз болот. Terraform объект күтүлгөн жерге сап келгенде ушундай эле форманы көрсөтөт. Аргументтин түрү үчүн провайдердин схемасын текшериңиз.
Аны кардардан далилдеңиз
Колдонуудан мурун terraform validate жана чыныгы абалга каршы планды иштетиңиз. Андан кийин ийгиликтүү apply-га ишенүүнүн ордуна акыркы чекиттин бута тармактарынын тизмесин карта менен салыштырыңыз.
Кабыл алуу тести — ар бир көздөлгөн префикске жеткен туташкан кардар.
Авторизация эрежеси көп конфигурациялар эрте токтогон жер. Ал багыттагы CIDR жана топ менен чектелген, ал эми дал келген авторизациясыз маршрут префикске жете албаган туташкан кардарды жаратат. Ар бир префикс үчүн эки объектини тең текшериңиз, анткени маршрутты түзүп, эрежени унутуп койгон apply толук көрүнөт. Топтун ичиндеги бир жана андан тышкары бир колдонуучу менен сынаңыз.
Бир префикс иштебей калса, анын маршрут жазуусун авторизация эрежеси менен салыштырыңыз. Жок авторизация жана жок маршрут кардар журналында окшош көрүнөт жана ар кайсы ресурстарда оңдолот.