Peraturan domain VPN rosak apabila CDN menukar alamatnya
Satu jawapan DNS ialah petikan, bukan inventori. Tiga syarat menentukan sama ada peraturan berasaskan nama atau awalan eksplisit sesuai untuk perkhidmatan yang disokong CDN.
Anda menyalin alamat daripada satu carian ke dalam peraturan penghalaan anda, laman berfungsi, dan seminggu kemudian ia tidak berfungsi. Tiada apa-apa pada peraturan itu berubah. Perkhidmatan berpindah ke alamat tepi lain, klien menyelesaikan nama hos lain, atau sesi bertukar ke IPv6. Keputusan di hadapan anda ialah sama ada peraturan berasaskan nama atau julat eksplisit ialah alat yang betul untuk perkhidmatan ini, dan tiga syarat menentukannya. Yang berikut memisahkan nama daripada alamat, kerana hanya satu daripadanya yang stabil.
Mengapa satu carian bukan inventori
Rangkaian penghantaran kandungan menjawab dengan alamat yang dipilih untuk penyelesai, wilayah dan saat itu. Tanya dua kali daripada rangkaian berbeza dan anda boleh mendapat jawapan berbeza. Tanya sekali dan anggap jawapan itu sebagai senarai alamat perkhidmatan, maka peraturan yang anda tulis ialah petikan, bukan peraturan. Itulah keseluruhan masalah memperlakukan jawapan DNS sebagai konfigurasi.
Ada jurang kedua. Satu nama hos yang kelihatan jarang meliputi seluruh aplikasi, kerana log masuk, media dan trafik API sering menggunakan nama berasingan. Peraturan yang dibina daripada nama hos dalam bar alamat boleh meliputi halaman dan terlepas video, yang dibaca sebagai kegagalan separa, bukan ralat penghalaan.
Jurang ketiga ialah keluarga alamat. Peraturan khusus v4 tidak mengatakan apa-apa tentang rekod AAAA yang mungkin diutamakan klien.
Tiga syarat yang menentukan peraturan domain atau julat
Pertama, adakah perkhidmatan menerbitkan set awalan stabil yang boleh anda miliki dan dokumentasikan? Jika ya, julat eksplisit jujur dan murah. Jika tidak, peraturan domain ialah satu-satunya mekanisme yang boleh mengikut perkhidmatan.
Kedua, adakah mekanisme domain klien anda menyegarkan? Peraturan yang diselesaikan sekali semasa menyambung dan tidak pernah lagi ialah petikan dengan penjenamaan lebih baik. Ketiga, adakah mekanisme itu meliputi subdomain dan kedua-dua keluarga alamat, atau hanya nama yang anda taip?
Jawab ketiga-tiganya dan pilihannya biasanya jelas. Meneka menghasilkan peraturan yang berfungsi dalam ujian dan gagal dalam pengeluaran.
Uji sesi, bukan halaman
Muatkan halaman, kemudian lakukan operasi yang penting: log masuk, mula main balik, muat naik fail. Setiap satunya boleh sampai ke hos berbeza, dan yang gagal ialah yang terlepas oleh peraturan anda.
Senaraikan apa yang sebenarnya dihubungi sesi, bukan apa yang dipaparkan halaman:
dig +short example.com A
dig +short example.com AAAA
curl -sI https://example.com | head -5Kekalkan penyelesai kelihatan semasa perbandingan, kerana peraturan yang berfungsi daripada satu penyelesai dan gagal daripada yang lain memberitahu anda tentang jawapan CDN, bukan tentang terowong. TTL pendek juga bermakna jawapan yang anda rekod mempunyai tempoh sah.
Apa yang sebenarnya diliputi setiap mekanisme
Kedua-dua mekanisme kelihatan boleh ditukar ganti pada halaman tetapan dan berkelakuan berbeza di bawahnya.
| Mechanism | What it matches | How it fails |
|---|---|---|
| Domain rule | Names the client resolves, then their addresses | Misses subdomains, or goes stale when refresh is off |
| Address route | A prefix you wrote down | Keeps matching an address the service has left |
Laluan alamat kernel memadankan awalan. Ia tidak tahu apa itu nama hos, jadi ia tidak boleh mengikut perkhidmatan yang menukar alamat. Peraturan domain menyelesaikan nama dan menghalakan hasilnya; ia mengikut perkhidmatan tetapi bergantung pada penyelesai, tingkah laku penyegaran dan pengendalian subdomain oleh klien, jadi peraturan yang mengikut nama mesti diuji dengan penyelesai yang benar-benar digunakan klien.
Tiada satu pun superset yang lain, sebab itu mencampurkannya tanpa nota menimbulkan kekeliruan kemudian.
Semak semula selepas perkhidmatan berubah
Selepas kemas kini klien atau perubahan perkhidmatan, jalankan semula ujian sesi yang sama. Senarai alamat yang dahulunya berfungsi ialah bukti tentang tempoh itu, bukan inventori kekal infrastruktur perkhidmatan.
Catat mekanisme mana yang meliputi nama hos mana, dan tarikh anda kali terakhir mengesahkannya.
Nota itu ialah perbezaan antara peraturan yang boleh anda pertahankan dan peraturan yang tiada siapa berani menyentuhnya. Jika perkhidmatan menerbitkan senarai awalannya sendiri, gunakannya dan sebut tarikhnya. Jika tidak, katakan begitu, dan simpan peraturan domain bersama tingkah laku penyegarannya tertulis di sebelahnya.