یو لیپ ټاپ د 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 نښلونو او on-premises مخکښانو لپاره شته چې VPC یې مالک نه دی۔ له همدې امله درې اړیکې لرونکې پای نقطه کولای شي په قانوني ډول اووه هدف یادښتونه وړي۔

د لارو د زیاتولو دمخه هغه هدفونه وشمئ چې د 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 چې لاره جوړوي او قاعده هېروي بشپړ ښکاري۔ د ګروپ دننه یو او بهر یو کاروونکي سره ازموینه وکړئ۔

کله چې یو مخکښ ناکام شي، د هغې لارې یادښت د اجازې قاعدې سره پرتله کړئ۔ نه شتون لرونکې اجازه او نه شتون لرونکې لاره په کلاینټ لاګ کې ورته ښکاري او په بېلو سرچینو کې سمېږي۔

اړوندې مقالې