Alamat mana yang akan dibagikan pool pada sambungan ulang berikutnya?
Alamat pool mengikuti urutan yang tidak acak: pertama alamat yang diingat, lalu alamat bebas yang paling lama tidak dipakai. Baca ini sebelum menetapkan aturan.
Aturan yang cocok kemarin tidak lagi cocok hari ini karena klien kembali dengan alamat terowongan yang berbeda. Namun pengalokasi tidak acak, dan mengetahui urutannya mengubah kejutan itu menjadi peristiwa yang bisa diprediksi. Ia mengutamakan alamat yang dulu dipegang klien yang sama, mundur ke alamat bebas yang paling lama menganggur, dan melupakan semuanya jika Anda tidak memberinya tempat untuk mengingat. Aturan yang mengandalkan sewa tetap cocok sampai hari ketika diam-diam tidak lagi cocok.
Urutan yang diikuti pengalokasi
Dengan satu sesi per common name, pengalokasi lebih dulu mencari alamat yang pernah dipakai klien yang sama dan kini bebas. Jika alamat itu tidak ada, ia mengambil alamat bebas yang paling lama menganggur. Saat sesi bersamaan diaktifkan untuk nama yang sama, preferensi alamat sebelumnya tidak berlaku dan alamat bebas pertama yang dipakai, karena sesi diperlakukan sebagai rekan yang terpisah.
| Situation | Address chosen | Practical effect |
|---|---|---|
| Reconnect, old address still free | The remembered address | Rules appear stable for days |
| Old address taken by another client | Least recently used free address | A working rule silently stops matching |
| Concurrent sessions, same name | First free address, per session | One identity can hold several leases |
Dua akibat langsung menyusul. Klien yang menyambung ulang dengan cepat biasanya mempertahankan alamatnya, karena itu tidak ada yang menyadari mekanismenya sampai berubah. Dan perangkat lain yang tersambung pada jendela kecil itu bisa mengambil alamat selama sebentar bebas, setelah itu klien pertama mendapat sesuatu yang lain dan setiap aturan yang berpatokan pada nomor lama menjadi salah. Tidak satu pun dari kedua peristiwa menghasilkan baris log yang tampak seperti gangguan.
Mengapa sewa tampak stabil lalu berpindah
Stabilitas di sini adalah sifat muncul dari sambungan ulang yang datang sebelum orang lain mengklaim alamat. Itu bukan janji, dan tidak ditegakkan saat klien terputus. Rencanakan alamat itu berubah alih-alih terkejut karenanya. Pool yang hanya sedikit lebih besar dari jumlah perangkat membuat tabrakan menjadi lumrah, karena pilihan mundur ke alamat yang paling lama tidak dipakai hampir tidak punya apa pun untuk dipilih.
Konkurensi puncak adalah angka yang menjadi dasar perancangan, bukan jumlah pengguna. Seseorang yang menguji dari dua perangkat sekaligus, atau klien yang menyambung ulang sebelum sesi lama berakhir, menempati dua sewa untuk sementara. Pool yang diukur hanya menurut jumlah orang akan menghasilkan tepat pergantian yang disalahkan orang kepada server.
Berkas persistensi mengingat, tidak memesan
Alamat yang bertahan melewati mulai ulang layanan memerlukan berkas persistensi. Berkas itu menyimpan nama klien dan alamat saat dimatikan dan membacanya lagi saat layanan dimulai, karena itu mulai ulang terencana tidak lagi mengacak semua aturan yang Anda tulis.
ifconfig-pool-persist /etc/openvpn/ipp.txt
server 10.8.0.0 255.255.255.0
Yang tidak dilakukannya adalah menahan alamat selama klien tidak ada. Pada celah itu pengalokasi bebas memberikan nomor kepada orang lain, dan berkas lalu mencatat preferensi usang yang tidak dapat dipenuhi sambungan berikutnya. Perlakukan itu sebagai petunjuk yang memperbaiki perilaku mulai ulang, bukan sebagai pengalamatan statis.
Periksa pool terhadap setiap subnet yang dirutekan selama Anda berada di berkas. Rentang yang tumpang tindih membagikan alamat yang tidak dapat dirutekan server, dan gejalanya adalah klien yang tersambung, menerima alamat, dan tidak mencapai apa pun.
Mematok alamat dengan benar
Ketika aturan firewall atau catatan DNS benar-benar membutuhkan alamat tetap, tetapkan alamat itu alih-alih berharap. Entri konfigurasi per klien dapat mendorong alamat dan masker secara langsung, dan entri itu dikunci pada nama klien yang berlaku.
# client-config-dir entry for "laptop-acme"
ifconfig-push 10.8.0.50 255.255.255.0
Simpan alamat tetap di luar pool dinamis agar pengalokasi tidak pernah memberikan nomor yang sama kepada sesi lain. Lalu periksa topologi terowongan, karena itu mengubah berapa banyak alamat pool yang dipakai setiap klien: tata letak titik-ke-titik yang lebih lama memakai blok kecil per klien, sedangkan tata letak subnet memakai satu alamat masing-masing. Pool yang tampak lapang pada satu topologi bisa habis pada topologi lainnya.
Konfirmasikan hasilnya di klien alih-alih memercayai pembukuan server. Saat sesi kembali, lihat alamat antarmuka dan rute yang didorong, karena log di server mungkin melaporkan alamat yang diminta sementara antarmuka sendiri memegang alamat lain.
Alamat jarak jauh adalah pertanyaan terpisah
Alamat pada baris remote klien harus dapat dijangkau sebelum ada terowongan apa pun. Menaruh alamat pool di sana, misalnya titik akhir terowongan server itu sendiri, berarti klien mencoba menjangkau titik akhir melalui terowongan yang belum dibangunnya, dan hasilnya adalah pengulangan atau waktu tunggu senyap alih-alih jalan pintas.
Gunakan titik akhir publik yang disediakan operator, dan simpan pool untuk apa yang dirancang: alamat di dalam terowongan. Mencatat rentang pool, penetapan tetap, dan jalur persistensi di satu tempat menyelamatkan orang berikutnya dari memperlakukan setiap sewa sebagai sewenang-wenang.