AWS Client VPN dengan split tunnel: rute mana yang harus Anda publikasikan
Split tunneling adalah daftar rute, bukan kotak centang. Tentukan ke mana lalu lintas internet pergi, prefiks privat mana yang dipublikasikan, dan resolver mana yang dipakai.
Konsol menawarkan tombol split tunnel, jadi keputusannya terasa seperti kotak centang. Bukan. Yang benar-benar sampai ke klien adalah kumpulan rute yang dipublikasikan oleh endpoint, dan daftar itu menentukan prefiks privat mana yang memakai terowongan, apakah lalu lintas internet umum tetap lokal atau keluar melalui AWS, dan resolver mana yang masih bisa dihubungi klien. Tiga pertanyaan menentukan desainnya, dan masing-masing bisa dijawab dengan buruk sementara koneksi tetap berhasil.
Flag split tunnel bukan daftar tujuan
AWS mendokumentasikan split tunneling sebagai penambahan rute endpoint ke tabel rute klien saat koneksi dibangun. Rute untuk VPC privat membatasi terowongan pada tujuan itu; sisanya mengikuti jalur biasa klien. Rute default adalah instruksi berbeda dengan efek berbeda, karena itulah dokumentasi split tunnel memperingatkan agar tidak mempublikasikan 0.0.0.0/0 pada endpoint yang dikonfigurasi untuk mode ini: biasanya itu merusak konektivitas alih-alih memperluasnya. Tabel rute endpoint adalah kebijakannya, dan tabel rute klien adalah hasil yang bisa Anda periksa.
Baca tabel rute endpoint dan rute terpasang klien bersama-sama. Labelnya menjelaskan niat; rutenya menjelaskan apa yang terjadi.
Keputusan pertama: haruskah lalu lintas internet umum tetap lokal?
Jika penjelajahan dimaksudkan memakai koneksi pengguna sendiri, publikasikan hanya tujuan privat yang dibutuhkan pekerjaan dan berhenti di situ. Jangan menambahkan rute internet karena tutorial tunnel penuh menyertakan satu, dan jangan menganggap rute tambahan meningkatkan keamanan. Itu mengubah jalur, tidak menambah kebijakan, dan biasanya memakan latensi yang tidak Anda anggarkan.
Jika lalu lintas internet harus keluar melalui AWS, bangun arsitektur akses internet yang didokumentasikan: rute endpoint, aturan otorisasi, jalur subnet terkait, kebijakan keamanan, dan egress hulu yang berfungsi. Rute default saja tidak menyediakan satu pun dari itu.
Keputusan kedua: prefiks privat mana, diotorisasi oleh siapa?
Publikasikan kumpulan tujuan terkecil yang melayani beban kerja sebenarnya, dan periksa bahwa setiap subnet terkait dapat merutekan ke sana. Target rute endpoint dan perutean VPC subnet adalah lapisan berbeda, dan rute yang ada di satu lapisan bukan bukti tentang lapisan lain. Otorisasi terpisah lagi: sebuah tujuan bisa terjangkau namun tetap ditolak karena grup klien tidak punya aturan yang mengizinkannya.
Menguji satu sesi yang berhasil membuktikan satu jalur. Periksa setiap subnet terkait, karena asosiasi subnet yang ditambahkan belakangan justru tempat rute yang hilang biasanya berada.
Bila sebuah tujuan harus terjangkau berdasarkan nama, perhatikan bahwa pertanyaan berikutnya adalah resolusi nama, bukan rute.
Keputusan ketiga: resolver mana yang mengikuti terowongan?
Klien bisa menerima server DNS yang hanya terjangkau melalui VPN, dan resolver itu hanya bekerja jika alamatnya sendiri berada di dalam rute yang diotorisasi. Verifikasi kedua bagian: alamat resolver mengikuti rute yang dipublikasikan, dan server menjawab nama yang diminta aplikasi. Permintaan yang berhasil lewat alamat tetapi gagal lewat nama host menunjuk pada penamaan, bukan perutean, dan men-debug terowongan dalam kasus itu membuang sore hari.
Nama publik seharusnya diselesaikan seperti sebelum koneksi, yang merupakan alasan lain untuk tepat tentang apa yang Anda publikasikan.
Ubah kumpulan rute, lalu verifikasi kedua dunia
AWS mendokumentasikan bahwa mengubah rute pada endpoint split tunnel mengatur ulang koneksi klien. Rencanakan perubahan dengan itu: terapkan, sambungkan ulang melalui klien yang didukung, dan baca rute terpasang dari awal alih-alih memercayai keadaan yang diterapkan sebelum penyuntingan. Keadaan terapan yang basi adalah alasan paling umum perubahan yang benar terlihat rusak.
Terima desainnya hanya bila satu sumber daya privat dan satu tujuan publik keduanya berperilaku sebagaimana dimaksud, berdasarkan nama dan alamat, pada keluarga alamat yang benar-benar Anda dukung. Terowongan yang mengautentikasi bukan hal yang sama dengan terowongan yang memisahkan dengan benar.
Tulis daftar rute ke runbook di samping alasannya, agar orang berikutnya bisa membedakan pengecualian yang disengaja dari yang terlupakan.