OpenVPN: alamat setempat berbanding alamat terowong — dua soket berbeza
Alamat yang menghubungi pelayan bukanlah alamat di dalam terowong. Membaca local, remote dan nobind sebagai peranan berasingan menjelaskan kebanyakan ralat ikatan.
Klien enggan bermula dan mengadu tidak dapat mengikat alamat setempat, dan pembaikan yang jelas kelihatan seperti menghalakannya ke alamat terowong yang dijangka diterima. Itu tidak boleh berfungsi, dan sebabnya wajar difahami: sebelum terowong wujud tiada alamat dalaman, dan soket yang menghubungi pelayan mesti wujud dahulu. Dua alamat berbeza terlibat, dan hanya satu daripadanya boleh dipilih secara setempat.
Ralat ikatan menamakan alamat setempat
Apabila OpenVPN melaporkan tidak dapat mengikat alamat setempat, ia bercakap tentang soket pengangkutan: titik akhir UDP atau TCP yang membawa sambungan disulitkan kepada rakan sebaya.
Arahan local yang jelas meminta daemon mengikat soket itu ke alamat setempat tertentu. Alamat itu mesti wujud dalam ruang nama rangkaian tempat proses berjalan, dan mesti boleh diperuntukkan pada saat klien bermula.
Alamat awam yang diterjemah di penghala atau di tepi awan bukanlah alamat setempat yang boleh diikat oleh daemon, walaupun itulah alamat yang dilihat oleh pelayan. Perbezaan itu menjelaskan mengapa satu profil berfungsi di rumah dan gagal pada instans awan. Ia juga menjelaskan mengapa menambah alamat awam pada antara muka loopback tidak membantu, kerana pengangkutan akan keluar dari alamat yang rangkaian tidak dapat membalas. Baca senarai antara muka sebelum menyunting profil.
Apa yang sebenarnya dipilih oleh local dan remote
remote menamakan rakan sebaya yang hendak dihubungi. local mengikat hujung dekat soket yang sama. nobind membiarkan sistem pengendalian memilih alamat setempat dan port sekali gus, sebab itulah klien di belakang penghala rumah biasanya berfungsi tanpa kedua-dua arahan itu.
Kedua-dua arahan itu tidak ada kaitan dengan alamat di dalam terowong.
Di dalam kontena atau ruang nama rangkaian, peraturan yang sama terpakai dengan sempadan yang lebih sempit: alamat hos tidak ada di dalam, jadi baris local yang disalin daripada konfigurasi hos gagal atas sebab yang sama sekali berbeza daripada alamat yang salah.
ip -brief address show
ip route get 203.0.113.10Alamat dalaman datang daripada pelayan
Alamat di dalam terowong dirunding atau diperuntukkan selepas saluran kawalan terbentuk. Dalam kumpulan dinamik pelayan memutuskannya semasa sambungan, dan dalam konfigurasi khusus klien alamat itu mungkin tetap mengikut identiti.
Menulis local dengan alamat dalaman tidak meminta pelayan memperuntukkan alamat itu. Dalam kes terbaik ikatan gagal; dalam kes terburuk klien menemui alamat hos tidak berkaitan dengan nilai yang sama dan mula menggunakannya untuk pengangkutan.
Antara muka yang perlu dibaca juga berbeza. Parameter ifconfig dan konfigurasi kumpulan menerangkan bahagian dalam, manakala remote, local, proto dan nobind menerangkan bahagian luar. Memisahkan kedua-dua senarai menjelaskan hampir setiap contoh mengelirukan yang anda temui di forum. Manual OpenVPN 2.6 mendokumenkannya dalam bahagian berasingan atas sebab itu juga.
Perangkap: terowong penuh yang menangkap pengangkutannya sendiri
Setelah terowong naik dan membawa laluan lalai, paket yang menyokongnya tidak boleh dihalakan ke dalamnya. Ini masalah penghalakan dan bukan pengalamatan, dan daemon menanganinya dengan memasang laluan yang lebih khusus ke alamat pelayan itu sendiri melalui get laluan asal.
Jika anda memakukan pengangkutan pada alamat setempat tertentu dan kemudian menukar laluan yang digunakan oleh alamat itu, sambungan luar boleh tersesat sementara bahagian dalam kekal dikonfigurasi. Terowong terus melaporkan ia bersambung kerana bahagian dalam baik. Hanya pengangkutan yang rosak, dan sebab itulah log dibaca sebagai percanggahan.
Gejalanya kemudian kelihatan seperti terowong yang bersambung lalu membeku, atau yang menyambung semula dalam gelung tanpa ralat berguna. Periksa laluan ke alamat rakan sebaya sebelum memeriksa apa-apa di dalam terowong, dan sahkan bahawa alamat setempat yang anda ikat masih milik antara muka yang anda jangkakan.
Kebiasaan yang menghalang kekeliruan
Baca setiap alamat dalam profil dan putuskan lapisan mana ia miliki sebelum menyuntingnya.
Jika ia menamakan hujung jauh pengangkutan atau mengikat hujung dekatnya, ia alamat luar dan mesti wujud sebelum bermula. Jika ia menerangkan apa yang berlaku di dalam terowong, ia datang daripada pelayan atau daripada topologi, dan tiada arahan setempat boleh menggantikannya.
Tulis kedua-dua senarai dalam nota penggunaan di sebelah profil. Sesi penyelesaian masalah seterusnya akan bermula dengan lapisan itu dan bukan dengan tekaan.