Noutbuk Client VPN yakuniy nuqtasiga ulanadi, ammo terraform apply baribir yo'nalish resursida muvaffaqiyatsiz tugaydi. Konfiguratsiyada odatda bog'langan subnetlardan ko'proq manzil CIDR bo'ladi va yo'nalish bloki nishonni indeks bilan tanlaydi. Bu ikki to'plam parallel deb hisoblaydi. Ular parallel emas va xatolik ko'rib chiqishda emas, qo'llash paytida namoyon bo'ladi.

Muvaffaqiyatsiz bo'lgan obyektni nomlang

Uchta resurs ishtirok etadi va har biri boshqa savolga javob beradi. Bog'lash yakuniy nuqtaning tarmoq interfeysini subnetga joylashtiradi. Yo'nalish qaysi manzil prefiksi nishon subnetga yetkazilishini aytadi. Avtorizatsiya qoidasi qaysi foydalanuvchilar qaysi prefiksga yeta olishini aytadi. Hech qachon bog'lanmagan subnetga ishora qiluvchi yo'nalish ikkala obyekt mavjud bo'lsa ham muvaffaqiyatsiz bo'ladi, chunki nishon aynan shu yakuniy nuqtaga tegishli bo'lishi kerak.

Avval bog'lashlarni sanab o'ting: aws ec2 describe-client-vpn-target-networks --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdef0.

VPC ning mahalliy yo'nalishini eslab qoling

Birinchi bog'lash butun VPC uchun mahalliy yo'nalish qo'shadi, shuning uchun o'sha VPC dagi har bir subnet yo'nalish resursisiz ham yetib borish mumkin. Qo'shimcha yo'nalishlar peer VPC, Transit Gateway ulanishlari va VPC ga tegishli bo'lmagan on-premises prefikslar uchun mavjud. Shu sababli uchta bog'lashga ega yakuniy nuqta qonuniy ravishda yettita manzil yozuvini ko'tara oladi.

Yo'nalish qo'shishdan oldin VPC tashqarisida qoladigan manzillarni sanang. Agar bu son CIDR ro'yxatidan kichik bo'lsa, ro'yxat umuman yo'nalish kerak bo'lmagan subnetlarni tavsiflaydi.

Indeksni xarita bilan almashtiring

Indeksni modul operatoriga o'rash xatoni jim qiladi va modellashtirish xatosini saqlab qoladi. Tanlangan nishon orqali yetib bo'lmaydigan manzil, reja qanchalik toza qo'llanilsa ham, baribir hech qanday trafik ko'tarmaydi. Buning o'rniga munosabatni saqlang va biror narsa yaratishdan oldin Terraform uni tekshirsin. Quyidagi blok namuna bo'lib, provayderning yakuniy nuqta yo'nalish argumentlaridan foydalanadi.

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."
    }
  }
}

Xarita bog'lashlar ro'yxati yonida bo'lsa, manzil qo'shish uni qaysi subnet ko'tarishi haqida qaror qabul qilishga majbur qiladi. Bu indeks yashirgan suhbat.

Boshqa nosozlik indeks xatosi o'rniga ma'nosiz qiymatlar beradi. Yuqori darajadagi interfeys kutilgan joyga past darajadagi konstruksiyani uzatish API o'qiydigan maydonlarni to'ldirilmagan qoldiradi va natijadagi CIDR yaroqsiz bo'ladi. Obyekt kutilgan joyga satr kelganda Terraform xuddi shu shaklni ko'rsatadi. Argument turi uchun provayder sxemasini tekshiring.

Buni klientdan isbotlang

Qo'llashdan oldin terraform validate va haqiqiy holatga qarshi rejani ishga tushiring. Keyin muvaffaqiyatli apply ga ishonish o'rniga yakuniy nuqtaning nishon tarmoqlar ro'yxatini xarita bilan solishtiring.

Qabul sinovi — har bir mo'ljallangan prefiksga yetadigan ulangan klient.

Avtorizatsiya qoidasi ko'plab sozlamalar erta to'xtaydigan joy. U manzil CIDR va guruh bilan cheklangan, mos avtorizatsiyasiz yo'nalish esa prefiksga yeta olmaydigan ulangan klient hosil qiladi. Har bir prefiks uchun ikkala obyektni tekshiring, chunki yo'nalishni yaratib qoidani unutgan apply to'liq ko'rinadi. Guruh ichida bitta va tashqarisida bitta foydalanuvchi bilan sinab ko'ring.

Bitta prefiks muvaffaqiyatsiz bo'lsa, uning yo'nalish yozuvini avtorizatsiya qoidasi bilan solishtiring. Yo'q avtorizatsiya va yo'q yo'nalish klient jurnalida o'xshash ko'rinadi va turli resurslarda tuzatiladi.

O'xshash maqolalar