|
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).
-
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
|