Introduo
Dynamic Multipoint VPN (DMVPN) a resposta da Cisco para a
crescente demanda de empresas corporativas para ser capaz de
interconectar localidades remotas, mantendo os custos baixos,
minimizando a complexidade de configurao e aumentar a
flexibilidade.
Com DMVPN, um roteador central, geralmente instalados no site
principal, assume o papel do HUB enquanto todos os outros
roteadores de localidades remotas assume o papel de SPOKES, estes
se conectam ao roteador HUB para aprender como estabelecer tneis
dinmicos e aos demais SPOKES para acessar os recursos da
empresa.
O design DMVPN consiste de duas arquiteturas primrias:
1. DMVPN Hub & Spoke, usado para conectar o site principal as
localidade remotas.
2. DMVPN Spoke -to-Spoke, usado para conectar interconectar
localidades remotas.
DMVPN combina mltiplos tneis GRE (mGRE), IPSec e criptografia,
utilizando o NHRP (Next Hop Resolution Protocol) para realizar o seu
trabalho e poupar o administrador de ter de definir vrios mapas de
criptografia esttica e dinmica alm de descoberta de extremidades
do tnel.
A feature DMVPN no altera tneis VPN padro IPsec, mas altera o
modo como estes so configurados. Os spokes mantm um tnel
IPsec permanente com o HUB, porm, no entre eles. Quando um
spoke precisa enviar um pacote com destino a outro spoke, ele realiza
uma busca na base de dados NHRP para identificar o endereo
pblico (rotevel) do spoke em questo. O tnel entre os spokes
ento estabelecido via interface mGRE. O router Hub executa a
funo do servidor, enquanto os roteadores Spokes atuam como
clientes. O Hub mantm um banco de dados NHRP especial com os
endereos IP pblicos de todos os Spokes configurados.
Tnel mGRE utilizado para permitir que uma nica interface GRE
suporte mltiplos tneis IPSec simplificando drasticamente a
complexidade e tamanho da configurao para mltiplas VPNs.
Diferena entre GRE e mGRE:
GRE:
Endereo IP
Tnel Origem
Tnel destino
mGRE:
Endereo IP
Tnel Origem
Tnel multipoint > importante notar que as interfaces mGRE
no tem um destino definido. Este tipo de tnel utiliza o NHRP
para definio do destino dizendo para onde o mGRE deve
enviar os pacotes.
Benefcios
1. Configurao nica do HUB
2. Sem necessidade de mltiplas polticas por tnel
3. Configurao do Hub permanece inalterada independentemente
do nmero de Spokes
4. Utilizao de endereos pblicos; estticos ou dinmicos
5. Construo de tneis dinmicos entre roteadores consultando
NHRP
6. Administrao simplificada
Ex. Temos hoje 28 localidades com circuitos Internet Oi ativados ou
em ativao. Cada configurao de VPN consome em mdia 13 linhas
de configurao no modelo site2site, teremos ento 364 linhas de
configurao, se pensarmos em 75 localidades, teramos 975 linhas
de configurao, e assim por diante... Evidentemente isso dificulta a
administrao bem como a performance da caixa.
Configurao mGRE (DMVPN)
HUB-DC
interface FastEthernet0/0
description LAN-Network
ip address [Link] [Link]
duplex auto
speed auto
!
interface FastEthernet0/1
description WAN-Network
ip address [Link] [Link]
duplex auto
speed auto
!
interface Tunnel0
description HUB Tunnel mGRE DMVPN
ip address [Link]
no ip redirects
# Desativa os redirecionamentos... Ex. ICMP redirect
ip nhrp authentication sec@sync
# Autenticao para consultas e atualizao no banco de dados
NHRP, garante que consultas indesejadas no forneam dados sobre
toda a rede.
ip nhrp map multicast dynamic
# Permite o encaminhamento de trfego multicast. Normalmente
exigido pelo OSPF e EIGRP, utilizamos protocolos dinmicos para
enviar e receber atualizaes de redes internas.
ip nhrp network-id 1
# Identifica a nuvem DMVPN, todos os roteadores devem estar com o
mesmo ID para estabelecimento de VPN.
tunnel source [Link]
tunnel mode gre multipoint
# Interfaces tnel mGRE no tem um destino definido. Este tipo de
tnel utiliza o NHRP para definio do destino dizendo para onde o
mGRE deve enviar os pacotes.
Ip nhrp holdtime 600
Ip mtu 1400
SPOKE-FLO
interface GigabiEthernet 0/1
description LAN-Network
ip address [Link] [Link]
duplex auto
speed auto
!
interface GigabiEthernet 0/0.2000
description WAN-Network
ip address [Link] [Link]
duplex auto
speed auto
!
interface Tunnel0
description FLO tnel mGRE - DMVPN
ip address [Link]
no ip redirects
# Desativa os redirecionamentos... Ex. redirecionamento ICMP
ip nhrp authentication sec@sync
# Autenticao para consultas e atualizao no banco de dados
NHRP, garante que consultas indesejadas no forneam dados sobre
toda a rede.
ip nhrp map multicast dynamic
# Permite o encaminhamento de trfego multicast. Normalmente
exigido pelo OSPF e EIGRP, utilizamos protocolos dinmicos para
enviar e receber atualizaes de redes internas.
ip nhrp map multicast [Link]
# garante o trfego multicast enviado apenas a partir de spoke
para o HUB centro e nunca entre spokes. Todo o trfego multicast
deve ser recebido pelo hub, processados e, em seguida, as
atualizaes so enviadas para os spokes.
ip nhrp nhs [Link]
# Define o endereo para o NHS (Next Hop Server).
ip nhrp map [Link] [Link]
# Mapeia o endereo pblico para o endereo associado no NHS.
ip nhrp network-id 1
# Identifica a nuvem DMVPN, todos os roteadores devem estar com o
mesmo ID para estabelecimento de VPN.
tunnel source GigabiEthernet 0/0.2000
tunnel mode gre multipoint
# Interfaces tnel mGRE no tem um destino definido. Este tipo de
tnel utiliza o NHRP para definio do destino dizendo para onde o
mGRE deve enviar os pacotes.
Ip nhrp holdtime 600
Ip mtu 1400
SPOKE-GOI
interface GigabiEthernet 0/0
description LAN-Network
ip address [Link] [Link]
duplex auto
speed auto
!
interface GigabiEthernet 0/1.2000
description WAN-Network
ip address [Link] [Link]
duplex auto
speed auto
!
interface Tunnel0
description FLO tnel mGRE - DMVPN
ip address [Link]
no ip redirects
# Desativa os redirecionamentos... Ex. redirecionamento ICMP
ip nhrp authentication sec@sync
# Autenticao para consultas e atualizao no banco de dados
NHRP, garante que consultas indesejadas no forneam dados sobre
toda a rede.
ip nhrp map multicast dynamic
# Permite o encaminhamento de trfego multicast. Normalmente
exigido pelo OSPF e EIGRP, utilizamos protocolos dinmicos para
enviar e receber atualizaes de redes internas.
ip nhrp map multicast [Link]
# garante o trfego multicast enviado apenas a partir de spoke
para o HUB centro e nunca entre spokes. Todo o trfego multicast
deve ser recebido pelo hub, processados e, em seguida, as
atualizaes so enviadas para os spokes.
ip nhrp nhs [Link]
# Define o endereo para o NHS (Next Hop Server).
ip nhrp map [Link] [Link]
# Mapeia o endereo pblico para o endereo associado no NHS.
ip nhrp network-id 1
# Identifica a nuvem DMVPN, todos os roteadores devem estar com o
mesmo ID para estabelecimento de VPN.
tunnel source GigabiEthernet 0/0.2000
tunnel mode gre multipoint
# Interfaces tnel mGRE no tem um destino definido. Este tipo de
tnel utiliza o NHRP para definio do destino dizendo para onde o
mGRE deve enviar os pacotes.
Ip nhrp holdtime 600
Ip mtu 1400
Verificao DMVPN
#HUB
RT101#show dmvpn
Legend: Attrb --> S - Static, D - Dynamic, I - Incomplete
N - NATed, L - Local, X - No Socket
# Ent --> Number of NHRP entries with same NBMA peer
NHS Status: E --> Expecting Replies, R --> Responding
UpDn Time --> Up or Down Time for a Tunnel
==================================================
========================
Interface: Tunnel0, IPv4 NHRP Details
Type:Hub, NHRP Peers:2,
# Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb
----- --------------- --------------- ----- -------- ----1 [Link] [Link] UP [Link]
D
1 [Link] [Link] UP [Link]
D
#SPOKE
RTO-INT-CATFLO# show dmvpn
Legend: Attrb --> S - Static, D - Dynamic, I - Incomplete
N - NATed, L - Local, X - No Socket
# Ent --> Number of NHRP entries with same NBMA peer
NHS Status: E --> Expecting Replies, R --> Responding
UpDn Time --> Up or Down Time for a Tunnel
==================================================
==========
Interface: Tunnel0, IPv4 NHRP Details
Type:Spoke, NHRP Peers:1,
# Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb
----- --------------- --------------- ----- -------- ----1 [Link] [Link] UP [Link]
S
#SPOKE
RTO_INT_CATGOI#show dmvpn
Legend: Attrb --> S - Static, D - Dynamic, I - Incomplete
N - NATed, L - Local, X - No Socket
# Ent --> Number of NHRP entries with same NBMA peer
NHS Status: E --> Expecting Replies, R --> Responding
UpDn Time --> Up or Down Time for a Tunnel
==================================================
==========
Interface: Tunnel0, IPv4 NHRP Details
Type:Spoke, NHRP Peers:1,
# Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb
----- --------------- --------------- ----- -------- ----1 [Link] [Link] UP [Link]
S
Configurao
mGRE
IPSEC
sobre
DMVPN
Tnel
#HUB
crypto isakmp policy 1
encr aes 256
hash sha
authentication pre-share
lifetime 86400
group 2
crypto isakmp key #88TS@DMVPN [Link] [Link]
# Caso trabalhemos com conceito de peer dinmico, no nosso modelo
definiremos o peer manualmente, como segue...
crypto isakmp key #88TS@DMVPN address [Link]
# SPOKE Florianpolis
crypto isakmp key #88TS@DMVPN address [Link]
# SPOKE Goiania
crypto ipsec transform-set DMVPN esp-aes esp-sha-hmac
crypto ipsec profile DMVPN
set security-association lifetime seconds 86400
set transform-set DMVPN
interface tunnel 0
tunnel protection ipsec profile DMVPN
#SPOKE
crypto isakmp policy 1
encr aes 256
hash sha
authentication pre-share
lifetime 86400
group 2
crypto isakmp key #88TS@DMVPN [Link] [Link]
# Caso trabalhemos com conceito de peer dinmico, no nosso modelo
definiremos o peer manualmente, como segue...
crypto isakmp key #88TS@DMVPN address [Link]
# HUB Data Center
crypto ipsec transform-set DMVPN esp-aes esp-sha-hmac
crypto ipsec profile DMVPN
set security-association lifetime seconds 86400
set transform-set DMVPN
interface tunnel 0
tunnel protection ipsec profile DMVPN
Verificao ISKMP/IPSEC
#HUB
sh crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst
src
state
conn-id status
[Link] [Link] QM_IDLE
1002 ACTIVE
[Link] [Link] QM_IDLE
1001 ACTIVE
IPv6 Crypto ISAKMP SA
sh crypto ipsec sa peer [Link]
interface: Tunnel0
Crypto map tag: Tunnel0-head-0, local addr [Link]
protected vrf: (none)
local ident (addr/mask/prot/port): ([Link]/[Link]/47/0 )
remote ident (addr/mask/prot/port): ([Link]/[Link]/47/0 )
current_peer [Link] port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 1, #pkts encrypt: 1, #pkts digest: 1
#pkts decaps: 2, #pkts decrypt: 2, #pkts verify: 2
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 1, #recv errors 0
local crypto endpt.: [Link], remote crypto endpt.: [Link]
path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/1
current outbound spi: 0xADFF9FE5(2919210981)
PFS (Y/N): N, DH group: none
inbound esp sas:
spi: 0xF564F058(4117033048)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2003, flow_id: FPGA:3, sibling_flags 80000046, crypto map: Tunnel0head-0
sa timing: remaining key lifetime (k/sec): (4538901/86210)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0xADFF9FE5(2919210981)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2004, flow_id: FPGA:4, sibling_flags 80000046, crypto map: Tunnel0head-0
sa timing: remaining key lifetime (k/sec): (4538901/86210)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
outbound ah sas:
outbound pcp sas:
sh crypto ipsec sa peer [Link]
interface: Tunnel0
Crypto map tag: Tunnel0-head-0, local addr [Link]
protected vrf: (none)
local ident (addr/mask/prot/port): ([Link]/[Link]/47/0 )
remote ident (addr/mask/prot/port): ([Link]/[Link]/47/0 )
current_peer [Link] port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 1, #pkts encrypt: 1, #pkts digest: 1
#pkts decaps: 1, #pkts decrypt: 1, #pkts verify: 1
#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.: [Link], remote crypto endpt.: [Link]
path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/1
current outbound spi: 0x6F4A8838(1867155512)
PFS (Y/N): N, DH group: none
inbound esp sas:
spi: 0xECDD5F37(3973930807)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2001, flow_id: FPGA:1, sibling_flags 80000046, crypto map: Tunnel0-
head-0
sa timing: remaining key lifetime (k/sec): (4574706/85998)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0x6F4A8838(1867155512)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2002, flow_id: FPGA:2, sibling_flags 80000046, crypto map: Tunnel0head-0
sa timing: remaining key lifetime (k/sec): (4574706/85998)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
outbound ah sas:
outbound pcp sas:
#SPOKE
RTO_INT_CATGOI#sh crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst
src
state
conn-id status
[Link] [Link] QM_IDLE
IPv6 Crypto ISAKMP SA
1001 ACTIVE
RTO_INT_CATGOI#sh crypto ipsec sa
interface: Tunnel0
Crypto map tag: Tunnel0-head-0, local addr [Link]
protected vrf: (none)
local ident (addr/mask/prot/port): ([Link]/[Link]/47/0 )
remote ident (addr/mask/prot/port): ([Link]/[Link]/47/0 )
current_peer [Link] port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 2, #pkts encrypt: 2, #pkts digest: 2
#pkts decaps: 1, #pkts decrypt: 1, #pkts verify: 1
#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.: [Link], remote crypto endpt.: [Link]
path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet0/1.2000
current outbound spi: 0xF564F058(4117033048)
PFS (Y/N): N, DH group: none
inbound esp sas:
spi: 0xADFF9FE5(2919210981)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2001, flow_id: Onboard VPN:1, sibling_flags 80000046, crypto map:
Tunnel0-head-0
sa timing: remaining key lifetime (k/sec): (4595799/86159)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0xF564F058(4117033048)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2002, flow_id: Onboard VPN:2, sibling_flags 80000046, crypto map:
Tunnel0-head-0
sa timing: remaining key lifetime (k/sec): (4595799/86159)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
outbound ah sas:
outbound pcp sas:
RTO-INT-CATFLO#sh crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst
src
state
conn-id status
[Link] [Link] QM_IDLE
IPv6 Crypto ISAKMP SA
1001 ACTIVE
RTO-INT-CATFLO#sh crypto ipsec sa
interface: Tunnel0
Crypto map tag: Tunnel0-head-0, local addr [Link]
protected vrf: (none)
local ident (addr/mask/prot/port): ([Link]/[Link]/47/0 )
remote ident (addr/mask/prot/port): ([Link]/[Link]/47/0 )
current_peer [Link] port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 1, #pkts encrypt: 1, #pkts digest: 1
#pkts decaps: 1, #pkts decrypt: 1, #pkts verify: 1
#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.: [Link], remote crypto endpt.: [Link]
path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet0/0.2000
current outbound spi: 0xECDD5F37(3973930807)
PFS (Y/N): N, DH group: none
inbound esp sas:
spi: 0x6F4A8838(1867155512)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2001, flow_id: Onboard VPN:1, sibling_flags 80000046, crypto map:
Tunnel0-head-0
sa timing: remaining key lifetime (k/sec): (4531643/85916)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0xECDD5F37(3973930807)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2002, flow_id: Onboard VPN:2, sibling_flags 80000046, crypto map:
Tunnel0-head-0
sa timing: remaining key lifetime (k/sec): (4531643/85916)
Roteamento
#HUB
ip route [Link] [Link] [Link]
ip route [Link] [Link] [Link]
#SPOKE FLO
Ip route [Link] [Link] [Link]
ip route [Link] [Link] [Link]
#SPOKE-GOI
Ip route [Link] [Link] [Link]
ip route [Link] [Link] [Link]
Verificao roteamento
#SPOKE FLO
RTO-INT-CATFLO#sh dmvpn
Legend: Attrb --> S - Static, D - Dynamic, I - Incomplete
N - NATed, L - Local, X - No Socket
# Ent --> Number of NHRP entries with same NBMA peer
NHS Status: E --> Expecting Replies, R --> Responding
UpDn Time --> Up or Down Time for a Tunnel
==================================================
========================
Interface: Tunnel0, IPv4 NHRP Details
Type:Spoke, NHRP Peers:2,
# Ent Peer NBMA Addr Peer Tunnel Add State UpDn Tm Attrb
----- --------------- --------------- ----- -------- ----1 [Link] [Link] UP [Link]
S
1 [Link] [Link] UP [Link] DX