Reja toza qo'llanadi, tunnel ko'tariladi va konsol uni siyosatga asoslangan deb ataydi. Trafik baribir o'tmaydi, Terraform resursida marshrutga asoslangan kalitni izlash esa hech qayerga olib bormaydi, chunki bunday maydon yo'q. Classic VPN'da marshrutga asoslangan xatti-harakat siz tanlaydigan rejim emas. Bu mahalliy trafik selektori 0.0.0.0/0 bo'lganda, masofaviy selektorlar haqiqatan kerakli tarmoqlarni sanab o'tganda va marshrut tunnelga ishora qilganda olinadi. Uch narsa, va yorliq ularning ortidan keladi.

Afsona: tunnel rejimi maydoni

Konsol yorlig'i API selektorlarda ko'rgan narsani aks ettiradi. Resursda hech narsa marshrutga asoslangan demaydi, shuning uchun haqiqiy qiymatga qo'yadigan narsa yo'q.

O'sha maydonni izlash muammoning birinchi soatini yeydi, selektor qiymatlarini o'qish esa oxirgi besh daqiqani oladi.

Bu yerda marshrutga asoslangan nima demak

Google Classic VPN'ning marshrutga asoslangan tunnellarini mahalliy selektori 0.0.0.0/0 bo'lgan siyosatga asoslangan tunnellar deb hujjatlashtiradi. Faqat masofaviy diapazonlar nomlanadi, mahalliy tomon esa har qanday manzil sifatida qaraladi. Shuning uchun konfiguratsiyangizdagi belgi rejim emas, qiymatdir. Ikkala selektorni ham aniq yozing va ularni reja chiqishida o'qing:

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

O'sha parchadagi hamkor prefiksi misol uchun; shakl muhim.

Marshrut alohida obyekt

Tunnel obyekti marshrut o'rnatmaydi. Paketlar tunnel siyosatiga mos kelishi va baribir boradigan joyi bo'lmasligi mumkin, chunki keyingi sakrashni VPC marshrutlash jadvali belgilaydi. Marshrutga manzil diapazoni, tarmoq, keyingi sakrash sifatida tunnel va har qanday kengroq narsadan ustun turadigan ustuvorlik kerak. Buni unutsangiz, ulanish o'rnatilganini xabar qiladigan tunnel va VPC'dan hech qachon chiqmaydigan tekshiruv qoladi.

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
}

Marshrutni tunnel bilan bir modulda yarating, ikkalasi ko'rikda ajralib ketmasin.

Selektorlarni hamkorda aks ettiring

Masofaviy qurilma oyna tasviri bilan sozlanishi kerak: uning mahalliy diapazoni sizning masofaviy selektoringiz, masofaviy diapazoni esa foydalanishni kutayotgan GCP quyi tarmoqlarini qamrab olishi kerak. Har qanday tomon toralaytirilsa, 1-faza muvaffaqiyatli bo'lsa ham 2-faza muvaffaqiyatsiz bo'ladi. Konsolda to'g'ri ko'rinadigan, ammo trafik tashimaydigan konfiguratsiyaning eng keng tarqalgan shakli shu.

O'zgartirish ko'rigi paytida ikkala tomon selektorlarini yonma-yon chop eting.

Statik manzilni ikki qo'llashga bo'ling

Zahiralangan manzilni va unga havola qiluvchi tunnelni bitta qo'llashda yaratish beqarorlikning ma'lum manbasidir, chunki manzil yo'naltirish qoidasi undan foydalanishidan oldin mavjud bo'lishi kerak. Avval faqat manzil resursini qo'llang, keyin shlyuz, yo'naltirish qoidalari va tunnelni qo'shib yana qo'llang. Terraform ikkinchi ishga tushirishda mavjud manzilni holatdan o'qiydi va qayta ishlatadi. Buni o'tkazib yuborsangiz, tunnel har qo'llashda yangi ommaviy manzil olishi mumkin, bu esa har safar hamkor konfiguratsiyasini buzadi.

Hozir ikki qo'llash har nashrda hamkorni o'zgartirishdan arzon.

Yorliqni emas, muzokarani tekshiring

Qo'llagandan so'ng uchta alohida faktni tekshiring: tunnel ulanish o'rnatilganini xabar qiladi, marshrut mo'ljallangan keyingi sakrash bilan mavjud, hamkor esa 1-faza va 2-faza ikkalasi ham ishlayotganini xabar qiladi.

Tunnel ishlab turganda 2-faza pastda bo'lsa, ikki tomon selektorlar bo'yicha kelishmayotganini bildiradi:

  • Bir tomon ikkinchisi sanamagan quyi tarmoqni sanaydi.
  • Bir tomon ikkinchisi toraytirgan agregatdan foydalanadi.
  • Marshrut mavjud, lekin boshqa tunnelga ishora qiladi.

Classic VPN — HA VPN'dan pastroq SLA'ga ega bitta tunnel, HA VPN esa ikki interfeys, ikki tunnel va boshqa resurs turlariga ega BGP ishlatadi. Klassik misolni HA konfiguratsiyasiga ko'chirib, selektor maydonlari xuddi shunday ishlaydi deb kutish — oldini olish kerak bo'lgan alohida xato. Tunnel maydonlarining o'zi esa quyidagida hujjatlashtirilgan: google_compute_vpn_tunnel ma'lumotnomasi.

O'xshash maqolalar