GCP Classic VPN Terraform: padariet tuneli maršrutētu
Classic VPN etiķete nenosaka uzvedību. Maršrutēts nozīmē lokālu selektoru 0.0.0.0/0, atbilstošus attālinātos selektorus un skaidru maršrutu.
Plāns tiek lietots tīri, tunelis paceļas, un konsole to sauc par politiku balstītu. Satiksme joprojām neiet, un maršrutētā slēdža meklēšana Terraform resursā nekur nenoved, jo tāda lauka nav. Classic VPN maršrutēta uzvedība nav režīms, ko izvēlaties. To iegūst, kad lokālais satiksmes selektors ir 0.0.0.0/0, attālinātie selektori uzskaita tīklus, kurus patiešām vēlaties, un maršruts norāda uz tuneli. Trīs lietas, un etiķete seko.
Mīts: tuneļa režīma lauks
Konsoles etiķete atspoguļo to, ko API redz selektoros. Nekas resursā nesaka maršrutēts, tāpēc nav ko iestatīt uz patiess.
Šī lauka meklēšana apēd problēmas pirmo stundu, bet selektoru vērtību lasīšana aizņem pēdējās piecas minūtes.
Ko šeit nozīmē maršrutēts
Google Classic VPN maršrutētos tuneļus dokumentē kā uz politiku balstītus tuneļus, kuru lokālais selektors ir 0.0.0.0/0. Tiek nosaukti tikai attālinātie diapazoni, un lokālā puse tiek uzskatīta par jebkuru adresi. Tāpēc marķieris jūsu konfigurācijā ir vērtība, nevis režīms. Ierakstiet abus selektorus skaidri un izlasiet tos plāna izvadē:
local_traffic_selector = ["0.0.0.0/0"]
remote_traffic_selector = ["10.20.0.0/16"]
Partnera prefikss šajā fragmentā ir ilustratīvs; forma ir tas, kas svarīgi.
Maršruts ir atsevišķs objekts
Tuneļa objekts neinstalē maršrutu. Paketes var atbilst tuneļa politikai un tomēr nekur nevar aiziet, jo nākamo lēcienu nosaka VPC maršrutēšanas tabula. Maršrutam vajag galamērķa diapazonu, tīklu, tuneli kā nākamo lēcienu un prioritāti, kas uzvar pret jebko platāku. Ja to aizmirst, iegūst tuneli, kas ziņo par izveidotu savienojumu, un pārbaudi, kas nekad neiziet no VPC.
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
}
Izveidojiet maršrutu tajā pašā modulī kā tuneli, lai pārskatā abi neizkliedētos.
Atspoguļojiet selektorus partnera pusē
Attālinātā ierīce jākonfigurē spoguļattēlā: tās lokālais diapazons ir jūsu attālinātais selektors, un tās attālinātajam diapazonam jāaptver GCP apakštīkli, kurus plānojat izmantot. Ja kāda puse sašaurinās, fāze 2 neizdodas, lai gan fāze 1 izdodas. Šī ir visizplatītākā konfigurācijas forma, kas konsolē izskatās pareiza un nenes satiksmi.
Mainīšanas pārskata laikā izdrukājiet abu pušu selektorus blakus.
Sadaliet statisko adresi divos lietojumos
Rezervētās adreses un uz to atsauces tuneli izveide vienā lietojumā ir zināms nestabilitātes avots, jo adresei jābūt pirms pāradresācijas noteikums to var izmantot. Vispirms lietojiet tikai adreses resursu, pēc tam pievienojiet vārteju, pāradresācijas noteikumus un tuneli un lietojiet vēlreiz. Terraform otrajā palaišanā nolasa esošo adresi no stāvokļa un to izmanto atkārtoti. Ja to izlaiž, tunelis katrā lietošanā var saņemt jaunu publisku adresi, kas katru reizi salauž partnera konfigurāciju.
Divi lietojumi tagad ir lētāki par partnera maiņu katrā izlaidumā.
Pārbaudiet sarunas, nevis etiķeti
Pēc lietošanas pārbaudiet trīs atsevišķus faktus: tunelis ziņo par izveidotu savienojumu, maršruts pastāv ar paredzēto nākamo lēcienu, un partneris ziņo, ka darbojas gan fāze 1, gan fāze 2.
Tunelis ir augšā, bet fāze 2 ir lejā, kas nozīmē, ka abas puses nepiekrīt selektoriem:
- Viena puse uzskaita apakštīklu, ko otra neuzskaita.
- Viena puse izmanto apkopojumu, ko otra sašaurināja.
- Maršruts pastāv, bet norāda uz citu tuneli.
Classic VPN ir viens tunelis ar zemāku SLA nekā HA VPN, un HA VPN izmanto divas saskarnes, divus tuneļus un BGP ar citiem resursu tipiem. Klasiska piemēra kopēšana HA konfigurācijā un cerība, ka selektoru lauki uzvedīsies tāpat, ir atsevišķa kļūda, no kuras vērts izvairīties. Paši tuneļa lauki ir dokumentēti google_compute_vpn_tunnel uzziņā.