Mae gliniadur yn cysylltu â phen terfyn Client VPN, ac mae terraform apply yn dal i fethu ar adnodd llwybr. Fel arfer mae gan y ffurfweddiad fwy o CIDRau cyrchfan nag is-rwydweithiau cysylltiedig, ac mae'r bloc llwybr yn dewis targed ag mynegai. Mae hynny'n tybio bod y ddau gasgliad yn gyfochrog. Nid ydynt, ac mae'r methiant yn ymddangos adeg cymhwyso yn hytrach nag adeg adolygu.

Enwch y gwrthrych sy'n methu

Mae tri adnodd yn rhan o hyn ac mae pob un yn ateb cwestiwn gwahanol. Mae'r cysylltiad yn gosod rhyngwyneb rhwydwaith y pen terfyn mewn is-rwydwaith. Mae'r llwybr yn dweud pa ragddodiad cyrchfan sy'n cael ei ddanfon i is-rwydwaith darged. Mae'r rheol awdurdodi yn dweud pa ddefnyddwyr all gyrraedd pa ragddodiad. Mae llwybr sy'n pwyntio at is-rwydwaith na chafodd ei gysylltu erioed yn methu hyd yn oed pan fo'r ddau wrthrych yn bodoli, oherwydd rhaid i'r targed berthyn i'r pen terfyn hwn.

Rhestrwch y cysylltiadau yn gyntaf: aws ec2 describe-client-vpn-target-networks --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdef0.

Cofiwch lwybr lleol y VPC

Mae'r cysylltiad cyntaf yn ychwanegu llwybr lleol ar gyfer y VPC cyfan, felly mae pob is-rwydwaith yn y VPC hwnnw eisoes yn gyrraeddadwy heb adnodd llwybr. Mae llwybrau ychwanegol ar gyfer VPCau cymar, atodiadau Transit Gateway, a rhagddodiadau on-premises nad yw'r VPC yn berchen arnynt. Dyna pam y gall pen terfyn â thri chysylltiad yn gwbl gyfreithlon gario saith cofnod cyrchfan.

Cyfrwch y cyrchfannau sy'n syrthio y tu allan i'r VPC cyn ychwanegu llwybrau. Os yw'r cyfrif hwnnw'n llai na'r rhestr CIDR, mae'r rhestr yn disgrifio is-rwydweithiau nad oes angen llwybr o gwbl arnynt.

Disodlwch y mynegai â map

Mae lapio'r mynegai mewn gweithredydd modwlo yn distewi'r gwall ac yn cadw'r camfodelu. Nid yw cyrchfan na ellir ei chyrraedd drwy'r targed a ddewiswyd yn cario traffig o hyd, waeth pa mor lân y cymhwysir y cynllun. Storiwch y berthynas yn lle hynny, a gadewch i Terraform ei gwirio cyn creu unrhyw beth. Mae'r bloc isod yn ddarluniadol ac yn defnyddio dadleuon llwybr y pen terfyn gan y darparwr.

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

Gyda'r map wrth ymyl y rhestr gysylltu, mae ychwanegu cyrchfan yn gorfodi penderfyniad ynghylch pa is-rwydwaith sy'n ei chario. Dyna'r sgwrs roedd y mynegai yn ei chuddio.

Mae methiant gwahanol yn cynhyrchu gwerthoedd diystyr yn lle gwall mynegai. Mae trosglwyddo cystrawen lefel isel lle disgwylir rhyngwyneb lefel uwch yn gadael y meysydd y mae'r API yn eu darllen heb eu llenwi, ac mae'r CIDR sy'n deillio o hynny yn andefnyddiadwy. Mae Terraform yn dangos yr un siâp pan ddaw llinyn i le y disgwylir gwrthrych. Gwiriwch sgema'r darparwr ar gyfer y math o ddadl.

Profwch hyn o glient

Rhedwch terraform validate a chynllun yn erbyn cyflwr go iawn cyn cymhwyso. Wedi hynny, cymharwch restriad rhwydwaith targed y pen terfyn â'r map yn lle ymddiried mewn apply llwyddiannus.

Y prawf derbyn yw client cysylltiedig yn cyrraedd pob rhagddodiad a fwriadwyd.

Y rheol awdurdodi yw'r man lle mae llawer o drefniadau yn stopio'n gynnar. Mae wedi'i chyfyngu i CIDR cyrchfan a grŵp, ac mae llwybr heb awdurdodiad cyfatebol yn cynhyrchu client cysylltiedig na all gyrraedd y rhagddodiad. Gwiriwch y ddau wrthrych ar gyfer pob rhagddodiad, oherwydd mae apply sy'n creu'r llwybr ac yn anghofio'r rheol yn edrych yn gyflawn. Profwch gydag un defnyddiwr y tu mewn i'r grŵp ac un y tu allan iddo.

Pan fydd un rhagddodiad yn methu, cymharwch ei gofnod llwybr â'r rheol awdurdodi. Mae awdurdodiad coll a llwybr coll yn edrych yn debyg yng nghofnod y client ac yn cael eu trwsio mewn adnoddau gwahanol.

Erthyglau cysylltiedig