Terraform Client VPN -reitit, joissa on enemmän CIDR-osoitteita kuin aliverkkoja
Yhdistäminen, reitti ja valtuutus ovat erillisiä objekteja. Yhdistä jokainen kohde-CIDR liitettyyn aliverkkoon sen sijaan, että indeksoisit lyhyemmän aliverkkoluettelon.
Kannettava tietokone yhdistää Client VPN -päätepisteeseen, ja terraform apply epäonnistuu silti reittiresurssissa. Määrityksessä on yleensä enemmän kohde-CIDR-osoitteita kuin liitettyjä aliverkkoja, ja reittilohko valitsee kohteen indeksillä. Se olettaa, että kaksi kokoelmaa ovat rinnakkaisia. Ne eivät ole, ja virhe ilmenee sovellushetkellä eikä katselmoinnissa.
Nimeä objekti, joka epäonnistuu
Kolme resurssia on mukana ja jokainen vastaa eri kysymykseen. Yhdistäminen sijoittaa päätepisteen verkkoliitännän aliverkkoon. Reitti kertoo, mikä kohde-etuliite toimitetaan kohdealiverkkoon. Valtuutussääntö kertoo, mitkä käyttäjät voivat saavuttaa minkä etuliitteen. Reitti, joka osoittaa aliverkkoon, jota ei koskaan yhdistetty, epäonnistuu vaikka molemmat objektit ovat olemassa, koska kohteen on kuuluttava tähän päätepisteeseen.
Listaa yhdistämiset ensin: aws ec2 describe-client-vpn-target-networks --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdef0.
Muista VPC:n paikallinen reitti
Ensimmäinen yhdistäminen lisää paikallisen reitin koko VPC:lle, joten jokainen aliverkko kyseisessä VPC:ssä on jo saavutettavissa ilman reittiresurssia. Lisäreittejä on vertais-VPC:ille, Transit Gateway -liitännöille ja on-premises-etuliitteille, joita VPC ei omista. Siksi päätepiste, jossa on kolme yhdistämistä, voi laillisesti kantaa seitsemän kohdemerkintää.
Laske VPC:n ulkopuolelle jäävät kohteet ennen reittien lisäämistä. Jos määrä on pienempi kuin CIDR-luettelo, luettelo kuvaa aliverkkoja, jotka eivät tarvitse reittiä lainkaan.
Korvaa indeksi kartalla
Indeksin kääriminen modulo-operaattoriin vaientaa virheen ja säilyttää mallinnusvirheen. Kohde, johon valitun kohteen kautta ei pääse, ei edelleenkään kuljeta liikennettä, riippumatta siitä, kuinka puhtaasti suunnitelma toteutetaan. Tallenna sen sijaan suhde ja anna Terraformin tarkistaa se ennen kuin mitään luodaan. Alla oleva lohko on havainnollistava ja käyttää tarjoajan päätepisteen reittimääritteitä.
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."
}
}
}
Kun kartta on yhdistämisluettelon vieressä, kohteen lisääminen pakottaa päättämään, mikä aliverkko sen kantaa. Se on keskustelu, jonka indeksi salasi.
Toisenlainen vika tuottaa merkityksettömiä arvoja indeksivirheen sijaan. Matalan tason rakenteen välittäminen sinne, missä odotetaan korkeamman tason rajapintaa, jättää API:n lukemat kentät täyttämättä, ja tuloksena oleva CIDR on käyttökelvoton. Terraform näyttää saman muodon, kun merkkijono saapuu sinne, missä odotetaan objektia. Tarkista tarjoajan skeema argumentin tyypille.
Todista se asiakkaasta
Suorita terraform validate ja suunnitelma todellista tilaa vasten ennen soveltamista. Vertaa sen jälkeen päätepisteen kohdeverkkoluetteloa karttaan sen sijaan, että luottaisit onnistuneeseen apply-komentoon.
Hyväksymistesti on yhdistetty asiakas, joka saavuttaa jokaisen aiotun etuliitteen.
Valtuutussääntö on kohta, jossa monet asetukset pysähtyvät aikaisin. Se on rajattu kohde-CIDR-osoitteeseen ja ryhmään, ja reitti ilman vastaavaa valtuutusta tuottaa yhdistetyn asiakkaan, joka ei saavuta etuliitettä. Tarkista molemmat objektit jokaisen etuliitteen osalta, koska apply, joka luo reitin ja unohtaa säännön, näyttää valmiilta. Testaa yhdellä ryhmän sisäisellä ja yhdellä sen ulkopuolisella käyttäjällä.
Kun yksi etuliite epäonnistuu, vertaa sen reittimerkintää valtuutussääntöön. Puuttuva valtuutus ja puuttuva reitti näyttävät samankaltaisilta asiakaslokissa ja korjataan eri resursseissa.