Episode ini membedah arsitektur L2TP/IPsec: peran LAC dan LNS, perbedaan control connection dan data message, tugas IKE dan ESP, serta bagaimana stack PPP -> L2TP -> UDP -> ESP -> IP tersusun saat sebuah frame PPP dikirim ke server.

Setelah memahami sejarahnya, sekarang waktunya memahami anatomi. Episode 2 membedah L2TP/IPsec sebagai sistem — bukan sekadar kumpulan daemon — dengan fokus pada bagaimana protokol bekerja dan bagaimana mereka tersusun dalam satu stack. Pemahaman ini adalah kunci untuk membaca log, memilih opsi konfigurasi, dan memecahkan masalah di episode-episode berikutnya.
L2TP/IPsec melibatkan dua protokol besar: L2TP yang menangani tunneling Layer 2, dan IPsec yang menangani keamanan. Keduanya bekerja di lapisan berbeda dengan tanggung jawab berbeda, tapi berkolaborasi erat. Mari kita bedah satu per satu, lalu rakit kembali sebagai satu kesatuan.
L2TP mendefinisikan dua ujung koneksi. LAC (L2TP Access Concentrator) biasanya ada di sisi pengguna — bisa perangkat di rumah atau software client — dan menjadi titik masuk traffic. LNS (L2TP Network Server) berada di sisi jaringan korporat dan menjadi titik ujung tunnel, tempat session PPP di-terminasi dan disuntikkan ke jaringan internal. Dalam lab kalian, client di episode 0 adalah LAC dan server adalah LNS.
L2TP membedakan dua jenis pesan. Control Connection mengelola tunnel itu sendiri: pembentukan lewat pesan SCCRQ, SCCRP, dan SCCCN, serta pembentukan session lewat ICRQ, ICRP, dan ICCN. Pesan-pesan ini harus andal dan dijawab dengan acknowledgment. Sebaliknya, Data Message membawa payload PPP dan tidak mendapat acknowledgment — mirip UDP biasa. Inilah mengapa L2TP memakai UDP 1701: data dikirim tanpa overhead reliabilitas, sedangkan kontrol memakai nomor sequence tersendiri.
Urutan pembentukan tunnel dan session:
Tunnel : SCCRQ -> SCCRP -> SCCCN
Session: ICRQ -> ICRP -> ICCN
Lalu : negosiasi PPP (LCP, CHAP/MS-CHAPv2, IPCP)IKE (Internet Key Exchange) adalah protokol yang bertanggung jawab membangun Security Association (SA): kesepakatan algoritma, kunci bersama, dan parameter keamanan antara dua host. IKE berjalan di UDP 500 dan, setelah NAT traversal aktif, pindah ke UDP 4500. Ada dua versi — IKEv1 dan IKEv2 — yang akan kita bandingkan menyeluruh di episode 4. IKE menghasilkan kunci enkripsi yang nantinya dipakai oleh ESP.
ESP (Encapsulating Security Payload) adalah protokol yang benar-benar mengenkripsi dan mengotentikasi data. ESP berjalan langsung di atas IP dengan protocol number 50 dan menyediakan kerahasiaan (enkripsi) serta integritas (authentication). Dalam konfigurasi L2TP/IPsec, ESP selalu dipakai dalam tunnel mode — ia membungkus seluruh paket IP, termasuk header aslinya. Perbandingan transport mode dan tunnel mode ada di episode 5.
Saat client mengirim data, alurnya dari dalam ke luar adalah: frame PPP dibungkus oleh L2TP sebagai Data Message, L2TP dibungkus dalam UDP port 1701, UDP dibungkus oleh ESP dalam tunnel mode, dan akhirnya dibungkus IP asli yang membawa paket melewati internet.
Stack dari dalam ke luar:
+--------------------------+
| PPP frame |
+--------------------------+
| L2TP header (UDP 1701) |
+--------------------------+
| ESP header + trailer |
+--------------------------+
| Outer IP header |
+--------------------------+Setiap lapisan menambah overhead, dan total overhead inilah yang menjadi dasar perhitungan MTU di episode 15. Bayangkan frame PPP seperti surat dalam amplop L2TP, amplop itu dimasukkan ke kotak ESP yang terkunci, dan kotak itu dikirim dalam paket IP luar.
Di sisi server Linux, arsitektur L2TP/IPsec direalisasikan oleh tiga daemon yang bekerja sama:
pluto di Libreswan atau charon di strongSwan — menangani negosiasi IKE dan membangun SA IPsec.ppp0 di ujung LNS.Saat client terhubung, IKE daemon membangun SA IPsec lebih dulu. Setelah jalur UDP 1701 aman, xl2tpd menerima control connection dan session, lalu menyerahkan data ke pppd. Interface ppp0 yang dihasilkan pppd menjadi gerbang bagi traffic client ke jaringan internal.
Cek peran masing-masing service di sistem kalian:
systemctl status ipsec
systemctl status xl2tpd
ip addr show ppp0Perintah systemctl status ipsec menampilkan status IKE daemon. Jika ppp0 belum muncul saat tidak ada client, itu normal — interface dibuat dinamis saat session aktif.
Mari ikuti satu paket dari aplikasi di client sampai ke server. Saat sebuah aplikasi mengirim data, stack kernel membungkusnya dalam frame PPP. Frame PPP lalu dibungkus L2TP sebagai data message, dibungkus lagi dalam UDP dengan port sumber dan tujuan 1701, dilindungi oleh ESP dengan SPI dan nomor sequence, dan akhirnya dibungkus header IP luar yang membawa paket melewati internet.
Urutan langkahnya dari dalam ke luar:
1. Aplikasi : data pengguna (TCP/UDP aplikasi)
2. PPP : frame PPP menambah header PPP
3. L2TP : data message menambah header L2TP
4. UDP : header UDP dengan port 1701
5. ESP : enkripsi dan otentikasi seluruh payload
6. IP luar : routing melewati internetDi sisi server, proses dibalik: header IP luar dan ESP dilepas, UDP 1701 diteruskan ke xl2tpd, L2TP mengekstrak frame PPP, dan pppd menyerahkan data ke aplikasi di jaringan internal. Memahami urutan ini membuat kalian bisa memperkirakan di lapisan mana sebuah masalah terjadi — misalnya kenapa tcpdump di server menampilkan UDP 1701 padahal aplikasi mengirim TCP.
Setiap lapisan menambah header, dan itu membawa dua konsekuensi. Pertama, ukuran paket bertambah sehingga MTU efektif tunnel menyusut — kita akan hitung angka pastinya di episode 15. Kedua, setiap lapisan bisa menjadi titik kegagalan: IKE gagal berarti tidak ada ESP, xl2tpd mati berarti UDP 1701 tidak dijawab, pppd bermasalah berarti frame PPP tidak diproses. Inilah alasan alat troubleshooting di episode 8 bekerja lapis demi lapis.
Episode 2 membekali kalian bahasa arsitektur yang akan dipakai terus-menerus: LAC dan LNS, control connection versus data message, tugas IKE versus ESP, dan urutan enkapsulasi PPP di dalam L2TP di dalam ESP. Dengan memahami lapisan ini, kalian bisa membaca setiap log dan setiap opsi konfigurasi dengan konteks yang benar.
Inti yang harus dibawa pulang:
Di episode 3 selanjutnya kita akan memulai praktik pertama: instalasi dan setup awal — menginstall Libreswan dan xl2tpd, menyusun /etc/ipsec.conf, /etc/ipsec.secrets, /etc/xl2tpd/xl2tpd.conf, dan /etc/ppp/options.xl2tpd, lalu memverifikasi seluruh service berjalan. Pastikan VM server kalian sudah siap.