Ce document fournit des informations sur la fonctionnalité de flux tunnelés IPSec persistants et sur la façon de conserver le flux TCP lors de la perturbation d'un tunnel VPN.
Les lecteurs de ce document doivent avoir une compréhension de base du fonctionnement du VPN. Référez-vous à ces documents pour plus d'informations :
Les informations de ce document sont basées sur l'appliance de sécurité adaptative (ASA) Cisco avec les versions 8.2 et ultérieures.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Pour plus d'informations sur les conventions utilisées dans ce document, reportez-vous à Conventions relatives aux conseils techniques Cisco.
Comme le montre le schéma de réseau, la succursale (BO) est connectée au siège social (HO) via le VPN site à site. Prenons l'exemple d'un utilisateur final de la succursale qui tente de télécharger un fichier volumineux à partir du serveur situé au siège social. Le téléchargement dure des heures. Le transfert de fichiers fonctionne correctement jusqu'à ce que le VPN fonctionne correctement. Cependant, lorsque le VPN est perturbé, le transfert de fichiers est suspendu et l'utilisateur doit relancer la demande de transfert de fichiers à partir du début après l'établissement du tunnel.
Ce document utilise la configuration réseau suivante :
Ce problème est dû à la fonctionnalité intégrée du fonctionnement de l'ASA. L'ASA surveille chaque connexion qui la traverse et met à jour une entrée dans sa table d'état selon la fonction d'inspection d'applications. Les détails chiffrés du trafic qui traversent le VPN sont mis à jour sous forme de base de données de l'association de sécurité (SA). Pour le scénario de ce document, il gère deux flux de trafic différents. L'une est le trafic chiffré entre les passerelles VPN et l'autre est le flux de trafic entre le serveur du siège social et l'utilisateur final de la succursale. Quand la commexion VPN se termine, les détails d'écoulement pour cette SA particulière sont supprimés. Cependant, l'entrée du tableau d'état mis à jour par l'ASA pour cette connexion TCP devient éventée en raison de l'absence d'activité, qui entrave le téléchargement. Ceci signifie que l'ASA retiendra toujours la connexion TCP pour ce flux particulier tandis que l'application utilisateur se termine. Cependant, les connexions TCP deviendront erratiques et éventuellement s'interrompre après que le seuil du délai d'inactivité TCP est franchi.
Ce problème a été résolu en introduisant une caractéristique appelée flux IPSec en tunnel persistents. Une nouvelle commande a été intégrée dans Cisco ASA pour conserver les informations de la table d'état lors de la renégociation du tunnel VPN. La commande est affichée ici :
sysopt connection preserve-vpn-flows
Par défaut, cette commande est désactivée. En activant cette option, Cisco ASA conserve les informations de la table d'état TCP lorsque le VPN L2L récupère de la perturbation et rétablit le tunnel.
Dans ce scénario, cette commande doit être activée aux deux extrémités du tunnel. S'il s'agit d'un périphérique autre que Cisco à l'autre extrémité, l'activation de cette commande sur Cisco ASA devrait suffire. Si la commande est activée lorsque les tunnels étaient déjà actifs, les tunnels doivent être effacés et rétablis pour que cette commande prenne effet. Pour plus de détails sur le déblaiement et le rétablissement des tunnels, reportez-vous à Effacer les associations de sécurité.
Cette fonctionnalité a été introduite dans le logiciel Cisco ASA version 8.0.4 et ultérieure. Ceci est pris en charge uniquement pour ces types de VPN :
Tunnels LAN à LAN
Tunnels d'accès à distance en mode d'extension réseau (NEM)
Cette fonctionnalité n'est pas prise en charge pour ces types de VPN :
Tunnels d'accès à distance IPSec en mode client
Tunnels VPN AnyConnect ou SSL
Cette fonctionnalité n'existe pas sur ces plates-formes :
Cisco PIX avec la version logicielle 6.0
Concentrateurs VPN Cisco
Plates-formes Cisco IOS®
L'activation de cette fonctionnalité ne crée pas de surcharge supplémentaire sur le traitement du processeur interne de l'ASA, car elle va conserver les mêmes connexions TCP que le périphérique lorsque le tunnel est actif.
Remarque : cette commande s'applique uniquement aux connexions TCP. Il n'a aucun effet sur le trafic UDP. Les connexions UDP expireront en fonction du délai d'attente configuré.
Remarque : utilisez l'outil de recherche de commandes (clients enregistrés uniquement) pour obtenir plus d'informations sur les commandes utilisées dans cette section.
Cette section vous fournit des informations pour configurer les fonctionnalités décrites dans ce document.
Ce document utilise la configuration suivante :
CiscoASA
Voici un exemple de résultat de configuration en cours du pare-feu Cisco ASA à une extrémité du tunnel VPN :
CiscoASA |
---|
ASA Version 8.2(1) ! hostname CiscoASA domain-name example.com enable password <removed> passwd <removed> names ! interface Ethernet0/0 speed 100 duplex full nameif outside security-level 0 ip address 209.165.201.2 255.255.255.248 ! interface Ethernet0/1 nameif inside security-level 100 ip address 10.224.9.5 255.255.255.0 ! interface Ethernet0/2 shutdown no nameif no security-level no ip address ! ! interface Management0/0 nameif management security-level 100 ip address 10.224.14.10 255.255.255.0 ! boot system disk0:/asa822-k8.bin ftp mode passive !---Output Suppressed ! access-list test extended permit ip 10.224.228.0 255.255.255.128 any access-list test extended permit ip 10.224.52.0 255.255.255.128 any access-list 100 extended permit ip 10.224.228.0 255.255.255.128 any access-list 100 extended permit ip 10.224.52.0 255.255.255.128 any access-list inside_access_out extended permit ip any 10.224.228.0 255.255.255.1 ! !---Output Suppressed global (outside) 1 interface nat (inside) 0 access-list test nat (inside) 1 10.224.10.0 255.255.255.0 ! !---Output Suppressed route inside 10.0.0.0 255.0.0.0 10.224.9.1 1 route outside 0.0.0.0 255.255.255.255 209.165.201.1 1 timeout xlate 3:00:00 timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02 timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00 timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00 timeout sip-provisional-media 0:02:00 uauth 0:05:00 absolute timeout tcp-proxy-reassembly 0:01:00 dynamic-access-policy-record DfltAccessPolicy ! !---Output Suppressed http server idle-timeout 40 http 10.224.3.0 255.255.255.0 management http 0.0.0.0 0.0.0.0 inside ! snmp-server enable traps snmp authentication linkup linkdown coldstart ! !--- To preserve and resume stateful (TCP) tunneled IPsec LAN-to-LAN traffic within the timeout period after the tunnel drops and recovers. sysopt connection preserve-vpn-flows service resetoutside ! crypto ipsec transform-set ESP-AES-256-MD5 esp-aes-256 esp-md5-hmac crypto ipsec transform-set testSET esp-3des esp-md5-hmac crypto map map1 5 match address 100 crypto map map1 5 set peer 209.165.200.10 crypto map map1 5 set transform-set testSET crypto map map1 interface outside crypto isakmp enable outside crypto isakmp policy 5 authentication pre-share encryption 3des hash sha group 2 lifetime 86400 crypto isakmp policy 10 authentication pre-share encryption des hash sha group 2 lifetime 86400 !---Output Suppressed ! telnet timeout 5 ssh timeout 5 console timeout 0 threat-detection basic-threat threat-detection statistics access-list ! !---Output Suppressed ! tunnel-group 209.165.200.10 type ipsec-l2l tunnel-group 209.165.200.10 ipsec-attributes pre-shared-key * !---Output Suppressed class-map inspection_default match default-inspection-traffic ! policy-map type inspect dns preset_dns_map parameters message-length maximum 512 policy-map global_policy class inspection_default inspect dns preset_dns_map inspect ftp inspect h323 h225 inspect h323 ras inspect rsh inspect rtsp inspect esmtp inspect sqlnet inspect skinny inspect sunrpc inspect xdmcp inspect sip inspect netbios inspect tftp ! service-policy global_policy global prompt hostname state Cryptochecksum:5c228e7131c169f913ac8198ecf8427e : end |
Par défaut, cette fonction est désactivée. Cette commande peut être activée à l'aide de l'interface de ligne de commande de l'ASA :
CiscoASA(config)#sysopt connection preserve-vpn-flows
Vous pouvez afficher ce message à l'aide de cette commande :
CiscoASA(config)#show run all sysopt no sysopt connection timewait sysopt connection tcpmss 1380 sysopt connection tcpmss minimum 0 sysopt connection permit-vpn sysopt connection reclassify-vpn sysopt connection preserve-vpn-flows no sysopt nodnsalias inbound no sysopt nodnsalias outbound no sysopt radius ignore-secret no sysopt noproxyarp outside
Lorsque vous utilisez l'ASDM, cette fonctionnalité peut être activée en suivant le chemin suivant :
Configuration > Remote Access VPN > Network (Client) Access > Advanced > IPsec > System Options.
Ensuite, cochez l'option Préserver les flux VPN avec état lorsque le tunnel tombe en mode d'extension réseau (NEM).
Référez-vous à cette section pour vous assurer du bon fonctionnement de votre configuration.
L'Outil Interpréteur de sortie (clients enregistrés uniquement) (OIT) prend en charge certaines commandes show. Utilisez l'OIT pour afficher une analyse de la sortie de la commande show .
show asp table vpn-context detail - Affiche le contenu du contexte VPN du chemin de sécurité accéléré, qui peut vous aider à résoudre un problème. Voici un exemple de sortie de la commande show asp table vpn-context lorsque la fonction de flux tunnellisés IPSec persistants est activée. Notez qu'il contient un indicateur PRESERVE spécifique.
CiscoASA(config)#show asp table vpn-context VPN CTX=0x0005FF54, Ptr=0x6DE62DA0, DECR+ESP+PRESERVE, UP, pk=0000000000, rk=0000000000, gc=0 VPN CTX=0x0005B234, Ptr=0x6DE635E0, ENCR+ESP+PRESERVE, UP, pk=0000000000, rk=0000000000, gc=0
Dans cette section, certains contournements sont présentés afin d'éviter le battement des tunnels. Les avantages et les inconvénients des solutions de contournement sont également détaillés.
Vous pouvez faire en sorte qu'un tunnel VPN reste en vie pendant une durée infinie, mais pas pour renégocier, en conservant la valeur de durée de vie IKE à zéro. Les informations relatives à la SA sont conservées par les homologues VPN jusqu'à l'expiration de la durée de vie. En attribuant une valeur égale à zéro, vous pouvez faire durer cette session IKE pour toujours. Par ce biais, vous pouvez éviter les problèmes de déconnexion de flux intermittents lors du recadrage du tunnel. Pour cela, utilisez la commande suivante :
CiscoASA(config)#crypto isakmp policy 50 lifetime 0
Cependant, ceci présente un inconvénient spécifique en termes de compromission du niveau de sécurité du tunnel VPN. La recopie de la session IKE dans des intervalles de temps spécifiés fournit plus de sécurité au tunnel VPN en termes de clés de chiffrement modifiées à chaque fois et il devient difficile pour un intrus de décoder les informations.
Remarque : la désactivation de la durée de vie IKE ne signifie pas que le tunnel ne recouvre pas du tout la clé. Néanmoins, l'association de sécurité IPSec retouche la clé à l'intervalle de temps spécifié, car elle ne peut pas être définie sur zéro. La valeur de durée de vie minimale autorisée pour une SA IPSec est de 120 secondes et la valeur maximale est de 214783647 secondes. Pour plus d'informations à ce sujet, référez-vous à durée de vie de SA IPSec.
Lorsque cette fonctionnalité n'est pas utilisée dans la configuration, Cisco ASA renvoie ce message de journal lorsque le tunnel VPN est interrompu :
%ASA-6-302014 : Arrêter la connexion TCP 57983 pour outside:XX.XX.XX.XX/80 à inside:10.0.0.100/1135 durée 0:00:36 octets 53947 Le tunnel a été désactivé
Vous pouvez voir que la raison en est que le tunnel a été détruit.
Remarque : la journalisation de niveau 6 doit être activée pour afficher ce message.
L'option préserver-vpn-flow est utilisée lorsqu'un tunnel rebondit. Cela permet à un flux TCP précédent de rester ouvert de sorte que lorsque le tunnel redémarre, le même flux peut être utilisé.
Lorsque la commande sysopt connection reclassify-vpn est utilisée, elle efface tout flux précédent qui se rapporte au trafic tunnelisé et classe le flux pour passer par le tunnel. L'option reclassify-vpn est utilisée dans une situation où un flux TCP a déjà été créé qui n'est pas lié au VPN. Cela crée une situation où le trafic ne traverse pas le tunnel après l'établissement du VPN. Pour plus d'informations à ce sujet, référez-vous à sysopt reclassify-vpn.
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
27-May-2011 |
Première publication |