Menganggap tun0 dan protokol VPN sebagai satu perkara membawa orang kepada log yang salah. Antara muka ialah sempadan setempat tempat program dalam ruang pengguna bertukar paket IP dengan kernel. Protokol ialah apa yang dilakukan program itu terhadap paket selepas ia memilikinya: pengangkutan, pengesahan, penyulitan dan pasangan. Mencipta peranti tidak memilih mana-mana daripada itu.

Dua komponen, satu laluan paket

Kernel menulis paket IP ke dalam peranti, dan program membacanya daripada deskriptor fail. Dalam arah yang bertentangan program menulis paket kembali dan kernel menghalakan paket itu seolah-olah ia tiba pada antara muka sebenar. TUN membawa IP, manakala TAP membawa bingkai Ethernet. Membaca paket pada sempadan itu menunjukkan pembingkaian, dan itulah tujuan peranti itu.

Segala-galanya di luar sempadan itu ialah urusan program. Dua program boleh menggunakan konsep antara muka yang sama dan melakukan perkara yang sama sekali berbeza dengan paket itu. Peranti itu sendiri tidak mempunyai pendapat tentang apa yang berlaku seterusnya. Deskriptor fail ialah satu-satunya pemegang yang dimiliki program di sebelah kernel.

Cipta peranti, kemudian perhatikan sempadan

Cipta peranti secara sengaja apabila anda menguji sempadan. Peranti berterusan kekal selepas proses yang menciptanya tamat, yang berguna untuk eksperimen dan menjadi punca kekeliruan yang biasa selepas itu. Periksa bendera dan pemilik sebelum menyalahkan VPN.

sudo ip tuntap add dev tun9 mode tun user alice
ip -d link show tun9

Butiran pautan menunjukkan jenis peranti dan pemilik yang dilampirkan. Jika tiada proses membukanya, paket yang ditulis ke dalamnya tidak pergi ke mana-mana. Peranti tanpa proses yang dilampirkan boleh kelihatan sihat dalam senarai pautan sambil tidak melalukan apa-apa.

Apa yang nama antara muka tidak boleh janjikan

Nama antara muka tidak mengatakan apa-apa tentang penyulitan atau pengesahan. Sesuatu program boleh membalut paket dalam TLS, dalam protokol sendiri, dalam IPsec atau dalam apa-apa pun. Memilih TUN dan bukan TAP menukar pembingkaian pada sempadan, bukan reka bentuk keselamatan. Pilihan pembingkaian itu nyata, dan ia jauh lebih kecil daripada persoalan keselamatan.

Pengesanan berfungsi dengan cara yang sama: pemerhati melihat protokol luar pada wayar, bukan label yang menyatakan peranti setempat mana yang menghasilkannya. Terowong yang kelihatan seperti sesuatu yang lain berbuat demikian kerana protokol luarnya, bukan kerana nama antara mukanya. Pemerhati tidak dapat melihat peranti setempat mana yang menghasilkan paket, hanya bagaimana rupa paket itu. Asingkan kedua-dua soalan itu apabila anda membandingkan produk, kerana satu jawapan tidak pernah membayangkan yang lain.

Padankan pembetulan dengan peringkat yang gagal

Asingkan peringkat kegagalan apabila sesuatu rosak. Peranti yang hilang, ralat kebenaran dan log masuk yang ditolak menghasilkan bukti dan pembetulan yang berbeza. Baca dahulu keadaan setempat, kemudian log program itu sendiri, kemudian pandangan pasangan. Baca ketiga-tiganya sebelum mengubah apa-apa.

ip -d link show tun0
journalctl -u openvpn-client@corp --since '10 min ago'

Jika peranti itu wujud dan sesuatu proses memegangnya, sempadan setempat berfungsi dan masalahnya lebih jauh. Jika peranti itu tiada, apa-apa jumlah pemeriksaan kelayakan tidak akan membantu. Peringkat yang boleh anda namakan ialah peringkat yang boleh anda uji. Dokumentasi TUN/TAP menerangkan sempadan dan model peranti itu.

Artikel berkaitan