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

Benoit

Network engineer at CNS Communications. CCIE #47705, focused on R&S, Data Center, SD-WAN & Automation.

More Posts - Website

Follow Me:
TwitterLinkedIn

One Comment

  1. Peter Quinn 30 décembre 2009

    Hi. I am a long time reader. I wanted to say that I like your blog and the layout.

    Peter Quinn

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *