IPsec HA Stateful Failover HSRP-SSO
Après la haute disponibilité Stateless du dernier article, voyons maintenant la haute disponibilité Stateful.
Nous allons pour cela utiliser les protocoles HSRP (Hot Standby Routing Protocol) et SSO (Stateful Switchover).
Etant donnée que les transitions d’états ne sont pas assez fiables, le stateful failover n’est pas prêt pour le monde réel.
Je n’ai d’ailleurs pas encore réussi à faire fonctionner SSO sous Dynagen (à cause des reload successifs et du fait que le routeur ne garde pas sa configuration suite à cela, donc si quelqu’un sait faire, laissez un commentaire).
Cet article va présenter les étapes à suivre pour mettre en place ce système, et les vérifications/troubleshooting viendront dans un second temps, je mettrai la configuration en place sur le Lab. de PacketLife. Je mettrai à jour l’article au fur et à mesure si besoin après les essai sur le Lab réel.
3 Grandes étapes dans la mise en place du Stateful Failover:
- HSRP
- SSO
- IPsec
Les configurations tiennent compte de la topologie suivante:
Un site distant (Routeur A) tente de se connecter au HQ représenté par les deux routeurs B et C.
Le Tunnel IPsec aura pour endpoint l’adresse HSRP virtuelle du HQ, et les paramètre de la session IPsec seront partagés entre B et C grâce à SSO.
1 – HSRP
HSRP permet de déterminer quel sera le routeur Actif qui terminera le tunnel IPsec.
Le plus important sera de bien définir l’IP Virtuelle, ici 172.20.1.5, ainsi qu’un nom de groupe HSRP, qui servira à mapper SSO sur HSRP.
Le nom de notre groupe sera vpn-remote.
B(config)#interface f0/1 B(config-if)#ip address 172.20.1.1 255.255.255.0 B(config-if)#standby 1 ip 172.20.1.5 B(config-if)#standby 1 priority 150 B(config-if)#standby 1 preempt B(config-if)#standby 1 name vpn-remote B(config-if)#no sh C(config)#interface f0/1 C(config-if)#ip address 172.20.1.2 255.255.255.0 C(config-if)#standby 1 ip 172.20.1.5 C(config-if)#standby 1 priority 100 C(config-if)#standby 1 preempt C(config-if)#standby 1 name vpn-remote C(config-if)#no sh
Pour vérifier l’état de notre configuration HSRP, vous pouvez entrer la commande “show standby”
B#show standby
2 – SSO
SSO synchronise les deux routeurs afin que ceux-ci puissent partager des infos IPsec et IKE.
On commence par activer la redondance pour notre groupe HSRP (vpn-remote).
B(config)#redundancy inter-device B(config-red-interdevice)#scheme standby vpn-remote C(config)#redundancy inter-device C(config-red-interdevice)#scheme standby vpn-remote
Après avoir entré ces commandes, un message doit apparaitre sur un des deux routeurs
(Celui qui est en mode HSRP “Standby”) Ce routeur aura besoin d’être redémarré afin que la redondance puisse être active.
% Standby scheme configuration cannot be processed now group vpn-remote is not in active state
Dans un deuxième temps, on défini l’association IPC (Inter-process Communication).
B(config)# ipc zone default B(config-ipczone)# association 1 B(config-ipczone)# no shutdown B(config-ipczone-assoc)# protocol ? sctp SCTP transport configuration B(config-ipczone-assoc)# protocol sctp B(config-ipc-protocol-sctp)# local-port 5005 B(config-ipc-local-sctp)# local-ip 172.20.1.1 B(config-ipc-local-sctp)# exit B(config-ipc-protocol-sctp)# remote-port 5005 B(config-ipc-remote-sctp)# remote-ip 172.20.1.2 C(config)# ipc zone default C(config-ipczone)# association 1 C(config-ipczone)# no shutdown C(config-ipczone-assoc)# protocol ? sctp SCTP transport configuration C(config-ipczone-assoc)# protocol sctp C(config-ipc-protocol-sctp)# local-port 5005 C(config-ipc-local-sctp)# local-ip 172.20.1.2 C(config-ipc-local-sctp)# exit C(config-ipc-protocol-sctp)# remote-port 5005 c(config-ipc-remote-sctp)# remote-ip 172.20.1.1
Maintenant, les routeurs B et C doivent être redémarrés afin que la redondance puisse être active.
B(config)#reload C(config)#reload
Le routeur en standby doit de nouveau être redémarré quand vous avez le message suivant:
%RF_INTERDEV-4-RELOAD: % RF induced self-reload. my state = NEGOTIATION peer state = STANDBY COLD
(Il s’agit normalement du routeur C, d’après la configuration HSRP précédente)
Maintenant que nos associations sont faites, il ne reste qu’a mettre en place notre tunnel IPsec.
3 – IPsec
Dans cette partie, je vous donne les configurations, brutes, nous ne revoyons pas le détail d’IPsec.
IKE & ISAKMP
Routeurs B et C:
crypto isakmp policy 1 authentication pre-share crypto isakmp key cisco address 192.168.0.1 ! crypto ipsec transform-set MYTR esp-aes esp-sha-hmac
Routeur A:
crypto isakmp policy 1 authentication pre-share crypto isakmp key cisco address 172.20.1.5 ! crypto ipsec transform-set MYTR esp-aes esp-sha-hmac
CRYPTO MAPS
Un point important de la crypto map des routeurs B et C est le RRI, mis en place avec la commande reverse-route. RRI pour Reverse Route Injection permet aux routeurs centraux d’apprendre les bonnes routes pour joindre l’équipement actif. Quand le Failover est en place, le routeur actif (B ou C) injecte les routes RRI dans sa table de routage et les envoi à ses voisins.
Routeurs B et C:
ip access-list extended vpn-remote-acl permit ip 172.20.1.0 0.0.0.255 192.168.0.0 0.0.0.255 ! crypto map vpn-remote-map 10 ipsec-isakmp set peer 192.168.0.1 set transform-set MYTR match address vpn-remote-acl reverse-route
Routeur A:
ip access-list extended local-acl permit ip 192.168.0.0 0.0.0.255 172.20.1.0 0.0.0.255 ! crypto map local-map 10 ipsec-isakmp set peer 172.20.1.5 set transform-set MYTR match address local-acl
Application des crypto map aux interfaces
Routeur A:
R1(config)#interface f0/0 R1(config-if)#crypto map local-map
routeur B et C:
R1(config)#interface f0/1 R1(config-if)#crypto map vpn-remote-map redundancy vpn-remote stateful
4 – Vérifications / Troubleshooting
Wait & see…
######################################
Configurations globales des 3 routeurs
######################################
ROUTEUR A
hostname A interface f0/0 ip add 192.168.0.1 255.255.255.0 crypto map local-map no shut interface f0/1 ip add 10.10.1.1 255.255.255.0 no shut crypto isakmp policy 1 authentication pre-share crypto isakmp key cisco address 172.20.1.5 ! crypto ipsec transform-set MYTR esp-aes esp-sha-hmac ip access-list extended local-acl permit ip 192.168.0.0 0.0.0.255 172.20.1.0 0.0.0.255 ! crypto map local-map 10 ipsec-isakmp set peer 10.0.0.15 set transform-set MYTR match address local-acl router rip version 2 network 192.168.0.0 network 172.20.1.0
ROUTEUR B
hostname B Interface f0/1 ip address 172.20.1.1 255.255.255.0 standby 1 ip 172.20.1.5 standby 1 priority 150 standby 1 preempt standby 1 name vpn-remote no sh crypto map vpn-remote-map redundancy vpn-remote stateful interface f0/0 ip add 192.168.0.2 255.255.255.0 no shut redundancy inter-device scheme standby vpn-remote ! ipc zone default association 1 no shutdown protocol sctp local-port 5005 local-ip 172.20.1.1 remote-port 5005 remote-ip 172.20.1.2 crypto isakmp policy 1 authentication pre-share crypto isakmp key cisco address 192.168.0.1 ! crypto ipsec transform-set MYTR esp-aes esp-sha-hmac ip access-list extended vpn-remote-acl permit ip 172.20.1.0 0.0.0.255 192.168.0.0 0.0.0.255 ! crypto map vpn-remote-map 10 ipsec-isakmp set peer 172.16.0.18 set transform-set MYTR match address vpn-remote-acl reverse-route router rip version 2 network 192.168.0.0 network 172.20.1.0
ROUTEUR C
hostname C Interface f0/1 ip address 172.20.1.2 255.255.255.0 no shut standby 1 ip 172.20.1.5 standby 1 priority 100 standby 1 preempt standby 1 name vpn-remote crypto map vpn-remote-map redundancy vpn-remote stateful interface f0/0 ip add 192.168.0.3 255.255.255.0 no shut redundancy inter-device scheme standby vpn-remote ! ipc zone default association 1 no shutdown protocol sctp local-port 5005 local-ip 172.20.1.2 remote-port 5005 remote-ip 172.20.1.1 crypto isakmp policy 1 authentication pre-share crypto isakmp key cisco address 192.168.0.1 ! crypto ipsec transform-set MYTR esp-aes esp-sha-hmac ip access-list extended vpn-remote-acl permit ip 172.20.1.0 0.0.0.255 192.168.0.0 0.0.0.255 ! crypto map vpn-remote-map 10 ipsec-isakmp set peer 172.16.0.18 set transform-set MYTR match address vpn-remote-acl reverse-route router rip version 2 network 192.168.0.0 network 172.20.1.0
Ressource:
http://www.cisco.com/en/US/docs/ios/12_3t/12_3t11/feature/guide/gt_topht.html
One Comment
Comments are Disabled
Hi. I am a long time reader. I wanted to say that I like your blog and the layout.
Peter Quinn