Dynamic Multipoint Virtual Private Network atau yang bisa disingkat dengan DMVPN adalah sebuah konsep desain jaringan yang dapat digunakan untuk membangun sebuah jaringan private dalam jaringan publik (VPN).
DMVPN sendiri dibangun dengan beberapa teknologi, yaitu :
- Multipoint GRE,
- Next Hop Resolution Protocol,
- Routing Protocol,
- IP Security (tidak wajib, tetapi direkomendasikan).
Sebelum masuk jauh dengan DMVPN, mari bahas kenapa konsep DMVPN ini dibuat. Pertama adalah mari kenalan dengan GRE tunnel.
GRE Tunnel
Mari buat sebuah kasus dari GRE Tunnel ini, misalkan sebuah perusahaan ingin menghubungkan jaringan kantornya, dimana perusahaan tersebut mempunyai satu kantor pusat , dan 3 kantor cabang melalui jalur internet publik. Jika menggunakan GRE Tunnel, maka harus membuat setidaknya 3 tunnel.
Sebenarnya dengan tiga tunnel-pun koneksi dapat terjalin, tapi tidak maksimal, kenapa? misalkan trafik dari cabang satu yang ingin pergi kecabang dua harus melewati kantor pusat terlebih dahulu, itu dapat memperburuk kualitas pengiriman karena harus melewati kantor pusat terlebih dahulu.
Lalu bagaimana jika cabang satu dan cabang dua harus terhubung secara langsung? ya harus membuat sebuah GRE tunnel lagi antara cabang satu dan cabang dua.
Sangat merepotkan bukan? bagaimana jika perusahaan tersebut mempunyai sepuluh kantor cabang, lima puluh kantor cabang? ya pakai DMVPN.
Sekarang mari bahas dua komponen utama untuk membangun jaringan DMVPN, yaitu Multipoint GRE dan NHRP. Perlu diingat bahwa Multipoint GRE dan NHRP ini adalah satu kesatuan dan tidak dapat dipisahkan, kenapa? ayo bahas satu-persatu.
Multipoint GRE
Jika sebelumnya pada GRE Tunnel terdapat kelemahan dimana harus membangun banyak tunnel sekaligus, tidak dengan Multipoint GRE. Dimana Multipoint GRE sendiri berbentuk hub and spoke (topologinya), berikut adalah video yang menjelaskan secara singkat tentang hub and spoke.
Dijelaskan didalam video bahwa jika sebuah kantor cabang ingin mengirimkan data ke cabang yang lain, data tersebut akan melewati kantor pusat terlebih dahulu, didalam DMVPN, kamu dapat melewatkan data tersebut langsung ke cabang yang lain tanpa melewati kantor pusat terlebih dahulu (akan dibahas saat mengkonfigurasi DMVPN).
Dengan multipoint GRE, dapat meminimalisir pembuatan tunnel pada perangkat router, dimana hanya menjadi satu interface tunnel saja, seperti gambar dibawah ini :
Meskipun GRE Multipoint ini berbentuk Hub and Spoke, dapat membuat tunnel antar cabang (tanpa melalui hub atau kantor cabang) didalam DMVPN. jika ingin membuat tunnel antar cabang, proses pembuatan tunnel ini akan otomatis dilakukan oleh DMVPN.
Tetapi pembuatan tunnel secara otomatis ini dapat menimbulkan masalah, sebelum kepermasalahannya, mari berkenalan dengan overlay dan underlay network. Overlay network adalah jaringan virtual yang terbentuk saat membuat sebuah tunnel, sedangkan underlay network adalah jaringan publik atau infrastruktur publiknya yang digunakan untuk membuat tunnel.
Pembuatan tunnel pada GRE tunnel mengandalkan sebuah source underlay ip address dan destination underlay ip address, yang mana keduanya dikonfigurasi secara statik. pada DMVPN, bagaimana mengetahui destination underlay ip address pada DMVPN?
Dimana bentuk dari GRE tunnel adalah seperti ini :
Karena cabang 1 tidak mengetahui ip publik dari cabang 2, maka tunnel antar kedua cabang tidak dapat dibuat, maka dari itu membutuhkan sebuah protokol lain, yaitu protokol NHRP (Next Hop Resolution Protocol).
Next Hop Resolution Protocol
NHRP adalah sebuah protokol layer 2 yang hampir mirip seperti ARP, dimana dia melakukan mapping dari ip underlay ke ip overlay. Ada beberapa istilah dalam NHRP, yaitu NHRP server dan NHRP client. NHRP server menyimpan database overlay network dan underlay network yang dikirimkan oleh NHRP Client.
Meskipun berbentuk client server, NHRP dapat dipasangkan dengan GRE Multipoint yang berbentuk hub and spoke dimana Hub menjadi NHRP server dan semua spoke menjadi NHRP client.
Berikut cara kerja NHRP :
- NHRP client mendaftarkan dirinya kedalam NHRP server dan melaporkan ip publik (ip underlay) dan ip tunnelnya (ip overlay),
- NHRP server menyimpan database semua NHRP client dan melakukan monitor apabila ada perubahan,
Jika dicapture dengan wireshark, akan seperti ini :
- Jika sebuah NHRP client ingin mengirimkan data ke NHRP client yang lain (dalam hal ini spoke atau kantor cabang), maka NHRP client akan merequest ip underlay atau ip publik dari NHRP client yang lain ke NHRP server (dinamakan NHRP Resolution).
Jika dicapture dengan wireshark, akan seperti ini :
Dapat dilihat ip publik atau ip underlay tujuan sudah berubah ke 2.2.2.2 yang merupakan tujuan dari cabang 1.
Setelah memahami bagaimana cara kerja dari multipoint GRE dan juga NHRP, dapat disimpulkan bahwa DMVPN dibangun dengan kedua teknologi tersebut dimana tidak dapat dipisahkan.
Versi DMVPN
Dengan memahami cara kerja dari NHRP diatas, merupakan langkah yang bagus untuk mempelajari versi-versi DMVPN karena berkaitan dengan NHRP. DMVPN sediri terbagi menjadi tiga versi yang disebut “phase”.
- Phase 1
- Phase 2
- Phase 3
Perlu diketahui, bahwa setiap phase DMVPN mempunyai cara kerja NHRP yang berbeda-beda, mari bahas satu-persatu cara kerjanya.
DMVPN Phase 1
Pada DMVPN phase 1, setiap spoke hanya akan melakukan registrasi ke NHRP server yang dimana merupakan hub. Jika setiap spoke ingin berkomunikasi, maka data akan selalu dilewatkan ke hub. Tidak ada mekanisme dimana spoke melakukan NHRP resolution.
Jika mengirimkan data, maka data akan dikirimkan ke hub dimana hub akan mengirimkannya ketujuan. Ya sama seperti hub and spoke dan kondisi seperti ini tidak terlalu bagus karena hub dibebani trafik yang seharusnya dapat tidak melewati dirinya. Bahkan jika mengkonfigurasi protokol routing diatas tunnel, dimana next hop ke jaringan cabang yang lain sudah mengarah kecabang tersebut, tetap akan melewati hub.
Pada DMVPN phase 1, hanya hub yang menggunakan multipoint GRE, dimana semua spoke menggunakan GRE tunnel biasa, dimana GRE tunnel bersifat point-to-point.
DMVPN Phase 2
Pada DMVPN phase 2, baik hub dan spoke telah menggunakan multipoint GRE, sehingga dapat terjalin koneksi spoke-to-spoke. ada tiga syarat yang harus dipenuhi agar terjalin koneksi spoke-to-spoke :
- Spoke dan hub harus menggunakan multipoint GRE,
- Spoke harus mempunyai jalur yang jelas (spesific route) dan bukan default route, ke jaringan yang dituju (dalam hal ini network didalam spoke yang lain),
- Next-hop ip address dari jalur tersebut, haruslah IP dari spoke yang dituju (jika diaplikasikan di routing protocol, dapat menggunakan OSPF broadcast network ataupun menonaktifkan next-hop-self egirp).
DMVPN phase 2 menggunakan sebuah packet yang dinamakan NHRP Resolution yang meminta ip publik spoke lain untuk menjalin spoke-to-spoke connection. Sebagai contoh cabang1 mengirimkan NHRP Resolution ke hub untuk meminta ip publik cabang3 untuk menjalin spoke-to-spoke connection (dengan sebelumnya melakukan registrasi ke NHRP server yang berada di hub, sama seperti phase 1).
Cabang1 akan meminta ip publik dari cabang3 ke hub. Sesaat sampai di hub, hub akan memeriksa NHRP Mapping, jika dia menemukan ip publik cabang3, dia akan meneruskan ke cabang3.
Saat sampai di cabang3, cabang3 akan melakukan mapping untuk ip publik cabang1, lalu mengirimkan NHRP Resolution Reply ke cabang1, dimana di cabang1 akan dilakukan mapping sama halnya dengan cabang3. Kini cabang1 ataupun cabang3 telah mengetahui ip publik masing-masing dan siap untuk melakukan spoke-to-spoke connection.
Jika dicaptue dengan wireshark, maka akan seperti ini
Kelemahan dari DMVPN phase 2 adalah tidak dapat melakukan “summarization” karena spoke membutuhkan jalur yang jelas untuk mencapai tujuan di spoke lain. Sehingga DMPVN phase 2 tidak terlalu bersahabat untuk mereka yang mempunyai jaringan yang kompleks.
DMVPN Phase 3
Pada DMVPN phase 3, kita dapat melakukan “summarization” dan tentunya dapat melakukan spoke-to-spoke connection. Di DMVPN phase 3 juga kita dapat mengaktifkan OSPF point-to-multipoint dengan spoke-to-spoke connection (dimana di DMVPN phase 2 hanya bisa spoke-to-hub).
DMVPN phase 3 akan lebih rumit lagi, karena selain mengandalkan NHRP Resolution, juga menambahkan sebuah bantuan lain yaitu NHRP Traffic Indication, dimana pesan ini memberitahukan sender (spoke asal) bahwa ada jalur yang lebih pendek daripada melewati hub. Karena inilah kita tidak memerlukan spesific route dan dapat melakukan summarization.
Jika melakukan summarization ataupun menggunakan OPSF point-to-multipoint, maka trafik akan selalu diarahkan ke hub. Misalkan sebuah data dikirimkan dari cabang1 ke cabang3 dan melewati hub, hub akan memberitahukan kepada cabang1 bahwa dia mengetahui jalur yang lebih pendek untuk ke cabang3 (dalam hal ini membangun tunnel secara langsung atau spoke-to-spoke).
Maka, cabang1 akan melakukan NHRP Resolution yang sama dengan phase 2, selain itu antara cabang1 dan cabang3 akan menginstall route baru di tabel routing mereka sehingga syarat (“route yang jelas”) terpenuhi.
Catatan :
- Summarization hanya dapat dijalankan di EIGRP dan RIP
- Install route baru hanya dapat dijalankan di EIGRP dan RIP
- OSPF akan memodifikasi tabel FIB (forwarding table) dengan next hop yang benar dimana tidak merubah tabel RIB (tabel routing).
source. https://randymukti.wordpress.com/2014/07/21/indahnya-berkenalan-dengan-dmvpn-mgre-nhrp-tapi-lebih-indah-lagi-saat-berkenalan-denganmu/