• Français
Accueil arrow Articles arrow Routeur arrow Le DMVPN
10-03-2010
 
 
Le Laboratoire
forum
Menu principal
Accueil
News
Tips
Articles
Liens
Letterman Subscribe




Le DMVPN
Écrit par DELOURME Olivier   
27-09-2009

Il est devenu aisé de créer des réseaux virtuels privé IPsec (VPN IPsec). Cependant, ce type de configuration souffre de certaines limitations concernant leur administration ainsi que leur maintenance, notamment des suivantes.

 

En premier lieu, à chaque ajout de nouveaux sites, il faut non seulement configurer les équipements sur les sites distants mais également apporter des modifications conséquentes à la configuration des équipements en production du site principal. La configuration de ce dernier site peut, à partir de quelques sites distants, devenir rapidement illisible, ce qui présente un réel problème d’évolutivité. 

De plus, s’il est nécessaire d’introduire la communication inter-site dans le but d’obtenir un réseau virtuel privé totalement maillé (dit « full meshed ») en liaisons IPsec, le nombre de tunnels à créer augmente de manière considérable et à chaque ajout d’un nouvel équipement, il faudra modifier à nouveau la configuration de chaque routeur.

 

Les VPNs IPsec multipoints dynamiques (Dynamic Multipoint VPN, DMVPN) permettent de déployer rapidement un grand nombre de sites de manière sécurisée et évolutive. DMVPN correspond en fait à un ensemble de technologies telles qu’IPsec, mGRE et NHRP qui, combinées, facilitent le déploiement de réseaux privés virtuels IPsec. De ce fait, DMVPN permet de résoudre les deux problèmes cités précédemment : d’une part, la configuration du site principal une fois établie demeurera inchangée, mais d’autre part, la création des tunnels entre site distants se fait de manière entièrement automatisée et dynamique.

 

1-      Présentation des différentes technologies utilisées :

 

DMVPN et en fait une combinaison des technologies suivantes :

-          IPsec

Le protocole IPsec va nous permettre de chiffrer les informations qui transiteront entre les sites.  

-          mGRE (mutipoint Generic Routing Encapsulation)

GRE permet d’encapsuler des paquets multicast dans un tunnel.

Le « m » signifie que les tunnels créés entre les sites seront multipoint, c'est-à-dire que pour chaque interface « tunnel » d’un routeur, plusieurs tunnels seront attribués.

-          NHRP(Next Hop Resolution Protocol)

Ce protocole permet aux sites distants de faire connaitre l’adresse IP de l’interface servant à monter le tunnel GRE avec le serveur. Le serveur conservera cette information pour tous les sites distants, afin de leur permettre d’obtenir l’adresse de leur voisin pour monter des tunnels directs.

-          OSPF(Open Shortest Path First)

OSPF (protocole de routage) permet aux sites distants d’annoncer leur réseau local au site central, et au site central de propager la totalité de ces routes aux sites distants.

-          Hub et Spoke

Les sites sont appelés « hub » ou « spoke », selon qu’ils jouent respectivement le rôle de site central ou de site distant. Le site central (hub) fait office de serveur NHRP et de routeur principal (Designated Router) OSPF. 

 

2-      Mise en situation

 

Nous allons configurer un hub et 2 spokes passant par internet (simulé pour un routeur).

 

  dmvpn_topologie.jpg

 

-          Configuration d’ « Internet »

 

Configuration des interfaces

Internet>enable

Internet #conf t

Internet (config)#int F0/0

Internet (config-if)#ip address 80.0.0.11 255.255.255.0

Internet (config-if)#no sh

Internet (config-if)#exit

Internet (config)#int F1/0

Internet (config-if)#ip address 192.168.1.11 255.255.255.0

Internet (config-if)#no sh

Internet (config-if)#exit

Internet (config)#int F2/0

Internet (config-if)#ip address 172.16.1.12 255.255.255.0

Internet (config-if)#no sh

Internet (config-if)#exit

 

 

 

-          Configuration du Hub

 

Configuration de l’interface F0/0

HUB>enable

HUB#conf t

HUB(config)#int F0/0

HUB(config-if)#ip address 80.0.0.1 255.255.255.0

HUB(config-if)#no sh

HUB(config-if)#exit

 

 

Création de la police isakmp et de la clé pré-share

!on active isakmp

HUB(config)#crypto isakmp enable

HUB(config)#crypto isakmp policy 1

!utilisation d’une clé pré-share

HUB(config-isakmp)#authentication pre-share

HUB(config-isakmp)#exit

!définition de la clé pré-share en ne précisant pas un peer IPsec spécial afin qu’elle soit utilisée par tous les peers qui contactent le hub et puissent créer un tunnel.

HUB(config)#crypto isakmp key 0 cisco address 0.0.0.0 0.0.0.0

 

 

Création et configuration du profil IPsec

!création de la transform-set IPSec

HUB(config)#crypto ipsec transform-set dmvpnset esp-3des esp-md5-hmac

HUB(cfg-crypto-trans)#mode transport

HUB(config)#crypto ipsec profile ipsec_profil

!on associe la transform-set au profil créé

HUB(config-crypto-map)#set transform-set dmvpnset

 

 

Configuration de l’interface du tunnel

HUB(config)#int tunnel 0

!définition de l’ip de l’interface du tunnel

HUB(config-if)# ip address 10.0.0.1 255.255.255.0

!définition de la bande passante

HUB(config-if)# bandwidth 1000

!définition du mtu (Maximum Transmission Unit)

HUB(config-if)# ip mtu 1400

HUB(config-if)# delay 1000

HUB(config-if)# ip nhrp holdtime 450

!configure la clé d’authencification nhrp de l’interface

HUB(config-if)# ip nhrp authentication nhrp_key

!autorise nhrp à ajouter automatiquement des spokes au mapping nhrp multicast

HUB(config-if)# ip nhrp map multicast dynamic

!active nhrp sur l’interface

HUB(config-if)# ip nhrp network-id 99

!ajuste le mss (Maximum Segment Size)     

HUB(config-if)# ip tcp adjust-mss 1360

!définition de l’interface source pour l’interface du tunnel

HUB(config-if)# tunnel source F0/0

HUB(config-if)# tunnel key 100000

!définition du mode d’encapsulation à mGRE pour l’interface du tunnel

HUB(config-if)# tunnel mode gre multipoint

!associe le profil IPsec à l’interface du tunnel

HUB(config-if)# tunnel protection ipsec profile ipsec_profil

 

 

Déclaration des networks OSPF

HUB(config)#router ospf 10

HUB(router-config)#network 10.0.0.0 0.0.0.255 area 100

 

Création de la route vers « Internet »

HUB(config)#ip route 0.0.0.0 0.0.0.0 80.0.0.11

 

 

-          Configuration des spokes

 

Configuration de l’interface F1/0

Les commandes suivantes sont à exécuter sur chaque spoke.

 

Spoke S1

S1>enable

S1#conf t

S1(config)#int F1/0

S1(config-if)#ip address 192.168.1.101 255.255.255.0

S1(config-if)#no sh

S1(config-if)#exit

 

Spoke S2

S2>enable

S2#conf t

S2(config)#int F1/0

S2(config-if)#ip address 172.16.1.2 255.255.255.0

S2(config-if)#no sh

S2(config-if)#exit

 

 

 

Création de la clé pré-share (identique sur S1 et S2)

S1(config)#crypto isakmp enable

S1(config)#crypto isakmp policy 1

S1(config-isakmp)#authentication pre-share

S1(config-isakmp)#exit

S1(config)#crypto isakmp key 0 cisco address 0.0.0.0 0.0.0.0

 

 

 

Création et configuration du profil IPsec (identique sur S1 ou S2)

S1(config)#crypto ipsec transform-set dmvpnset esp-3des esp-md5-hmac

S1(config)#mode transport

S1(config)#crypto ipsec profile ipsec_profil

S1(config-crypto-map)#set transform-set dmvpnset

 

 

Configuration de l’interface du tunnel

 

Spoke S1

S1(config)#int tunnel 0

S1(config-if)# ip address 10.0.0.2 255.255.255.0

S1(config-if)# bandwidth 1000

S1(config-if)# ip mtu 1400

S1(config-if)# delay 1000

S1(config-if)# ip nhrp holdtime 450

S1(config-if)# ip nhrp authentication nhrp_key

!définition du serveur nhrp au hub 10.0.0.1 mappé sur l’adresse fixe 80.0.0.1

S1(config-if)# ip nhrp map 10.0.0.1 80.0.0.1

!envoi des parquets multicast au hub, activation du routage dynamique entre hub et spokes

S1(config-if)# ip nhrp map multicast 80.0.0.1

!configure le hub comme nhrp next hop serveur

S1(config-if)#ip nhrp nhs 10.0.0.1

S1(config-if)# ip nhrp network-id 99

S1(config-if)# ip tcp adjust-mss 1360

S1(config-if)# tunnel source F1/0

S1(config-if)# tunnel key 100000

S1(config-if)# tunnel mode gre multipoint

S1(config-if)# tunnel protection ipsec profile ipsec_profil

 

 

Spoke S2

S2(config)#int tunnel 0

S2(config-if)# ip address 10.0.0.3 255.255.255.0

S2(config-if)# bandwidth 1000

S2(config-if)# ip mtu 1400

S2(config-if)# delay 1000

S2(config-if)# ip nhrp holdtime 450

S2(config-if)# ip nhrp authentication nhrp_key

S2(config-if)# ip nhrp map 10.0.0.1 80.0.0.1

S2(config-if)# ip nhrp map multicast 80.0.0.1

S2(config-if)#ip nhrp nhs 10.0.0.1

S2(config-if)# ip nhrp network-id 99

S2(config-if)# ip tcp adjust-mss 1360

S2(config-if)# tunnel source F1/0

S2(config-if)# tunnel key 100000

S2(config-if)# tunnel mode gre multipoint

S2(config-if)# tunnel protection ipsec profile ipsec_profil

 

 

 

 

Déclaration des networks OSPF(identique sur S1 et S2)

S1(config)#router ospf 10

S1(router-config)#network 10.0.0.0 0.0.0.255 area 100

 

 

Création de la route vers “Internet”

 

Spoke S1

S1(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.11

 

Spoke S2

S2(config)#ip route 0.0.0.0 0.0.0.0 172.16.1.12

 

Dernière mise à jour : ( 27-09-2009 )
 
Suivant >
CLTE - Moteur de tests en ligne
Le CLTE est le moteur de tests en ligne du Laboratoire SUPINFO des Technologies Cisco.
Connectez-vous ! Création d'un compte gratuit
 
Top! Top!