Satu hab OpenVPN, tiga LAN: pelan alamat dan fail iroute
Empat awalan terpisah, satu laluan kernel bagi setiap cawangan, satu iroute bagi setiap pemilik. Urutan kerja untuk hab tiga tapak yang gagal secara senyap apabila nama tersilap.
Tiga LAN peribadi boleh bertemu di satu hab tanpa mana-mana tapak perlu mengetahui dalaman tapak lain, dan keseluruhan reka bentuk bergantung pada empat keputusan konfigurasi yang pendek. Yang menjadikannya berkesan bukan ciri protokol yang eksotik, tetapi pelan alamat yang tidak perlu diteka oleh sesiapa, serta laluan bagi setiap klien yang memberitahu hab cawangan mana memiliki awalan mana. Jika salah satu daripada keduanya silap, terowong masih naik, dan itulah yang menjadikan kegagalan itu mengelirukan.
Lakukan langkah-langkah mengikut urutan. Setiap langkah bergantung pada pelan langkah sebelumnya, dan tiada satu pun memerlukan pihak berkuasa sijil baharu.
Mulakan dengan pelan yang tidak perlu diteka oleh sesiapa
Tuliskan empat awalan terpisah sebelum menyentuh fail konfigurasi: LAN hab itu sendiri, LAN setiap cawangan, dan kumpulan yang diberikan kepada klien kembara. Keterpisahan itulah yang memastikan segala-galanya kekal mudah, kerana julat yang bertindih menjadikan penghalaan teka-teki padanan terpanjang yang tidak boleh dibaiki oleh konfigurasi setiap klien sebanyak mana pun. Kemudian sahkan mesin mana yang menjadi get laluan lalai bagi setiap LAN, kerana penghala cawangan yang bukan get laluan LAN-nya perlu memasang laluan jauh di tempat lain sepenuhnya. Akhir sekali, tetapkan nama terautentikasi yang mengenal pasti setiap cawangan, kerana nama itulah kunci yang digunakan untuk mencari fail setiap klien.
Pelan contoh menjauhkan kumpulan itu daripada tiga LAN. Pelan anda akan berbeza, dan satu-satunya peraturan keras ialah tiada dua julat bertindih.
Hub LAN 172.20.0.0/24
Branch A LAN 172.21.0.0/24
Branch B LAN 172.22.0.0/24
VPN pool 10.77.0.0/24
identity branch-a owns 172.21.0.0/24
identity branch-b owns 172.22.0.0/24Beritahu kernel hab di mana cawangan berada
Hab memerlukan dua maklumat bagi setiap cawangan: laluan kernel yang menghantar awalan ke peranti terowong, dan entri iroute yang memberitahu proses OpenVPN klien mana yang memilikinya. Laluan kernel sahaja menghantar paket ke terowong dan berhenti di situ, kerana daemon masih perlu memutuskan rakan mana yang harus menerimanya. Entri iroute sahaja membiarkan paket itu di dalam kernel tanpa laluan untuk diikuti. Kedua-dua baris tergolong dalam konfigurasi yang benar-benar dimuatkan oleh daemon, dan ia wajar disahkan sebelum menyahpepijat apa-apa lagi.
dev tun
topology subnet
server 10.77.0.0 255.255.255.0
disable-dco
route 172.21.0.0 255.255.255.0
push "route 172.20.0.0 255.255.255.0"
client-config-dir /etc/openvpn/ccd
route 172.22.0.0 255.255.255.0Kekalkan client-to-client dimatikan apabila kernel sepatutnya menjadi titik penguatkuasaan. Pilihan itu menyampaikan trafik antara rakan di dalam daemon, yang memudahkan dan juga bermakna peraturan penghantaran anda tidak pernah melihat aliran itu. Semua di bawah menganggap kernel melihat setiap paket antara cawangan.
Berikan setiap cawangan laluan yang diperlukannya
Setiap cawangan memerlukan laluan ke cawangan lain dan ke LAN hab, dan tidak memerlukan laluan ke LAN-nya sendiri yang bersambung. Tolak awalan jauh dari hab dan bukannya menampalnya ke setiap penghala, supaya tapak keempat nanti bermakna satu fail baharu bagi setiap klien dan bukannya empat suntingan. Fail setiap klien juga membawa baris iroute, yang mengekalkan pemilikan dan pengiklanan di tempat yang sama. Jadikan direktori dan fail-failnya boleh dibaca mengikut model keistimewaan pelayan, jika tidak carian gagal tanpa mesej.
# /etc/openvpn/ccd/branch-a
iroute 172.21.0.0 255.255.255.0
push "route 172.22.0.0 255.255.255.0"Tapak keempat mengikut corak yang sama: nama terautentikasi yang berbeza, awalan yang dimiliki, laluan kernel hab, entri iroute, dan pengiklanan hanya kepada tapak yang dibenarkan mencapainya.
Uji dalam kedua-dua arah sebelum mengisytiharkan selesai
Hidupkan penghantaran IPv4 pada ketiga-tiga penghala, kemudian sahkan tembok api membenarkan aliran yang dimaksudkan dalam kedua-dua arah, kerana ujian satu arah lulus dengan laluan pulang yang rosak lebih kerap daripada yang dijangka sesiapa. Tiada terjemahan alamat sumber diperlukan antara tapak, dan memelihara sumber asal itulah yang membolehkan setiap cawangan menggunakan dasarnya sendiri pada permintaan.
Uji dari hos pada satu LAN cawangan ke perkhidmatan pada cawangan lain, kemudian balikkan arah, kemudian uji dari cawangan ke LAN hab. Ketiga-tiga keputusan itu adalah bukti yang berbeza, dan tiada satu pun membayangkan yang lain. Jika penghala cawangan bukan get laluan lalai LAN-nya, pasang awalan jauh pada get laluan sebenar dan sertakan kumpulan itu juga apabila klien terowong perlu memulakan sambungan ke LAN tersebut.
Rekodkan pelan, fail setiap klien dan peraturan tembok api sebagai satu dokumen, kerana penambahan tapak seterusnya akan dinilai berdasarkan dokumen itu.
Reka bentuk bertahan kerana setiap lapisan mempunyai satu tugas: pelan memastikan awalan unik, laluan kernel menggerakkan paket, iroute menamakan pemilik, dan tembok api memutuskan apa yang dibenarkan. Apabila sesuatu rosak, senarai itu juga menjadi urutan untuk memeriksanya.