Dua skrip yang berebut laluan yang sama ialah bentuk biasa masalah VPN Linux yang direkodkan sebagai pepijat penghalaan. Satu komponen mencipta peranti terowong, satu lagi menambah laluan lalai, yang ketiga menulis semula konfigurasi penyelesai, dan yang keempat memuat semula peraturan firewall. Mana-mana daripada mereka boleh membatalkan kerja yang lain, dan pemenang hanyalah siapa yang berjalan paling akhir. Soalan yang wajar dijawab bukanlah pakej mana yang perlu dipasang, tetapi komponen mana yang berautoriti bagi setiap bahagian keadaan.

Tulis peta itu sekali, dan kebanyakan kegagalan sambung semula berhenti menjadi misteri. Empat objek penting: peranti dan alamatnya, laluan dan peraturan dasar, konfigurasi DNS, dan firewall.

Peranti dan alamatnya

Peranti terowong dicipta sama ada oleh pengurus yang mengenali profil atau oleh daemon yang dimulakan seseorang secara manual. Kedua-dua susunan berfungsi sendiri; mencampurkannya tidak. Jika NetworkManager memiliki profil, biarkan ia memiliki peranti itu juga, dan jangan mulakan OpenVPN tanpa pengurusan terhadap nama terowong yang sama.

Catat siapa yang mengalih keluar peranti apabila sesi tamat. Peranti yang hidup lebih lama daripada sesinya ialah sumber paling biasa alamat lapuk dan kekeliruan yang menyusul.

Laluan dan peraturan dasar

Di laluan itulah konflik pemilikan menyebabkan kerosakan yang kelihatan. Pengurus sambungan memasang laluan lalai untuk terowong serta laluan yang lebih khusus untuk rangkaian jauh; skrip yang ditulis tangan kemudian menambah laluan lalainya sendiri dengan metrik berbeza dan diam-diam menang atau kalah bergantung pada masa. Tentukan entri mana yang terikat pada sambungan, mana yang dasar kekal, dan komponen mana yang menyegarkannya selepas sambung semula. Kemudian pastikan komponen lain di luar jadual itu.

Peraturan dasar juga memerlukan kejelasan yang sama, kerana peraturan yang menunjuk ke jadual yang tiada siapa mengisi menghasilkan lubang hitam yang kelihatan sama seperti terowong mati. Jika peraturan wujud untuk memaksa trafik ke suatu tempat, jadual yang dipilihnya mesti diselenggara oleh pemilik yang sama.

DNS sentiasa pemilik berasingan

Daemon penyelesai berjalan sebagai prosesnya sendiri di bawah identitinya sendiri, jadi ia tidak mewarisi keputusan penghalaan terowong secara tidak sengaja. Apabila VPN menolak pelayan DNS, sesuatu mesti menterjemahkannya ke konfigurasi setiap pautan yang dihormati penyelesai, dan sesuatu mesti mengalihkannya selepas itu.

Mitos di sini ialah menulis pelayan nama dalam profil mengubah ke mana pertanyaan pergi. Ia mengubah apa yang diberitahu kepada penyelesai, bukan soket mana yang digunakan penyelesai di hulu. Uji dengan pertanyaan serta carian laluan daripada mempercayai fail itu.

Keadaan firewall, dan siapa yang memulihkannya

Peraturan firewall ialah objek yang paling kerap ditulis ganti pada hos VPN. Pengurus boleh menambah peraturan NAT atau pemajuan bagi setiap sambungan, manakala perkhidmatan firewall semasa but memuat semula set peraturan yang disimpan dan memadamkannya. Pilih satu pihak berkuasa untuk dasar dan jadikan yang lain penggunanya, atau terima bahawa but semula mengubah tingkah laku secara senyap. Pengecualian yang terikat pada sambungan tergolong dalam fail yang dimuatkan oleh pemilik yang sama, bukan dalam arahan iptables yang ditaip semasa menyelesaikan masalah.

Jika peraturan perlu bertahan melalui sambung semula, nyatakan dengan jelas. Jika tidak, nyatakan juga, kerana jurutera seterusnya akan menganggap jawapan yang lebih mudah.

Kitaran hayat: but, sambung semula, pembongkaran

Berikan pemilik kepada setiap tiga saat itu. Semasa but, tentukan apa yang menyediakan prasyarat dan dalam susunan apa. Semasa mula semula lembut, ingat bahawa peranti mungkin bertahan manakala keadaan sesi tidak, jadi pengesah mesti berjalan bukannya pencipta. Semasa pembongkaran, alih keluar hanya apa yang dicipta oleh sambungan ini, kerana menetapkan semula setiap laluan atau mengosongkan seluruh firewall bukanlah sama dengan menamatkan satu terowong.

Untuk pemerhatian, ip monitor link address route menunjukkan perubahan kernel semasa ia berlaku, tetapi ia melaporkan peristiwa bukannya niat: laluan yang dipadam tidak menyatakan apa-apa tentang proses mana yang memadamnya. Pasangkannya dengan peta pemilikan, dan penutupan yang mengelirukan menjadi senarai calon yang pendek.

Pengecualian juga mempunyai kos. Menandakan seluruh kelas peranti sebagai tidak terurus untuk melepaskan diri daripada konflik menyerahkan keadaan itu kepada tiada siapa, yang merupakan keputusan dan bukan pembetulan.

Artikel berkaitan