Die plan pas skoon aan, die tonnel kom op, en die konsole noem dit beleid-gebaseerd. Verkeer gaan steeds nie deur nie, en die soektog na 'n roete-gebaseerde skakelaar in die Terraform-hulpbron lei nêrens, want daar bestaan geen sulke veld nie. In Classic VPN is roete-gebaseerde gedrag nie 'n modus wat jy kies nie. Dit is wat jy kry wanneer die plaaslike verkeerselektor 0.0.0.0/0, die afgeleë selektore die netwerke lys wat jy werklik wil hê, en 'n roete na die tonnel wys. Drie dinge, en die etiket volg.

Die mite: 'n tonnelmodusveld

Die konsole-etiket weerspieël wat die API in die selektore sien. Niks in die hulpbron sê roete-gebaseerd nie, so daar is niks om op waar te stel nie.

Om na daardie veld te soek, vat die eerste uur van die probleem, terwyl die lees van die selektorwaardes die laaste vyf minute vat.

Wat roete-gebaseerd hier beteken

Google dokumenteer Classic VPN se roete-gebaseerde tonnels as beleid-gebaseerde tonnels waarvan die plaaslike selektor 0.0.0.0/0. Slegs die afgeleë reekse word genoem, en die plaaslike kant word as enige adres behandel. Dit is waarom die merker in jou konfigurasie 'n waarde eerder as 'n modus is. Skryf albei selektore eksplisiet en lees hulle in die plan-uitset:

local_traffic_selector  = ["0.0.0.0/0"]
remote_traffic_selector = ["10.20.0.0/16"]

Die eweknie-voorvoegsel in daardie stukkie is illustratief; die vorm is die deel wat saak maak.

Die roete is 'n aparte objek

’n Tonnelobjek installeer nie 'n roete nie. Pakkette kan by die tonnel se beleid pas en steeds nêrens hê om heen te gaan nie, want die VPC-roetertabel besluit die volgende sprong. Die roete het die bestemmingsreeks, die netwerk, die tonnel as volgende sprong en 'n prioriteit nodig wat teen enigiets breër wen. Om dit te vergeet, lewer 'n tonnel wat as gevestig rapporteer en 'n ping wat nooit die VPC verlaat nie.

resource "google_compute_route" "office" {
  name                = "office-via-vpn"
  dest_range          = "10.20.0.0/16"
  network             = google_compute_network.vpc.name
  next_hop_vpn_tunnel = google_compute_vpn_tunnel.to_office.id
  priority            = 1000
}

Skep die roete in dieselfde module as die tonnel, sodat die twee nie in die nasien van mekaar kan wegdryf nie.

Spieël die selektore op die eweknie

Die afgeleë toestel moet met die spieëlbeeld opgestel word: sy plaaslike reeks is jou afgeleë selektor, en sy afgeleë reeks moet die GCP-subnette dek wat jy verwag om te gebruik. As enige kant vernou, misluk fase 2 selfs al slaag fase 1. Dit is die mees algemene vorm van 'n konfigurasie wat reg lyk in die konsole en geen verkeer dra nie.

Druk albei kante se selektore langs mekaar tydens die wysigingsoorsig.

Split die statiese adres in twee toepassings

Om die gereserveerde adres en die tonnel wat daarna verwys in een toepassing te skep, is 'n bekende bron van herwerk, want die adres moet bestaan voordat die aanstuuringsreël dit kan gebruik. Pas eers die adreshulpbron alleen toe, voeg dan die gateway, aanstuuringsreëls en tonnel by en pas weer toe. Terraform lees die bestaande adres uit die staat op die tweede loop en hergebruik dit. Slaan dit oor, en die tonnel kan op elke toepassing 'n nuwe openbare adres kry, wat die eweknie-konfigurasie elke keer breek.

Twee toepassings nou is goedkoper as 'n eweknie-verandering by elke vrystelling.

Verifieer onderhandeling, nie die etiket nie

Kontroleer ná die toepassing drie afsonderlike feite: die tonnel rapporteer gevestig, die roete bestaan met die beoogde volgende sprong, en die eweknie rapporteer beide fase 1 en fase 2 op.

’n Tonnel wat op is met fase 2 af beteken die twee kante stem nie oor selektore saam nie:

  • Een kant lys 'n subnet wat die ander nie het nie.
  • Een kant gebruik 'n samevatting wat die ander vernou het.
  • Die roete bestaan, maar wys na 'n ander tonnel.

Classic VPN is 'n enkele tonnel met 'n laer SLA as HA VPN, en HA VPN gebruik twee koppelvlakke, twee tonnels en BGP met ander hulpbronsoorte. Om 'n klassieke voorbeeld in 'n HA-konfigurasie te kopieer en te verwag dat die selektorvelde dieselfde sal optree, is 'n aparte fout wat die moeite werd is om te vermy. Die tonnelvelde self word gedokumenteer in die google_compute_vpn_tunnel-verwysing.

Verwante artikels