Mengapa wildcard dalam direktif route OpenVPN tidak boleh berfungsi
route memasang prefiks alamat, jadi corak nama hos tiada apa untuk dipadankan. Gunakan prefiks untuk rangkaian dan proksi atau fail PAC apabila domain perlu membuat keputusan.
Niatnya munasabah: hantar semua untuk satu domain syarikat melalui terowong dan biarkan selebihnya. Direktif yang sedang diedit memasang laluan, dan laluan tidak mempunyai sebarang konsep nama hos untuk dipadankan. Setiap percubaan menulis wildcard ke dalamnya menghasilkan sama ada ralat penghuraian atau, lebih teruk, laluan yang kebetulan berfungsi hari ini kerana nama itu diselesaikan kepada satu alamat. Dua mekanisme berbeza diminta melakukan kerja satu sama lain.
Apa yang dipasang oleh laluan, dan apa yang tidak pernah dibacanya
Entri laluan menyatakan bahawa prefiks destinasi boleh dicapai melalui antara muka. Kernel memadankan paket dengan prefiks tersebut, jadi satu-satunya pengecam yang terlibat ialah alamat dan topeng. Nama hos tidak pernah muncul dalam keputusan penghantaran, dan itulah sebabnya corak tidak boleh dipadankan di sana.
OpenVPN boleh menerima nama yang boleh diselesaikan dalam beberapa parameter laluan, dan toleransi itu menjadi punca kekeliruan. Nama itu diselesaikan semasa konfigurasi digunakan, menghasilkan satu atau lebih alamat yang menjadi laluan biasa. Selepas itu, nama itu hilang sepenuhnya daripada gambaran.
Jadi laluan yang dibina daripada nama ialah petikan sekejap, bukan peraturan. Ia meliputi apa sahaja yang nama itu diselesaikan pada saat terowong bermula, dan itulah tepat tingkah laku yang anda tidak mahu untuk keluarga hos yang berubah. Rekod yang berpindah esok meninggalkan laluan menunjuk ke semalam.
Apabila destinasi benar-benar prefiks
Jika sasaran ialah rangkaian peribadi yang diketahui, tulis prefiks itu. Untuk contoh daripada ruang dokumentasi, satu hos dan satu subrangkaian kelihatan seperti ini:
route 10.60.4.20 255.255.255.255
route 10.60.0.0 255.255.0.0
Kedua-dua entri menamakan alamat dan topeng, dan kedua-duanya bertahan terhadap perubahan DNS kerana tiada apa di dalamnya bergantung pada nama. Itulah keseluruhan kelebihannya: laluan ialah kenyataan tentang topologi, bukan tentang carian yang berlaku sekali.
Jangan extrapolasi prefiks besar daripada satu jawapan DNS. Satu nama hos yang diselesaikan kepada satu alamat tidak memberitahu anda apa-apa tentang saiz rangkaian di belakangnya, dan prefiks yang diagak ialah cara terowong akhirnya menangkap trafik yang tiada siapa berhasrat menghantarnya melaluinya. Tanya pemilik rangkaian tentang prefiks sebenar dan bukannya menyimpulkannya daripada carian.
Apabila unit kerja ialah nama hos
Memilih mengikut domain memerlukan sesuatu yang membaca domain, iaitu komponen lapisan aplikasi. Jawapan biasa ialah proksi HTTP yang tinggal di sebelah sana terowong, dengan klien memilih permintaan mana untuk dihantar kepadanya.
Fail konfigurasi proksi boleh menyatakan pilihan itu. Peraturan ilustratif di bawah menghantar satu domain dan subdomainnya ke proksi dan segala-galanya secara langsung:
function FindProxyForURL(url, host) {
var h = host.toLowerCase();
if (h === "corp.example" || dnsDomainIs(h, ".corp.example")) {
return "PROXY 10.60.0.12:3128";
}
return "DIRECT";
}
Perbandingan nama tepat meliputi domain itu sendiri, dan perbandingan akhiran meliputi anak-anaknya tanpa memadankan nama yang hanya berakhir dengan aksara serupa. Kedua-duanya perlu, dan meninggalkan satu menghasilkan peraturan yang kelihatan betul dan melangkau puncak atau penipu.
Peraturan ini memilih proksi; ia tidak mencipta proksi dan tidak mengubah mana-mana laluan sistem pengendalian. Alamat proksi masih memerlukan laluannya sendiri melalui terowong, dan permintaan yang ditanda langsung masih mengikut dasar penghalaan yang sudah ada pada mesin.
Apa yang tidak diliputi oleh pilihan proksi
Program yang mengabaikan konfigurasi proksi pelayar tidak akan terjejas oleh mana-mana daripada ini. Alat baris arahan, pengemas kini dan aplikasi dengan tindanan rangkaian sendiri mengambil jadual laluan, bukan fail PAC, jadi kes itu memerlukan mekanisme setiap aplikasi yang disokong atau reka bentuk lain. Inventori klien yang penting sebelum berjanji bahawa peraturan pelayar meliputi aliran kerja.
Kembali terus juga bukan jalan keluar. Jika dasar penghalaan mesin sudah menghantar segala-galanya ke dalam terowong, permintaan yang ditanda langsung kekal di dalamnya, kerana pilihan proksi dan jadual laluan ialah keputusan berbeza yang dibuat pada lapisan berbeza.
Penyelesaian nama ialah soalan ketiga yang berasingan. Memilih permintaan mana yang pergi ke proksi tidak mengatakan apa-apa tentang penyelesai mana yang menjawabnya, dan memperlakukan kedua-duanya sebagai satu tetapan menghasilkan kebocoran yang tidak kelihatan sehingga seseorang menguji dari luar. Putuskan di mana setiap pertanyaan dijawab dan tulis keputusan itu di sebelah peraturan proksi. Penyelesai yang berubah kerana terowong naik akan mengalihkan jawapan secara senyap.
Menguji kedua-dua laluan, bukan hanya yang lancar
Uji nama hos yang sepatutnya sepadan, nama hos yang tidak sepatutnya, dan puncak domain, kerana puncak ialah kes yang paling kerap terlepas oleh peraturan akhiran sahaja. Kemudian sahkan laluan mana yang sebenarnya diambil oleh setiap permintaan dan bukannya menyimpulkannya daripada sama ada halaman dimuatkan.
Akhir sekali, uji cabang kegagalan. Proksi yang tidak dapat dicapai sepatutnya gagal dengan cara yang anda telah putuskan lebih awal, bukan secara senyap kembali ke sambungan langsung. Rujukan pilihan rangkaian mendokumentasikan parameter laluan dengan tepat; separuh domain reka bentuk ini hidup sepenuhnya di luarnya.