Satu IP perkhidmatan pada setiap nod OpenVPN: apa yang tidak dilakukannya
Tempah /32 peribadi pada setiap nod supaya klien mencapai pelayan yang dipilihnya. Alamat itu tidak melakukan failover, tidak memindahkan sesi dan tidak memilih nod yang sihat.
Seorang klien bersambung ke salah satu daripada beberapa pelayan OpenVPN dan kemudian memerlukan perkhidmatan kecil yang berjalan pada nod itu: halaman status, titik akhir metrik, agen sandaran. Memberi setiap nod alamat perkhidmatan peribadi yang sama menjadikan konfigurasi klien identik tanpa mengira pelayan mana ia mendarat. Kemudahan itu nyata, dan ia juga mudah ditafsirkan secara berlebihan: alamat dikongsi memberitahu anda nod mana yang anda capai, bukan bahawa sesuatu itu berlebihan.
Mengapa alamat yang sama pada setiap nod berfungsi
Setiap nod memiliki alamat itu secara setempat dan menjawab untuknya, jadi klien yang mencapainya melalui terowong semasanya mendapat perkhidmatan di hujung terowong itu. Tiada apa yang diselaraskan antara nod, dan tiada trafik menyeberang dari satu nod ke nod yang lain.
Alamat itu ialah label setempat, diulang dan bukan disalin. Setiap nod menjawab hanya untuk dirinya sendiri, dan tiada satu pun daripada mereka memajukan trafik untuk alamat itu bagi pihak nod lain. Itulah yang mengekalkan satu konfigurasi klien sah sementara pelayan kekal bebas. Itu juga sebab reka bentuk ini tidak memerlukan penyelarasan antara nod.
Itulah sebab konfigurasi yang sama berfungsi pada setiap pelayan tanpa protokol penghalaan antara mereka. Itu juga sebab reka bentuk ini tidak berkata apa-apa tentang kesihatan: alamat itu wujud pada nod yang tidak sihat sama seperti pada nod yang sihat, kerana ia terikat pada hos dan bukan pada sama ada perkhidmatan itu berguna.
Tetapkan ia pada loopback, bukan pada terowong
Meletakkan alamat pada antara muka loopback memisahkannya daripada jangka hayat mana-mana peranti terowong, jadi sambungan semula atau muat semula konfigurasi tidak mengalihkannya. Alamat itu wujud selagi hos wujud.
Alamat pada lo bukan penapis. Perkhidmatan masih perlu mendengarnya, dan tembok api hos masih menilai laluan masuk sebenar, yang tiba pada antara muka terowong. Sesiapa yang menganggap loopback bermaksud setempat semata-mata akhirnya menyekat klien sah atau mendedahkan sesuatu yang tidak dimaksudkan.
Jadikan penetapan itu kekal melalui konfigurasi rangkaian hos dan bukan menambahnya semula daripada hook. Hook persediaan tidak akan berjalan pada nod yang tiada terowong naik, dan alamat perkhidmatan tidak sepatutnya bergantung pada aktiviti terowong. Letakkan alamat dalam konfigurasi antara muka yang dimiliki oleh distribusi anda, kemudian but semula sekali dan periksanya. But semula ialah satu-satunya ujian yang bertahan selepas perubahan konfigurasi kemudian.
ip address show dev lo | grep 10.250.0.1
ip address add 10.250.0.1/32 dev loTolak satu laluan dan maksudkan satu destinasi
Klien memerlukan laluan hos untuk alamat itu, yang ditawarkan oleh pelayan yang disambungnya. Oleh sebab setiap pelayan menawarkan destinasi yang sama, profil tidak berubah apabila klien bergerak.
Sahkan apa yang dipasang oleh klien sebelum menyalahkan perkhidmatan.
ip route get 10.250.0.1Untuk perkhidmatan HTTP, beri alamat itu nama dan sijil untuk nama tersebut. IP dikongsi bukan identiti, dan ia tidak menghapuskan pengesahan TLS, juga tidak mewajarkan penyalinan satu kunci peribadi ke setiap nod. Nama yang menyelesaikan kepada alamat dikongsi mengekalkan kisah sijil itu biasa dan membolehkan anda menyimpan identiti setiap nod jika perlu.
Apa yang alamat dikongsi tidak boleh lakukan
Ia tidak menyediakan failover. Jika nod yang dipilih mati, alamat itu mati bersamanya, dan klien perlu menyambung semula di tempat lain.
Ia tidak memindahkan sesi TCP yang hidup, kerana sambungan baharu berakhir pada hos lain yang tidak tahu apa-apa tentang yang lama.
Ia tidak memilih nod yang sihat, tidak mengimbangi beban dan tidak menyegerakkan data antara nod. Setiap satu daripadanya ialah mekanisme berasingan dengan mod kegagalannya sendiri, dan berpura-pura bahawa helah pengalamatan meliputi semuanya ialah cara reka bentuk ringkas memperoleh reputasi ketahanan yang tidak wajar. Jika dua terowong aktif serentak, makna destinasi menjadi kabur, jadi kekalkan andaian satu terowong aktif secara eksplisit.
Kekalkan identiti perkhidmatan bersama nama
Tuliskan apa maksud alamat itu: ia mencapai perkhidmatan pada nod yang klien sedang sambung. Satu ayat itu menghalang sebahagian besar salah faham yang ditarik oleh corak ini.
Kemudian dokumentasikan bahagian-bahagian itu bersama: alamat, antara muka tempat ia hidup, laluan yang ditolak pelayan, dan nama serta sijil yang dipersembahkan perkhidmatan. Empat fakta kecil yang boleh disahkan pembaca masa depan, mengikut urutan dia akan memeriksanya.
Jika keperluan ialah destinasi stabil untuk perkhidmatan setempat nod, corak ini sesuai dan hampir tidak berbelanja.
Jika keperluan ialah ketersediaan, naik satu lapisan: pengimbang beban, nama perkhidmatan dengan pemeriksaan kesihatan, atau sistem orkestrasi yang sudah tahu cara menggantikan nod.
Memutuskannya lebih awal mengekalkan alamat dikongsi sebagai dirinya, label yang mudah, dan bukan komponen yang secara senyap dijangka melakukan kerja yang tidak pernah direka untuknya.