Seseorang telah mencipta tun1 terlebih dahulu, profil menyebut dev tun1, dan sambungan masih tidak melekat. Kewujudan nama pada hos hampir tidak menjelaskan apa-apa, kerana pelekatan bergantung pada ruang nama, jenis peranti, siapa yang memiliki pautan dan apa yang dibenarkan untuk daemon lakukan. Menggunakan semula peranti juga memaksa keputusan yang disembunyikan oleh konfigurasi lalai: komponen mana yang menulis alamat dan laluan. Mod kegagalan kedua-dua susunan berbeza jauh lebih banyak daripada baris konfigurasi, jadi putuskan sebelum menyunting profil.

Nama bukan pelekatan

dev tun1 meminta OpenVPN untuk antara muka bernama itu, dan binaan ruang pengguna tradisional akan cuba membukanya. Jika nama tidak mengikut corak tun atau tap biasa, profil juga memerlukan dev-type yang sepadan, kerana jenis tidak pernah disimpulkan daripada rentetan. Peranti TAP bukan peranti TUN dengan label lain: melekatkan yang salah sama ada gagal terus atau menghasilkan pautan yang membawa bingkai yang tiada siapa jangkakan. Semak jenis sebelum apa-apa lagi, kerana setiap semakan kemudian menganggap kedua-dua pihak bersetuju tentangnya. Selepas itu, pastikan proses benar-benar boleh membuka peranti, bukan sekadar melihatnya.

dev tun1
dev-type tun

Antara muka rangkaian dan /dev/net/tun ialah objek berbeza: satu ialah pautan dalam ruang nama, satu lagi ialah peranti aksara yang digunakan oleh program ruang pengguna untuk melekat. Dokumentasi Linux TUN/TAP menerangkan laluan pelekatan itu dan peraturan pemilikan untuk peranti berterusan. Shell root yang boleh menjalankan ip link hanya membuktikan shell itu mempunyai keistimewaan, bukan daemon. Pemilikan nod peranti, set keupayaan perkhidmatan dan pengguna yang menjalankannya semuanya mesti selaras sebelum pembukaan berjaya.

Peranti yang wujud dan tidak boleh dibuka ialah masalah pemilikan, bukan masalah penghalaan. Layannya begitu semasa menyahpepijat, jika tidak petang akan habis dengan membaca jadual laluan yang tidak pernah menjadi masalah.

Siapa mengkonfigurasi pautan: dua model pemilikan

Dalam model pertama OpenVPN mengkonfigurasi alamat dan laluan sebagai sebahagian daripada menaikkan sambungan. Itulah tingkah laku lalai dan paling mudah difikirkan, kerana satu komponen mencipta keadaan dan kemudian membuangnya semula. Dalam model kedua pengurus luaran memiliki antara muka, dan ifconfig-noexec menghalang OpenVPN daripada menjalankan arahan konfigurasi alamatnya dan menyerahkan parameter kepada skrip. Pengurus kemudian mesti menggunakan konfigurasi tempatan dan rakan sebaya yang betul sendiri, yang lebih banyak kerja daripada yang disyorkan oleh nama pilihan itu. Memilih antara keduanya ialah persoalan siapa yang boleh mengubah pautan semasa ia naik.

ifconfig-noexec meliputi alamat sahaja: jadual penghalaan tidak disentuh, dan konfigurasi laluan milik route-noexec. Layannya kedua-dua arahan sebagai kawalan berasingan dengan pemilik berasingan, kerana menetapkan satu dan menganggap yang lain ialah punca biasa pautan yang separuh dikonfigurasi. Pilih tepat satu pemilik bagi setiap lapisan, alamat di satu tempat dan laluan di satu tempat. Pengurus rangkaian dan pembantu VPN yang kedua-duanya menulis alamat ialah cara pemutusan memadam keadaan yang masih diharapkan oleh pihak lain.

Periksa peranti dari ruang nama yang penting

Periksa peranti dari ruang nama tempat proses VPN berjalan, bukan dari ruang nama tempat shell anda kebetulan berada. Kedua-dua arahan di bawah menjawab soalan berbeza, dan perbezaannya kelihatan apabila hos melihat antara muka yang tidak dilihat oleh kontena. Jalankannya mengikut urutan yang diberikan, kerana yang kedua hanya bermakna setelah anda tahu sama ada pautan itu wujud.

ip -details link show dev tun1
ip tuntap show

Arahan pertama mencetak pautan seperti yang dilihat oleh kernel, termasuk bendera dan jenis antara muka, dan begitulah anda mengesahkan ini peranti yang dimaksudkan. Yang kedua menyenaraikan entri tun/tap berterusan, yang wujud tanpa dipegang oleh mana-mana proses. Antara muka yang menunggu pemilik yang ditetapkan ialah keadaan berbeza daripada terowong hidup yang dilekatkan pada VPN lain, dan hanya yang kedua menjelaskan mengapa pelekatan anda sendiri gagal. Cari proses yang memegang peranti sebelum mengubah apa-apa, kerana entri berterusan dan antara muka yang sibuk mempunyai pembetulan berbeza.

Sokongan berbilang baris gilir ialah susunan pemacu tertentu dengan keperluannya sendiri, bukan kebenaran untuk proses tidak berkaitan berkongsi satu antara muka. Sesi hidup pemilik lain ialah masalah penyelarasan, dan tiada penyuntingan profil menyelesaikannya.

Dua jenis ketekalan

Ketekalan kernel dan persist-tun menerangkan jangka hayat yang mudah dikelirukan dan mahal untuk dicampur. Peranti berterusan wujud secara bebas daripada mana-mana proses, jadi ia bertahan selepas pemberhentian dan permulaan seterusnya boleh menggunakannya semula. persist-tun mengekalkan sumber melalui tetapan semula lembut yang disokong dalam satu proses OpenVPN, ufuk yang jauh lebih pendek. Kedua-duanya tidak menjanjikan bahawa menghentikan perkhidmatan meninggalkan laluan dan alamat di tempatnya, dan antara muka yang kekal kelihatan bukan bukti sesi penyulitan yang berfungsi.

Sahkan juga backend, kerana antara muka yang telah dicipta tidak menjelaskan pelaksanaan mana yang akan membukanya. Binaan komuniti yang membawa laluan data langsung akan cuba menggunakannya melainkan reka bentuk menyatakan sebaliknya. Di tempat versi menyokong suis itu, disable-dco memilih laluan ruang pengguna pula; enjin lama dan klien lain tidak mempunyai arahan sedemikian, jadi simpan syarat versi di sebelah pilihan itu dan jangan anggap ia terpakai.

Apa yang rosak apabila hanya permulaan diuji

Persetujuan pemilikan boleh lulus ujian pertama dan gagal pada yang terakhir, yang menjadikan permulaan ujian lemah jika bersendirian. Perhatikan dua peralihan sebaliknya: tetapan semula lembut, dan pemberhentian penuh yang diikuti permulaan.

systemctl status openvpn-client@lab
ip -details link show dev tun1

Permulaan ialah kes mudah: unit naik, pautan muncul, dan output status menyebut profil yang dimuatkan. Pelekatan ialah saat daemon membuka peranti, jadi jalankan semakan pautan selepas unit melaporkan aktif, bukan sebelumnya. Jika pautan wujud semasa status masih mengaktifkan, anda sedang melihat peranti berterusan yang belum dilekatkan oleh sesiapa, bukan terowong yang berfungsi. Salurkan trafik sebenar melalui pautan sebelum meneruskan, kerana antara muka yang dilekatkan tanpa laluan yang boleh digunakan masih kegagalan.

kill -SIGHUP $(pidof openvpn)
journalctl -u openvpn-client@lab -n 40
systemctl stop openvpn-client@lab
ip -details link show dev tun1

Tetapan semula lembut patut meninggalkan sesi boleh digunakan dan sumber utuh, dan itulah tugas yang dilakukan persist-tun. Pemberhentian penuh ialah tempat pengurus luaran mendedahkan dirinya: jika pautan atau alamatnya bertahan selepas pemberhentian, orang lain memilikinya, dan itu sama ada keadaan yang anda dokumenkan atau pepijat yang baru anda temui. Catat kedua-dua pemerhatian di sebelah profil, supaya perubahan seterusnya bermula daripada bukti dan bukan daripada rajah.

Artikel berkaitan