Sekatan geografi ialah keputusan tentang alamat IP, dan VPN mengubah alamat yang dilihat oleh perkhidmatan. Satu ayat itu menjelaskan kebanyakan laporan mengelirukan yang sampai ke baris gilir sokongan: «tapak berfungsi di rumah dan gagal melalui terowong» dan «tapak berfungsi melalui terowong tetapi tiada orang lain di pejabat dapat memuatkannya» ialah mekanisme yang sama menghasilkan keputusan bertentangan. Runbook ini menelusuri diagnosis mengikut urutan yang menyingkirkan punca, bermula dengan apa yang sebenarnya dikatakan oleh edge kepada anda. Alamat keluar yang sama boleh lulus satu kawalan dan gagal pada yang seterusnya, kerana setiap kawalan menilai sifat berbeza alamat itu.

Baca 403 sebelum mengubah apa-apa

Sekatan geo dan sekatan WAF kedua-duanya datang sebagai 403, dan kedua-duanya dibaiki di tempat berbeza. Rakam pengepala respons dan baris pertama badan, kerana CloudFront menyertakan pengepala cache dan rentetan sebab yang memberitahu lapisan mana yang menjawab:

curl -sS -o /tmp/body.txt -D /tmp/headers.txt https://d111111abcdef8.cloudfront.net/
grep -i "x-cache\|via" /tmp/headers.txt
head -c 300 /tmp/body.txt

Apabila pengedaran itu sendiri menyekat permintaan kerana geografi, badan membawa mesej yang menamakan sekatan negara. Apabila peraturan WAF menyekatnya, badan biasanya halaman terlarang generik dan ID permintaan pengedaran dalam pengepala ialah apa yang anda bawa ke log WAF. Kesilapan di sini menghantar anda ke senarai negara dibenarkan untuk masalah peraturan berasaskan kadar, yang merupakan sehari kerja yang tidak boleh berjaya.

Langkah 1: sahkan alamat mana yang dilihat oleh pengedaran

Tanya rangkaian apa yang dilihat oleh dunia luar, dari mesin yang sama dan laluan yang sama digunakan oleh pelayar yang gagal. curl -s https://checkip.amazonaws.com mengembalikan alamat awam pemanggil, yang bagi klien VPN ialah laluan keluar dan bukan sambungan rumah pelanggan:

curl -s https://checkip.amazonaws.com
nslookup d111111abcdef8.cloudfront.net

Jika alamat itu milik laluan keluar penyedia anda di negara lain, keputusan geo sudah dibuat dan tiada apa di klien akan mengubahnya. Tulis alamat itu dalam tiket sebelum menyentuh tetapan, kerana itulah satu-satunya fakta dalam laporan yang anda dan perkhidmatan bersetuju.

Langkah 2: pisahkan negara daripada reputasi

CloudFront menentukan lokasi penonton daripada pangkalan data GeoIP pihak ketiga yang berkunci pada alamat sumber permintaan, dan pemetaan itu anggaran serta serantau, bukan penentuan tepat. Apabila lokasi tidak dapat ditentukan, lalai yang didokumenkan ialah menyampaikan kandungan. Jadi terdapat tiga keadaan mungkin: laluan keluar memetakan ke negara disekat, ke negara dibenarkan, atau pangkalan data tiada pendapat dan permintaan diteruskan.

Pengguna di negara disekat boleh kelihatan berada di negara dibenarkan jika penyedia mempunyai laluan keluar di sana, dan pengguna di negara dibenarkan boleh disekat kerana laluan keluar didaftarkan di tempat lain. Kedua-dua hasil tidak membuktikan sekatan itu rosak. Kedua-duanya ialah sekatan yang berfungsi pada alamat yang diberikan kepadanya, seperti yang diterangkan oleh dokumentasi sekatan geo CloudFront.

Reputasi ialah paksi kedua dan ia bertahan melepasi terowong. Kumpulan peraturan terurus AWS WAF untuk IP tanpa nama dibina untuk menyekat permintaan daripada VPN, proksi, nod Tor dan penyedia hosting, jadi permintaan yang lulus semakan negara masih boleh ditolak kerana apa alamat itu, bukan di mana ia berada. Jika penyekatan bermula apabila anda memindahkan terowong ke hos awan, ini mungkin lapisan itu.

Langkah 3: periksa tingkah laku kuota

Laluan keluar kongsi gagal dengan cara ketiga. Had kadar setiap IP dan kiraan sesi menganggap satu alamat sebagai satu klien, dan laluan keluar pengguna membawa banyak pelanggan sekali gus, jadi corak permintaan yang biasa dari sambungan rumah kelihatan seperti automasi dari laluan keluar. Gejalanya ialah pencekikan atau sekatan sementara yang hilang sendiri, bukan mesej ralat geografi.

Pengedaran juga boleh mengira sesi setiap alamat secara sengaja, contohnya dengan fungsi Lambda@Edge yang menulis ke DynamoDB. Itu tidak mengenal pasti orang di sebalik laluan keluar, tetapi membuat satu alamat berkelakuan seperti satu klien, yang selalunya menjadi niat sebenar. Rekod alamat berbeza di sebalik aduan sebelum melaras apa-apa ambang, kerana NAT korporat di hadapan dua ratus meja dari luar kelihatan tepat seperti laluan keluar sibuk. Jangkakan positif palsu daripada NAT korporat, rangkaian universiti atau isi rumah besar yang semuanya memaparkan satu alamat.

Lihat permintaan sampel WAF dan metrik peraturan berasaskan kadar sebelum menyalahkan geografi. Peraturan yang tercetus pada volum permintaan laluan keluar meninggalkan tandatangan jelas, dan ia juga memberitahu anda sama ada pembaikan itu pelarasan had atau laluan keluar berbeza.

Apa yang perlu diubah, dan dalam urutan apa

Pertama tentukan untuk apa kawalan itu. Mengekalkan katalog serantau, mengehadkan penyalahgunaan dan menguatkuasakan kontrak ialah tiga matlamat berbeza, dan hanya yang pertama ditangani oleh senarai negara. Jika matlamatnya ialah kawalan penyalahgunaan, laluan keluar ialah unit identiti yang salah, dan berapa banyak senarai dibenarkan pun tidak akan menjadikan alamat kongsi boleh dipercayai.

Jika alamat stabil benar-benar diperlukan untuk senarai dibenarkan, laluan keluar khusus atau statik membantu kerana alamat itu boleh didaftarkan dan tidak berputar. Ia tidak menjadikan alamat itu kediaman, dan tidak mengubah negara yang diberikan oleh pangkalan data GeoIP kepadanya. Memutar laluan keluar sehingga satu berjaya ialah perubahan reputasi sementara, bukan pembaikan dasar.

Kemudian tulis hasilnya dengan istilah yang digunakan oleh pemohon: alamat ini disekat mengikut negara, reputasi atau kadar, dan inilah kawalan yang akan berubah. Apa-apa yang lebih kabur menjemput tiket yang sama minggu depan dengan laluan keluar berbeza.

Artikel berkaitan