GCP Classic VPN dalam Terraform: jadikan terowong berasaskan laluan
Dalam Classic VPN label tidak menentukan tingkah laku. Berasaskan laluan ialah pemilih setempat 0.0.0.0/0, pemilih jauh yang sepadan dan laluan yang eksplisit.
Pelan digunakan dengan bersih, terowong naik, dan konsol memanggilnya berasaskan dasar. Trafik masih tidak melalui, dan carian suis berasaskan laluan dalam sumber Terraform tidak menemui apa-apa kerana medan itu tidak wujud. Dalam Classic VPN, tingkah laku berasaskan laluan bukan mod yang anda pilih. Ia adalah apa yang anda dapat apabila pemilih trafik setempat ialah 0.0.0.0/0, pemilih jauh menyenaraikan rangkaian yang benar-benar anda mahu, dan laluan menunjuk ke terowong. Tiga perkara, dan label mengikut.
Mitos: medan mod terowong
Label konsol mencerminkan apa yang API lihat dalam pemilih. Tiada apa pun dalam sumber yang mengatakan berasaskan laluan, jadi tiada apa untuk ditetapkan kepada benar.
Mencari medan itu menghabiskan jam pertama masalah, manakala membaca nilai pemilih mengambil lima minit terakhir.
Apa maksud berasaskan laluan di sini
Google mendokumenkan terowong berasaskan laluan Classic VPN sebagai terowong berasaskan dasar yang pemilih setempatnya 0.0.0.0/0. Hanya julat jauh dinamakan, dan bahagian setempat dianggap sebagai sebarang alamat. Itulah sebabnya penanda dalam konfigurasi anda ialah nilai, bukan mod. Tulis kedua-dua pemilih secara eksplisit dan bacanya dalam output pelan:
local_traffic_selector = ["0.0.0.0/0"]
remote_traffic_selector = ["10.20.0.0/16"]
Awalan rakan dalam petikan itu adalah ilustrasi; bentuknya yang penting.
Laluan ialah objek berasingan
Objek terowong tidak memasang laluan. Paket boleh sepadan dengan dasar terowong dan masih tiada tempat untuk pergi, kerana jadual penghalaan VPC menentukan hop seterusnya. Laluan memerlukan julat destinasi, rangkaian, terowong sebagai hop seterusnya dan keutamaan yang mengalahkan apa-apa yang lebih luas. Jika terlupa, anda mendapat terowong yang melaporkan bersambung dan ping yang tidak pernah keluar dari 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
}
Cipta laluan dalam modul yang sama dengan terowong, supaya kedua-duanya tidak terpisah semasa semakan.
Cerminkan pemilih pada rakan
Peranti jauh mesti dikonfigurasikan dengan imej cermin: julat setempatnya ialah pemilih jauh anda, dan julat jauhnya mesti meliputi subrangkaian GCP yang anda jangka akan gunakan. Jika mana-mana pihak menyempit, fasa 2 gagal walaupun fasa 1 berjaya. Inilah bentuk paling biasa bagi konfigurasi yang kelihatan betul dalam konsol dan tidak membawa trafik.
Cetak pemilih kedua-dua pihak bersebelahan semasa semakan perubahan.
Bahagikan alamat statik kepada dua aplikasi
Mencipta alamat terpelihara dan terowong yang merujuknya dalam satu aplikasi ialah sumber ketidakstabilan yang diketahui, kerana alamat mesti wujud sebelum peraturan pemajuan boleh menggunakannya. Gunakan dahulu hanya sumber alamat, kemudian tambah gerbang, peraturan pemajuan dan terowong lalu gunakan semula. Terraform membaca alamat sedia ada daripada keadaan pada larian kedua dan menggunakannya semula. Jika dilangkau, terowong boleh menerima alamat awam baharu pada setiap aplikasi, yang memecahkan konfigurasi rakan setiap kali.
Dua aplikasi sekarang lebih murah daripada perubahan rakan pada setiap keluaran.
Sahkan rundingan, bukan label
Selepas menggunakan, semak tiga fakta berasingan: terowong melaporkan bersambung, laluan wujud dengan hop seterusnya yang dimaksudkan, dan rakan melaporkan fasa 1 dan fasa 2 kedua-duanya aktif.
Terowong yang aktif dengan fasa 2 mati bermakna kedua-dua pihak tidak bersetuju tentang pemilih:
- Satu pihak menyenaraikan subrangkaian yang pihak lain tidak senaraikan.
- Satu pihak menggunakan agregat yang disempitkan pihak lain.
- Laluan wujud tetapi menunjuk ke terowong lain.
Classic VPN ialah satu terowong dengan SLA lebih rendah daripada HA VPN, dan HA VPN menggunakan dua antara muka, dua terowong dan BGP dengan jenis sumber yang berbeza. Menyalin contoh klasik ke dalam konfigurasi HA dan mengharapkan medan pemilih berkelakuan sama ialah kesilapan berasingan yang wajar dielakkan. Medan terowong itu sendiri didokumenkan dalam rujukan google_compute_vpn_tunnel.