Home

DMVPN Introduction (Dynamic Multipoint VPN)

5 Comments

Well…its been a while since last time I post something to my beloved blog, and now lets go straight to the topic

What is DMVPN? Why we use it? And How we do it?

Prerequisite for learning:

  • GRE (generic routing encapsulation)
  • knowledge of Routing (Protocol)
  • and….a little bit about CEF

btw…since this is the introduction, I’ll teach you how to develop DMVPN Phase 1

———————————-

Introduction

A problem with GRE…

Klo kita punya kasus kek gambar diatas…bagaimana supaya R2, R3, R4 bisa terkoneksi satu sama lain dengan GRE?

Klo yang pernah nyoba pasti jawabnya…Hub-and-Spoke atau lebih bagus lagi…FULL MESH

Baru 4 node aja…kita harus handle 6 tunnel, bayangin klo 7, 8, sampe 10 router atau kantor cabang

The solution…we will build dynamic tunnel called DMVPN (Dynamic Multipath VPN)

———————————————-

DMVPN…how it works

DMVPN itu terdiri dari 3(5) teknologi:

  1. Multipoint GRE (mGRE)
  2. Next-Hop Resolution Protocol (NHRP)
  3. Dynamic Routing Protocol (EIGRP, RIP, OSPF, BGP)
  4. *Dynamic IPsec encryption
  5. *Cisco Express Forwarding (CEF)

Basic DMVPN cukup pake 3 point diatas…Secure DMVPN baru pake point 4, dan…DMVPN phase 2 & 3 pake point 5

DMVPN phase? Ya…DMVPN VPN dibagi jadi 3 fase

  • Phase 1: Spoke register dynamically to Hub each time they want to do communication between Spoke
  • Phase 2: Spoke-to-Spoke tunnel…using CEF, but still use Hub for NHRP source
  • Phase 3: multiple Hub for scalability

mGRE: daripada gw bikin tunnel static tiap node kek GRE, mending gw bikin hub-and-spoke aja, gw tanyain ke hub…jalan untuk ke tujuan/destination lewat mana, baru gw bikin tunnel kesana

trus nanyainnya pake apa? Pake NHRP (Next-Hop Resolution Protocol)

Apaan itu NHRP? Next Hop Resolution Protocol (NHRP) is a protocol or method that can be used so that a computer sending data to another computer can learn the most direct route (the fewest number of hops) to the receiving computer (RFC 2332)

Kek contoh diatas…tapi mirip kek ARP (Address Resolution Protocol) yah? Ho oh

Bedanya dimana? Ya beda tong…ARP minta tolong switch buat minta next-hop mac-address, NHRP minta tolong router untuk minta next-hop IP

Spoke dalam NHRP disebut NHC (NHRP Client), sedangkan Hub dalam NHRP disebut NHS (NHRP Server)

————————————————

DMVPN Configuration

Pre-config:

  • IP addressing and Default route in each router (except Internet)
  • Klo pake GNS…pake IOS 3725

On Hub (R1)

Penjelasan:

Int tunnel 0 dan tunnel source fa0/0 pretty self-explanatory (and ip address too)

  • Tunnel mode gre multipoint: ini mGRE-nya
  • Tunnel key 1234: security measure buat tunnel (MANDATORY since IOS 12.3(14)T or 12.3(11)T3…klo ga, mGRE ga mau jalan)
  • Ip nhrp network-id: locally significant, biar si router tau dia mau ngirim NHRP ke “domain” mana (jadi 2 tunnel atau lebih bisa join di domain yang sama, lebih dinamis…contoh: buat PT.A pake id 1, buat PT.B pake id 2)
  • Ip nhrp authentication [STRING]: security measure, hanya node2 yang tau yang berhak bikin tunnel via registrasi ke hub
  • Ip nhrp map multicast dynamic: salah satu key component DMVPN, jadi Hub bisa mapping siapa mau bikin tunnel ke siapa, asal ngomong dulu ke dia (mapping-nya kek mac-address Port Security “sticky” di switch)
  • Ip nhrp shortcut: digunakan di DMVPN phase 3, untuk rewrite CEF entry…after getting redirect message? Who gave it?…
  • Ip nhrp redirect: this is the one who gave it, fitur ini mirip ke ICMP Redirect, klo si hub tau best path ke destination yang lebih pendek/cepat…dia akan ngasih tau ke source node-nya “kirim aja ke sono langsung…”

Jadi untuk ip nhrp shortcut and redirect digunakan untuk DMVPN phase 2 dan 3

Penjelasan:

Rata2 sekarang switch/router sudah mendukung jumbo frame (MTU lebih dari 1500), tapi klo engga…dengan path-mtu-discovery, router bisa ngukur besar paket yang akan dikirim supaya ga di fragmentasi (that’s the definition of MTU right?!?)

(kadang2 suka ga jalan ini mtu-discovery, entah karena ICMP nya ke blok makanya “pengukuran” MTU-nya kaga jalan, jadi kasi aja no path-mtu-discovery…). Kita juga bisa kasi manual MTU limiter kek Ip mtu 1400 artinya kita set max MTU 1400, nah MSS (max-segment size) kita kurangin -40 (best practice dr expert gitu, gw juga ga tau kenapa mesti -40) jadi 1360 biar ga kepotong (tindakan preventif kali ya…)

In R2, R3, and R4 (bedain IP-nya aja)

Penjelasan:

Most notable configuration in this router is ip nhrp nhs [destination tunnel ip address], artinya kita ngasi tau ke router ini…klo mau bikin tunnel tolong registrasi ke ip tersebut (NHS)

Emang ip tersebut bisa diraih lewat mana? Untuk bisa ke ip tersebut kita pointing ke ip physical/fisiknya router target, and that’s why ip nhrp map [ip tunnel] [ip physical] placed in CLI

Plus klo mau multicast…kirim aja ke ip physical tersebut juga dengan ip nhrp map multicast [ip physical]

By the way…dalam NHRP…IP Physical tersebut dinamakan NBMA Address

DMVPN is done…anything missing? Yes…now the routing takes place

Masukin ip network tunnel-nya, masukin juga network 10.0.0.0-nya (di R2, R3, dan R4 juga sama)

Don’t forget….EIGRP is DISTANCE VECTORthere is SPLIT HORIZON (jalan keluar DAN masuknya Cuma 1…interface tunnel 0), so disabling split-horizon (no ip split-horizon) and next-hop-self (no ip next-hop-self) will do the wonder

————————————————

The Verification

Dari sini kita bisa liat…R1 dynamically learn about others tunnel via NHRP

And lets check out the routing table

Lets check in R2 pinging and tracing to R3

Lets check the wireshark…(coba ping dari R4 ke R2, trus cek di R1…jgn di cek sama yang udah tunneling kek R2 ke R4 misalkan)

Anddd…R1 correctly redirect to 172.16.0.2 which is R2 tunnel IP

————————————————

Reference:

DMVPN Explained by Petr Lapukhov #16379 @http://blog.ine.com/2008/08/02/dmvpn-explained/

DMVPN Type by by Petr Lapukhov #16379 @http://blog.ine.com/2008/12/23/dmvpn-phase-3/#more-400

NHRP by IETF RFC 2332 @http://www.ietf.org/rfc/rfc2332.txt?number=2332

NHRP Network-id https://supportforums.cisco.com/discussion/12075461/dmvpn-ip-nhrp-network-id

Adjust MSS https://learningnetwork.cisco.com/thread/40703

IPv6 Tunneling

1 Comment

Lanjutin yang kemaren (nyobain seberapa powerful Packet Tracer v6 Beta…hasilnya Error pas tunneling…balik lagi dah ke GNS3 hahaha)

Ada 3 cara Integrasi IPv6 ke IPv4

  1. Dual Stack (Preferred)
  2. Tunneling (Optional, if Dual Stacking not available)
  3. NAT-PT (klo uda ga bisa semua)

Untuk dual stack itu paling gampang, konsepnya adalah…1 interface jalanin 2 IP Protocol sekaligus (IPv4 dan IPv6 jalanin bersamaan)

Untuk Tunneling…klo Network IPv6 kita mau ngalirin packet yang ngelewatin Network yang hanya bisa IPv4, Konsepnya “dual stack where you can, tunneling if you must

Untuk NAT-PT, sama kek NAT biasa, Cuma klo NAT biasa ngerubah IP Private-Public, klo NAT-PT ngerubah IPv4-IPv6

The good news is…NAT-PT IS DEAD !!!!…yes…dead (haha…pusing gw)…according to RFC 4966

So, tinggal Tunneling yang masi optional

=================================

IPv6 Tunneling Types

Tunneling IPv6 ada beberapa macam:

  • GRE
  • IPv6IP
  • IPv6IP Auto
  • 6to4
  • 6rd
  • Teredo
  • ISATAP

Oke…kita pake topologi kek gini

Klo tunnelnya berhasil..nanti hasilnya kek gini (R1 dapet rute ke 4::4/128-nya R4, vice versa)

================================

GRE Configuration

GRE itu kan tunneling “generik”, tentuin aja source and destination…selese

Salah satu keuntungan dari GRE ini adalah dia bisa tunneling protocol selain IP (bisa IPX, AppleTalk, dll)

Klo mo lebih spesifik…pake tunneling IPv6IP

Contoh konfigurasi R2 & R3

Penjelasan:

  • Create interface tunnel, pasang IPv6 address, ketik IPv6 enable (buat OSPFv3)
  • Ip address tunnel-nya sih bebas aja pake IP yang mana, TAPI HARUS 1 NETWORK dengan interface tunneling yang diujung satunya lagi (klo ga sama, ga bisa keluar dari tunnel)
  • Dan JANGAN LUPA, IP address tunneling-nya DIMASUKIN ke proses routing yah (masukin ke proses OSPF juga klo disini)…efek nya juga sama = ga bisa keluar dari tunnel
  • Pasang tunnel source dan destination
  • Source-nya R2 adalah interface Fa1/0 (interface yang ke arah IPv4 network, bukan Fa0/0 yang ke arah IPv6 network), bisa juga pake IP dari interface-nya
  • Destination-nya si R2 adalah IPv4 interface-nya router perbatasan/boundary router IPv4 ke IPv6 satunya lagi (ya si R3 itu)
  • Untuk R3…source and destination-nya ya kebalikan dari R2

Cek interface tunnel…pake show interface tunnel

============================================

IPv6IP Configuration

Tambahin aja command tunnel mode ipv6ip (di R3 juga)

Klo mode tunneling-nya beda gimana
?? ya ga jalan…

Hasilnya…di line paling bawah

===========================================

IPv6IP Auto Configuration

Nah…IPv6IP yang Auto, ISATAP, dan 6to4…ga perlu pake tunnel destination

Why ?? because these type of tunneling is developed for point-to-multipoint networks

Penjelasan:

  • Tidak ada tunnel destination disini, langsung pake ipv6ip auto-tunnel
  • Ketika kita memutuskan untuk auto-tunnel…maka router akan mengambil 32 bit dari 128 bit-nya IPv6 untuk jadi IP interface tunnel (sisanya jadi /96)
  • Just take a look -> ::23.23.23.2 , tanda “::” itu /96/32 sisa nya diambil dari ip address Fa1/0-nya si R2 (IPv4 yang ke arah router yang punya tunneling alias R3)
  • Kita juga harus nambahin static route (ato default route kek diatas) untuk ke Network lain yang ada disisi boundary router diujung satunya lagi

Sebelum ada ipv6 route

R2 uda bisa ke alamat IPv6IP auto-tunnel nya si R3, tapi kita coba ke 4::4 (IPv6-nya si R4)

Nah…tambahin static route (ato default route kek dibawah)

pake dynamic route ga bisa…klo ada yang bisa, kasi tau yaks…

Show interface tunnel

Kenapa ga bisa pake dynamic…karena topologi tunneling yang memakai konsep point-to-multipoint memakai IP Link-Local address untuk neighbor discovery nya (masalahnya Link Local address-nya ga bisa “dipasangin” ipv6 router ospf..hahah)

======================================================

6to4 Configuration

Ini metode untuk meng-encapsulasi IPv6 Header kedalam IPv4 Header, supaya bisa dibaca dan di terima oleh Network yang hanya menggunakan IPv4

Sebenernya ada lagi metode mirip2 kek 6to4…ada 6in4, 6over4, 4in6, 6rd

Yang menarik disini adalah…6to4 HARUS pake IP 2002::/16 demi alasan security (RFC 3964, walaupun di LAB mah bisa2 aja

Penjelasan:

  • Karena ini 6to4, kita harus pasang IPv6 address
  • *IPv6 address-nya adalah IPv6 hasil konversi dari IP interface source, Dan harus IP itu yang dipasang
  • /64 adalah prefix standar untuk IPv6 hasil “konversi” dari IPv4
  • Ini juga sama…ga bisa pake dynamic (soalnya point-to-multipoint alias ga ada tunnel destination-nya…UNKNOWN)
  • Ga percaya? Silakan coba pake IPv6 asal2an trus pake routing dynamic…ga akan jalan

Karena ga bisa pake dynamic routing protocol, kita harus pake static lagi untuk ke “ujung” network

Notice..disini kita pake static route dengan next-hop IPv6 punya interface tunnel router sebrang sana

*IP 23.23.23.2 klo di konversi ke IPv6 jadi 1717:1702

(konversi dari Desimal ke Binary kita uda banyak yang tau, tapi klo dari Desimal ke Hex?!? Nanti kapan2 gw coba jelasin deh)

===============================================

6rd Configuration

Ini belum gw coba, fitur ini Cuma ada di IOS 15 keatas (masi nyari IOS 15 nya gw *hiks*)

6rd alias IPv6 Rapid Development adalah fitur tunneling baru di IOS 15, ini contoh config-nya dari Cisco

Ato mo contoh yang punya Indra (gw ngubek2 6rd…ketemunya blog elu, lagi bahas 6rd juga)

Senangkepnya gw…6rd adalah turunannya 6to4 tunneling, Cuma kita bisa naro IP dan Prefix kita sendiri buat dijadiin prefix (soalnya 6to4 HARUS PAKE 2002::/16), jadi ISP bisa lebih flexsibel dalam ngatur IPv6 addressingnya,bener ga Ndra?!

===============================================

ISATAP Configuration

ISATAP stand for Intra-Site Automatic Tunnel Addressing Protocol

Gunanya apa nih?? Klo 6to4 untuk menghubungkan 2 IPv6 network yang berbeda (ISP berbeda mungkin)…ISATAP untuk network yang sama (Cuma kepisah sama IPv4)

Itu doang?? Ga dong..6to4 harus pake IP 2002::/16, klo ISATAP bisa pake IPv6 apa aja !! (plus bisa pake EUI-64)

Nyok…kita coba ping IP tunnel R3 dari R2 (show ipv6 interface brief dulu)

Tadi kita Cuma nge-set 23::/64…nah tambahannya dari FE80 tuh…

Berhasil tanpa perlu ipv6 route

Tapi untuk ke 1::1 ato ke 4::4 nya ya butuh Static Route lagi -_-;

(bikin aja…sama kok pola-nya dengan 6to4 untuk static route end-to-end)

===============================================

TEREDO Configuration

TEREDO digunakan untuk device2 yang bisa make IPv6 secara keseluruhan (fitur lengkap) tapi koneknya Cuma ke IPv4 Network

Microsoft pake ini kok untuk O/S nya (yang actual ya Vista dan Win7)

Trus konfig-nya mana bos ?? kaga ada…ga ketemu konfig nya, hahaha

Older Entries