Pembantu pelayan OpenVPN: rangkaian dan netmask, tidak pernah CIDR
Pembantu pelayan IPv4 menerima rangkaian yang sejajar dan mask bertitik, bukan akhiran CIDR. Semak julat, sahkan kumpulan dalam log, kemudian ubah saiz dengan selamat.
Baris pelayan yang mencampurkan akhiran CIDR dengan mask bertitik menghentikan daemon sebelum ia membuka sebarang port. Pembantu server untuk IPv4 mahukan dua argumen berasingan: alamat rangkaian yang sejajar, kemudian netmask dalam bentuk bertitik. Segala-galanya pada baris itu ialah andaian, dan dalam andaian itulah saiz kumpulan dan mask klien menjadi salah.
Dua argumen yang diterima oleh pembantu
Tulis rangkaian dahulu dan mask selepasnya, tanpa apa-apa yang dicantumkan pada alamat:
server 10.72.16.0 255.255.240.0Ini bentuk untuk /20. Baris di bawah ialah kesilapannya, dan ia gagal semasa penghuraian pilihan, bukan semasa berjalan:
server 10.72.16.0/20 255.255.240.0Asingkan kedua-dua idea apabila menyahpepijat ini. Panjang awalan dan mask bertitik menerangkan julat yang sama, tetapi pembantu tidak menerima kedua-duanya sekali gus, dan baris yang ditolak menghasilkan ralat pilihan yang menamakan direktif, bukan aritmetik.
Sejajarkan rangkaian sebelum menaip mask
Alamat pertama ialah alamat rangkaian bagi julat itu, bukan alamat klien yang mudah di dalamnya. Untuk /20 julatnya berjalan dari 10.72.16.0 hingga 10.72.31.255, dan hanya yang pertama daripadanya ialah argumen rangkaian yang sah. /21 menggunakan 255.255.248.0 dan meliputi 10.72.16.0 hingga 10.72.23.255, jadi barisnya ialah server 10.72.16.0 255.255.248.0.
Menukar awalan menukar julat dan tiada yang lain. Ia tidak menukar berapa banyak alamat yang diterima oleh satu klien, kerana itu sifat topologi, bukan sifat mask pada baris ini.
Sahkan kumpulan dari sisi pelayan
Mulakan instans di latar hadapan dengan pengelogan terperinci dan baca baris yang dikeluarkan oleh pembantu. Kumpulan yang dibinanya dicetak semasa permulaan, yang lebih boleh dipercayai daripada mengira aritmetik dengan tangan:
openvpn --config /etc/openvpn/server.conf --verb 4 --dev tun9 --port 1195Cari ringkasan kumpulan berhampiran bahagian atas output. Ia menyenaraikan julat yang ditempah oleh pembantu, dan jika julat itu tidak sepadan dengan niat anda, argumen pada baris itu salah, apa pun kata aritmetik mask.
Kemudian sambungkan satu klien dan cari baris yang merekodkan alamat yang diberikan kepadanya. Alamat tunggal itu, di sebelah julat kumpulan, memberitahu anda sama ada klien mendarat di dalam blok yang ditempah atau di tempat yang tidak anda jangkakan. Jika kedua-duanya tidak sepadan, betulkan argumen itu, bukan klien. Jika kedua-duanya sepadan dan klien masih tidak mencapai apa-apa, kumpulan itu tidak pernah menjadi masalah.
Baca mask klien dengan mengambil kira topologi
Klien yang memaparkan /30 pada antara muka terowongnya bukan bukti kumpulan yang rosak. Dalam pengalamatan titik-ke-titik setiap klien menerima blok kecil dan mask antara mukanya menerangkan blok itu, manakala kumpulan pelayan meliputi keseluruhannya. Dalam topologi subnet, mask klien pula sepadan dengan mask kumpulan. Jadi mask sahaja memberitahu topologi mana yang digunakan, bukan sama ada kumpulan itu ditulis dengan betul.
Semak topologi yang dikonfigurasikan dan alamat yang diperuntukkan bersama-sama sebelum membuat kesimpulan:
ip -4 addr show tun0Jika alamat berada di dalam kumpulan dan mask lebih sempit daripada kumpulan, itulah topologi yang menjalankan tugasnya. Jika alamat berada di luar kumpulan, kumpulan itu salah, dan tiada pemeriksaan di pihak klien akan membetulkannya.
Menukar kumpulan yang sedang berjalan
Pilih julat yang tidak bertindih dengan kumpulan semasa, LAN, atau apa-apa laluan yang sudah ditolak kepada klien. Pertindihan ialah kegagalan yang bertahan selepas permulaan semula dan kemudian, beberapa hari kemudian, muncul sebagai satu tapak yang tidak dapat dicapai dari satu arah.
Tukar baris, mula semula dan baca semula kumpulan permulaan sebelum membenarkan pengguna kembali. Jika julat baharu berlanggar dengan sesuatu, output permulaan yang sama menunjukkannya serta-merta, dan mengundurkannya ialah suntingan satu baris serta satu lagi permulaan semula.
Kekalkan julat lama sebagai ditempah untuk seketika selepas perubahan. Klien yang menyambung lewat masih boleh memegang alamat daripada kumpulan sebelumnya, dan julat baharu yang menggunakan semula alamat itu menghasilkan peruntukan berganda yang kelihatan seperti kerosakan penghalaan. Manual OpenVPN 2.6 mendokumenkan argumen pembantu dan pengembangannya, yang wajar dibaca sebelum anda menganggap sesuatu direktif menggunakan notasi yang sama seperti jirannya.