Episode ini membedah lapisan PPP dan L2TP: cara PPP membungkus data, protokol otentikasi PAP, CHAP, MS-CHAPv2, dan EAP, serta urutan handshake tunnel SCCRQ hingga session ICCN. Kalian juga menulis opsi PPP pertama yang dipakai pppd saat client terhubung.

Di episode 2 kita menyusun stack L2TP/IPsec dan tahu bahwa PPP adalah lapisan paling dalam. Episode 7 fokus pada dua lapisan yang paling sering dikonfigurasi: PPP yang membawa data pengguna, dan L2TP yang membentuk tunnel serta session. Inilah lapisan tempat username, password, dan alamat IP ditangani.
Banyak kesalahan konfigurasi L2TP/IPsec justru terjadi di sini — protokol otentikasi yang tidak cocok, atau urutan handshake yang tidak tuntas. Dengan memahami PPP dan L2TP secara terpisah, kalian bisa memetakan setiap error log ke lapisan yang tepat.
PPP adalah protokol link layer yang berjalan point-to-point. Di dalam L2TP, frame PPP dibungkus sebagai payload Data Message dan diteruskan lewat tunnel. PPP membawa tiga protokol penting: LCP untuk negosiasi link itu sendiri, NCP seperti IPCP untuk menetapkan alamat IP, dan protokol otentikasi yang dibahas di bawah.
PPP mendefinisikan beberapa protokol otentikasi dengan tingkat keamanan berbeda:
Untuk L2TP/IPsec, kombinasi yang lazim adalah MS-CHAPv2 dengan enkripsi MPPE. Di sisi server, protokol yang diizinkan dikendalikan lewat opsi pppd:
name l2tpd
require-mschap-v2
refuse-pap
refuse-chap
ms-dns 8.8.8.8
ms-dns 1.1.1.1
proxyarp
idle 1800Baris refuse-pap dan refuse-chap memaksa client naik ke MS-CHAPv2, sementara require-mschap-v2 mewajibkan otentikasi dua arah.
Sebelum data mengalir, LAC dan LNS harus membangun tunnel L2TP. LAC mengirim SCCRQ (Start-Control-Connection-Request) ke LNS. LNS menjawab SCCRP (Start-Control-Connection-Reply), dan LAC menutup dengan SCCCN (Start-Control-Connection-Connected). Tunnel terbentuk.
Di dalam tunnel, setiap koneksi pengguna membuka session tersendiri. LAC mengirim ICRQ (Incoming-Call-Request), LNS membalas ICRP (Incoming-Call-Reply), dan LAC menuntaskan dengan ICCN (Incoming-Call-Connected). Setelah ICCN, negosiasi PPP — LCP, otentikasi, lalu IPCP — dimulai di atas session tersebut.
Urutan lengkapnya:
SCCRQ -> SCCRP -> SCCCN (tunnel)
ICRQ -> ICRP -> ICCN (session)
LCP -> otentikasi -> IPCP (PPP)xl2tpd tidak menjalankan PPP sendiri; ia menyerahkan session ke pppd dan memberi tahu pppd lewat file opsi. Di /etc/xl2tpd/xl2tpd.conf, arahkan dengan pppoptfile:
[lns default]
ip range = 192.168.42.10-192.168.42.250
local ip = 192.168.42.1
require chap = yes
refuse pap = yes
require authentication = yes
name = l2tpd
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yesKolom require chap = yes dan refuse pap = yes mengatur protokol otentikasi di sisi L2TP, sementara pppoptfile menunjuk file opsi pppd yang kita tulis di atas. Keduanya harus konsisten: jangan menolak PAP di satu sisi tetapi mengizinkannya di sisi lain.
Saat session bermasalah, aktifkan debug di kedua lapisan:
sudo journalctl -u xl2tpd -f
sudo tail -f /var/log/syslog | grep pppdSetelah client terhubung, periksa interface hasil pppd:
ip addr show ppp0
ip routeJika ppp0 muncul dengan alamat 192.168.42.x, negosiasi PPP sukses. Jika tidak, arahkan perhatian ke log pppd — sebagian besar kegagalan otentikasi tercatat di sana dengan jelas.
Episode 7 membekali kalian dua lapisan paling dalam L2TP/IPsec: PPP yang membawa data dan melakukan otentikasi pengguna, serta L2TP yang membentuk tunnel dan session lewat urutan SCCRQ hingga ICCN. Kalian juga sudah menulis opsi PPP dan konfigurasi LNS pertama yang saling terkait.
Inti yang harus dibawa pulang:
pppoptfile.pppd adalah tempat pertama memeriksa kegagalan otentikasi.Di episode 8 selanjutnya kita akan membahas tools dan troubleshooting — cara memakai ipsec statusall, ipsec barf, swanctl --list-sas, dan xl2tp-control untuk melacak masalah dari lapisan IKE sampai session PPP.