Memperlakukan tun0 dan protokol VPN sebagai satu hal mengarahkan orang ke log yang salah. Antarmuka adalah batas lokal tempat sebuah program di ruang pengguna bertukar paket IP dengan kernel. Protokol adalah apa yang dilakukan program itu terhadap paket setelah ia memilikinya: transportasi, autentikasi, enkripsi, dan rekan. Membuat perangkat tidak memilih satu pun dari itu.

Dua komponen, satu jalur paket

Kernel menulis paket IP ke perangkat, dan program membacanya dari deskriptor berkas. Pada arah sebaliknya program menulis paket kembali dan kernel merutekannya seolah paket itu tiba pada antarmuka sungguhan. TUN membawa IP, sedangkan TAP membawa bingkai Ethernet. Membaca paket pada batas itu memperlihatkan pembingkaian, dan itulah tepatnya kegunaan perangkat tersebut.

Segala sesuatu di luar batas itu adalah urusan program. Dua program dapat memakai konsep antarmuka yang sama dan melakukan hal yang sangat berbeda dengan paket-paket itu. Perangkat itu sendiri tidak berpendapat tentang apa yang terjadi selanjutnya. Deskriptor berkas adalah satu-satunya pegangan yang dimiliki program di sisi kernel.

Buat perangkatnya, lalu amati batasnya

Buat perangkat dengan sengaja saat Anda menguji batas. Perangkat persisten bertahan setelah proses yang membuatnya berakhir, yang berguna untuk percobaan dan menjadi sumber kebingungan yang umum sesudahnya. Periksa tanda dan pemiliknya sebelum menyalahkan VPN.

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

Rincian tautan menunjukkan jenis perangkat dan pemilik yang terpasang. Jika tidak ada proses yang membukanya, paket yang ditulis ke sana tidak menuju ke mana pun. Perangkat tanpa proses yang terpasang dapat tampak sehat dalam daftar tautan sementara tidak melewatkan apa pun.

Apa yang tidak dapat dijanjikan oleh nama antarmuka

Nama antarmuka tidak mengatakan apa pun tentang enkripsi atau autentikasi. Sebuah program dapat membungkus paket dalam TLS, dalam protokol sendiri, dalam IPsec, atau dalam apa pun. Memilih TUN alih-alih TAP mengubah pembingkaian pada batas, bukan rancangan keamanan. Pilihan pembingkaian itu nyata, dan jauh lebih kecil daripada pertanyaan keamanan.

Deteksi bekerja dengan cara yang sama: pengamat melihat protokol luar di kabel, bukan label yang menyebut perangkat lokal mana yang menghasilkannya. Terowongan yang tampak seperti hal lain melakukannya karena protokol luarnya, bukan karena nama antarmukanya. Pengamat tidak dapat melihat perangkat lokal mana yang menghasilkan paket, hanya bagaimana paket itu tampak. Pisahkan kedua pertanyaan itu saat Anda membandingkan produk, karena satu jawaban tidak pernah menyiratkan jawaban yang lain.

Cocokkan perbaikan dengan tahap yang gagal

Pisahkan tahap kegagalan ketika sesuatu rusak. Perangkat yang hilang, kesalahan izin, dan login yang ditolak menghasilkan bukti dan perbaikan yang berbeda. Baca dulu keadaan lokal, lalu log program itu sendiri, lalu pandangan rekan. Baca ketiganya sebelum mengubah apa pun.

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

Jika perangkat ada dan ada proses yang memegangnya, batas lokal bekerja dan masalahnya lebih jauh. Jika perangkat tidak ada, seberapa pun pemeriksaan kredensial tidak akan membantu. Tahap yang dapat Anda sebutkan adalah tahap yang dapat Anda uji. Dokumentasi TUN/TAP menjelaskan batas dan model perangkatnya.

Artikel terkait