
Aujourd’hui je vais rapidement vous montrer comment mettre en place un système de VPN qui va monter dynamiquement les tunnels entre les équipements en fonction de la demande.
Pour cela nous allons utiliser la technologie DMVPN de chez CISCO.
Présentation rapide du DMVPN
Le DMVPN peut être mis en place sur un ensemble de routeurs interconnectés. L’un des routeurs endossera le rôle de « HUB » et les autres prendront le rôle de « SPOKE« .
Les modèles de déploiement
- Hub-and-Spoke : Un DMVPN Hub-and-Spoke nécessite que chaque SPOKE possède une interface GRE point-à-point utilisé pour monter le tunnel vers le HUB. Tout le trafic entre les SPOKE doit passer par le HUB. Ce modèle permet une forte évolutivité de la configuration mais ne permet pas l’établissement d’un lien Spoke-to-Spoke.
- Spoke-to-Spoke : Un DMVPN Spoke-to-Spoke nécessite que chaque SPOKE possède une interface mGRE (m = multipoint) dans laquelle va transiter les tunnels dynamique vers les autres SPOKE. Ce modèle fournit une forte évolutivité de la configuration pour l’ensemble des périphériques et permet l’établissement de liens Spoke-to-Spoke.
Les bénéfices du DMVPN
- Réduction de la configuration sur le routeur HUB : Un VPN IPSec traditionnel nécessite la configuration des caractéristiques de la crypto map, de l’ACL crypto ainsi que l’interface tunnel GRE pour chaque SPOKE distant. Avec DMVPN, il suffit de créer une seule interface mGRE ainsi qu’une seule politique IPSec. Il n’y a pas besoin d’ACL crypto sur le routeur HUB. Ainsi lorsque l’on ajoute un nouveau SPOKE, la configuration du routeur HUB est très peu impactée.
- Initiation IPSec automatique : GRE se base sur le protocole NHRP (Next Hop Resolution Protocol) pour configurer et déterminer les adresses de destination des autres pairs. Cela permet à IPSec de se lancer et de créer dynamiquement un tunnel GRE point-à-point ainsi que de commencer à négocier les sessions IPSec sans configuration traditionnelle.
- Support des routeurs configurés avec des Spoke en adressage dynamique : Un VPN IPSec Hub-and-Spoke traditionnel nécessite que les hôtes aient une adresse IP statique. DMVPN permet aux SPOKE de posséder une adresse IP dynamique car il utilise le protocole NHRP pour déterminer l’adresse IP de l’interface du SPOKE distant via le routeur HUB.
Mise en place du DMVPN
Voici tout d’abord à quoi ressemble notre maquette qui nous permettra de mettre en place du DMVPN Spoke-to-Spoke :
Etape 0 : Quelques précisions avant de commencer
Pour que tout fonctionne correctement il faut :
- Que la politique IKE (crypto isakmp policy) soit identique sur chacun des routeurs.
- Que la politique IPSec (crypto ipsec transform-set) soit identique sur chacun des routeurs.
- Que le protocole de routage OSPF soit configuré de façon cohérente, c’est à dire que le réseau WAN (172.16.0.0/24) soit déclaré dans une area différente des réseaux LAN (192.168.x.0/24) et du réseau utilisé pour les tunnels VPN (10.0.0.0/24). En effet, si cette condition n’est pas remplie, vos tunnels VPN risquent d’avoir une connexion instable.
Etape 1 : Configuration initiale
HUB Rouen :
interface FastEthernet0/0 ip address 172.16.0.254 255.255.255.0 no cdp enable ! interface FastEthernet0/1 ip address 192.168.0.254 255.255.255.0 ! interface Loopback0 ip address 10.0.100.254 255.255.255.255
SPOKE Paris :
interface FastEthernet0/0 ip address 172.16.0.1 255.255.255.0 no cdp enable ! interface FastEthernet0/1 ip address 192.168.1.254 255.255.255.0 ! interface Loopback0 ip address 10.0.100.1 255.255.255.255
SPOKE Lyon :
interface FastEthernet0/0 ip address 172.16.0.2 255.255.255.0 no cdp enable ! interface FastEthernet0/1 ip address 192.168.2.254 255.255.255.0 ! interface Loopback0 ip address 10.0.100.2 255.255.255.255
Etape 2 : Configuration du HUB Rouen
crypto isakmp policy 10 authentication pre-share hash md5 group 5 lifetime 3600 encryption 3des ! crypto isakmp key cisco123 address 172.16.0.0 255.255.255.0 ! crypto ipsec transform-set AES-SHA1 esp-aes esp-sha-hmac ! crypto ipsec profile DMVPN-PROFILE set transform-set AES-SHA1 ! interface Tunnel0 ip address 10.0.0.254 255.255.255.0 no ip redirects ip mtu 1440 ip tcp adjust-mss 1360 ip nhrp map multicast dynamic ip nhrp network-id 1 ip nhrp authentication azerty30 tunnel key 0 tunnel source fastethernet 0/0 tunnel mode gre multipoint tunnel protection ipsec profile DMVPN-PROFILE ip ospf network broadcast ip ospf priority 255 ! router ospf 1 router-id 10.0.100.254 network 172.16.0.0 0.0.0.255 area 0 network 10.0.0.0 0.0.0.255 area 1 network 192.168.0.0 0.0.0.255 area 1
Etape 3 : Configuration du SPOKE Paris
crypto isakmp policy 10 authentication pre-share hash md5 group 5 lifetime 3600 encryption 3des ! crypto isakmp key cisco123 address 172.16.0.0 255.255.255.0 ! crypto ipsec transform-set AES-SHA1 esp-aes esp-sha-hmac ! crypto ipsec profile DMVPN-PROFILE set transform-set AES-SHA1 ! interface Tunnel0 ip address 10.0.0.1 255.255.255.0 no ip redirects ip mtu 1440 ip tcp adjust-mss 1360 ip nhrp map 10.0.0.254 172.16.0.254 ip nhrp map multicast 172.16.0.254 ip nhrp network-id 1 ip nhrp authentication azerty30 tunnel key 0 ip nhrp nhs 10.0.0.254 tunnel source fastethernet 0/0 tunnel mode gre multipoint tunnel protection ipsec profile DMVPN-PROFILE ip ospf network broadcast ip ospf priority 0 ! router ospf 1 router-id 10.0.100.1 network 172.16.0.0 0.0.0.255 area 0 network 10.0.0.0 0.0.0.255 area 1 network 192.168.1.0 0.0.0.255 area 1
Etape 4 : Configuration du SPOKE Lyon
crypto isakmp policy 10 authentication pre-share hash md5 group 5 lifetime 3600 encryption 3des ! crypto isakmp key cisco123 address 172.16.0.0 255.255.255.0 ! crypto ipsec transform-set AES-SHA1 esp-aes esp-sha-hmac ! crypto ipsec profile DMVPN-PROFILE set transform-set AES-SHA1 ! interface Tunnel0 ip address 10.0.0.2 255.255.255.0 no ip redirects ip mtu 1440 ip tcp adjust-mss 1360 ip nhrp map 10.0.0.254 172.16.0.254 ip nhrp map multicast 172.16.0.254 ip nhrp network-id 1 ip nhrp authentication azerty30 tunnel key 0 ip nhrp nhs 10.0.0.254 tunnel source fastethernet 0/0 tunnel mode gre multipoint tunnel protection ipsec profile DMVPN-PROFILE ip ospf network broadcast ip ospf priority 0 ! router ospf 1 router-id 10.0.100.2 network 172.16.0.0 0.0.0.255 area 0 network 10.0.0.0 0.0.0.255 area 1 network 192.168.2.0 0.0.0.255 area 1
Etape finale : Vérifications
Pour vérifier que tout fonctionne correctement, vous pouvez effectuer des captures de paquets par le biais du logiciel Wireshark, ce qui vous permettra d’apercevoir des paquets ESP (Encapsulating Security Payload) transitant entre les différents routeurs pour les communications Lan-to-Lan.
Les commandes suivantes pourront vous permettre de déboguer vos équipements en cas de problèmes :
- Vérifier l’état de l’IKE entre le HUB et les SPOKE en utilisant la commande « show isakmp crypto sa » et la commande « ping« .
- Vérifier le bon fonctionnement du NHRP, du GRE et de l’IPSec en utilisant la commande « debug dmvpn detail all« .
- Vérifier le routage au travers du DMVPN en utilisant la commande « sh ip route« .