Technologia DMVPN umożliwia budowanie skalowalnych sieci VPN pomiędzy oddziałami naszej firmy (spoke) oraz naszej centrali (hub). Struktura DMVPN opiera się na topologi gwiazdy, a w przypadku VPN pomiędzy naszymi oddziałami spoke-to-spoke na topologi full-mesh, z tą jednak różnicą, że w przypadku DMVPN nie ma potrzeby budowania stałych VPN pomiędzy oddziałami, jak to ma miejsce w klasycznym podejściu full-mesh. VPN pomiędzy oddziałami tworzone są dynamicznie (z ang. on-demand). DMVPN jest technologią opierająca się na budowaniu tuneli GRE site-to-site over IPSec.

Korzyści i zalety

  • W porównaniu do technologi MPLS, Frame relay lub ATM usługa zakończona jest na urządzeniach klienta. Wprowadza to większą kontrolę i możliwość konfiguracji usługi
  • Brak opłat ze strony ISP
  • Możliwy transport protokółów IGP: iBGP, OSPF, EIGRP, ruchu typu multicast oraz protokołu IPv6
  • Prosta konfiguracja: w przypadku dodania nowej lokalizacji (spoke) zmiany konfiguracyjne będą dotyczyły wyłączenie nowego obiektu (nowego routera)

DMVPN vs inne rozwiązania

Wiele zalet zostało wymienionych już akapit wyżej, mimo to warto wspomnieć, że w rozwiązaniu, które dostarcza nam producent Cisco nie jesteśmy uzależnieni od naszego ISP oraz usługi jaką świadczy (DSL/Ethernet). W przypadku, w którym nasze oddziały podłączone są do różnych ISP, implementacja MPLS może być utrudniona, wdrażając rozwiązanie DMVPN nie ma to większego znaczenia.

Konfiguracja DMVPN

Zanim przejdziemy do konfiguracji, zwróćmy uwagę na kilka protokołów i ich funkcje:

  • Każdy oddział (spoke) posiada na stałe zestawiony tunel IPSec z routerem głównym (hub). Każdy spoke rejestruje się jako klient na serwerze NHRP (hub).
  • W sytuacji, w której oddział chce nawiązać komunikację z innymi oddziałem, wysyła zapytanie do serwera NHRP o publiczny adres danej lokalizacji. Po otrzymaniu adresu IP, spoke tworzy dynamicznie tunel IPSec.
  • NHRP (z ang. next hop resolution protocol) jest wykorzystywany do wymiany informacji o adresach publicznych poszczególnych oddziałów (spoke). Rolę serwera NHRP pełni router główny (hub) ze statycznym adresem IP.
  • GRE (z ang. generic routing encapsulation), a dokładnie mGRE umożliwia budowanie tuneli IPsec na jednym interfejsie.
  • Szyfrowanie IPSec jest opcjonalne.

Poniżej znajduje się topologia, która zostanie wykorzystana w naszym przykładzie.

Konfiguracja routera pełniącego rolę HUB:

crypto isakmp policy 10
hash md5
authentication pre-share

crypto isakmp key cisco123 address 0.0.0.0 0.0.0.0

crypto ipsec transform-set strong esp-3des esp-md5-hmac

crypto ipsec profile cisco
set security-association lifetime seconds 120
set transform-set strong

interface Tunnel0
ip address 172.30.1.1 255.255.255.0
no ip redirects
ip mtu 1440
ip nhrp authentication cisco123
ip nhrp map multicast dynamic
ip nhrp network-id 1
no ip split-horizon eigrp 90
no ip next-hop-self eigrp 90
tunnel source FastEthernet0/0
tunnel mode gre multipoint
tunnel key 0
tunnel protection ipsec profile cisco

router eigrp 90
network 192.168.1.0 0.0.0.255
network 172.30.1.0 0.0.0.255
no auto-summary

Konfiguracja routera SPOKE 1:

crypto isakmp policy 10
hash md5
authentication pre-share

crypto isakmp key cisco123 address 0.0.0.0 0.0.0.0

crypto ipsec transform-set strong esp-3des esp-md5-hmac

crypto ipsec profile cisco
set security-association lifetime seconds 120
set transform-set strong

interface Tunnel0
ip address 172.30.1.2 255.255.255.0
no ip redirects
ip mtu 1440
ip nhrp authentication cisco123
ip nhrp map multicast dynamic
ip nhrp map 172.30.1.1 200.100.100.1
ip nhrp map multicast 200.100.100.1
ip nhrp network-id 1
ip nhrp nhs 172.30.1.1
tunnel source FastEthernet0/0
tunnel mode gre multipoint
tunnel key 0
tunnel protection ipsec profile cisco

router eigrp 90
network 10.0.0.0 0.0.0.255
network 172.30.1.0 0.0.0.255
no auto-summary

Konfiguracja routera SPOKE 2:

crypto isakmp policy 10
hash md5
authentication pre-share

crypto isakmp key cisco123 address 0.0.0.0 0.0.0.0

crypto ipsec transform-set strong esp-3des esp-md5-hmac

crypto ipsec profile cisco
set security-association lifetime seconds 120
set transform-set strong

interface Tunnel0
ip address 172.30.1.3 255.255.255.0
no ip redirects
ip mtu 1440
ip nhrp authentication cisco123
ip nhrp map multicast dynamic
ip nhrp map 172.30.1.1 200.100.100.1
ip nhrp map multicast 200.100.100.1
ip nhrp network-id 1
ip nhrp nhs 172.30.1.1
tunnel source FastEthernet0/0
tunnel mode gre multipoint
tunnel key 0
tunnel protection ipsec profile cisco

router eigrp 90
network 172.16.1.0 0.0.0.255
network 172.30.1.0 0.0.0.255
no auto-summary

Szybka weryfikacja:

HUB#show crypto isakmp sa

dst src state conn-id slot status

200.100.100.1 200.100.100.3 QM_IDLE 2 0 ACTIVE
200.100.100.1 200.100.100.2 QM_IDLE 1 0 ACTIVE

HUB#show crypto ipsec sa

interface: Tunnel0
Crypto map tag: Tunnel0-head-0, local addr 200.100.100.1

protected vrf: (none)
local ident (addr/mask/prot/port): (200.100.100.1/255.255.255.255/47/0)
remote ident (addr/mask/prot/port): (200.100.100.2/255.255.255.255/47/0)
current_peer 200.100.100.2 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 51, #pkts encrypt: 51, #pkts digest: 51
#pkts decaps: 50, #pkts decrypt: 50, #pkts verify: 50
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 0, #recv errors 0

local crypto endpt.: 200.100.100.1, remote crypto endpt.: 200.100.100.2
path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0
current outbound spi: 0xCDE586B7(3454371511)

inbound esp sas:
spi: 0x889D5ABF(2292013759)
transform: esp-3des esp-md5-hmac ,
in use settings ={Tunnel, }
conn id: 2005, flow_id: SW:5, crypto map: Tunnel0-head-0
sa timing: remaining key lifetime (k/sec): (4571369/8)
IV size: 8 bytes
replay detection support: Y
Status: ACTIVE
spi: 0xC5FA73D8(3321525208)
transform: esp-3des esp-md5-hmac ,
in use settings ={Tunnel, }
conn id: 2004, flow_id: SW:4, crypto map: Tunnel0-head-0
sa timing: remaining key lifetime (k/sec): (4581310/91)
IV size: 8 bytes
replay detection support: Y
Status: ACTIVE

inbound ah sas:

inbound pcp sas:

outbound esp sas:
spi: 0x26D60F04(651562756)
transform: esp-3des esp-md5-hmac ,
in use settings ={Tunnel, }
conn id: 2006, flow_id: SW:6, crypto map: Tunnel0-head-0
sa timing: remaining key lifetime (k/sec): (4571369/5)
IV size: 8 bytes
replay detection support: Y
Status: ACTIVE
*Mar 1 00:03:45.655: YPTO-6-PRINTABORT: deletion caused early termination of show output for identity

protected vrf: (none)
local ident (addr/mask/prot/port): (200.100.100.1/255.255.255.255/47/0)
remote ident (addr/mask/prot/port): (200.100.100.3/255.255.255.255/47/0)
current_peer 200.100.100.3 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 53, #pkts encrypt: 53, #pkts digest: 53
#pkts decaps: 53, #pkts decrypt: 53, #pkts verify: 53
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 0, #recv errors 0

local crypto endpt.: 200.100.100.1, remote crypto endpt.: 200.100.100.3
path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0
current outbound spi: 0x243FE052(608165970)

inbound esp sas:
spi: 0xFF81259(267915865)
transform: esp-3des esp-md5-hmac ,
in use settings ={Tunnel, }
conn id: 2002, flow_id: SW:2, crypto map: Tunnel0-head-0
sa timing: remaining key lifetime (k/sec): (4380664/86)
IV size: 8 bytes
replay detection support: Y
Status: ACTIVE

inbound ah sas:

inbound pcp sas:

outbound esp sas:
spi: 0x243FE052(608165970)
transform: esp-3des esp-md5-hmac ,
in use settings ={Tunnel, }
conn id: 2001, flow_id: SW:1, crypto map: Tunnel0-head-0
sa timing: remaining key lifetime (k/sec): (4380663/86)
IV size: 8 bytes
replay detection support: Y
Status: ACTIVE

outbound ah sas:

outbound pcp sas:

GNS3 version 2.1.8

Konfiguracje przygotowano w oparciu  o dokumentację Cisco.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *