Aller au contenu principal

2.23. Traversée NAT

2.23. Traversée NAT​

Cette section décrit les mécanismes que les implémentations IKEv2 DOIVENT prendre en charge pour assurer l'interopérabilité à travers les NAT (Network Address Translators). Les noms des messages, des transformations et des notifications définis dans cette section figurent dans l'IANA "IKEv2 Parameters" registry (voir la section 2.23.4).

2.23.1. Détection des capacités NAT​

Lorsque les deux pairs prennent en charge la traversée NAT, ils DEVRAIENT inclure le payload Notification NAT_DETECTION_SOURCE_IP ou NAT_DETECTION_DESTINATION_IP dans les messages IKE_SA_INIT. L'initiateur et le répondeur DEVRAIENT envoyer le payload NAT_DETECTION_SOURCE_IP. L'initiateur DEVRAIT envoyer le payload NAT_DETECTION_DESTINATION_IP, et le répondeur DEVRAIT l'envoyer si son adresse a changé depuis l'envoi du message IKE_SA_INIT.

Le contenu de ces payloads Notification est le hachage suivant des adresses et ports source ou destination du paquet :

NAT_DETECTION_SOURCE_IP = HASH(Address of Initiator | Port of Initiator) NAT_DETECTION_DESTINATION_IP = HASH(Address of Responder | Port of Responder)

où l'adresse et le port sont ceux utilisés pour envoyer le paquet contenant le message IKE_SA_INIT, et l'algorithme de hachage est le prf défini par le Groupe de Transformation de Pseudo-aléatoire du Proposition 2.1.1. L'utilisation de prf comme fonction de hachage garantit que seules les parties en possession de la clé SK_e peuvent vérifier ces valeurs.

Si les hachages calculés par l'initiateur et le répondeur diffèrent, on suppose qu'un NAT est présent. Si les hachages correspondent, on suppose qu'aucun NAT n'est présent.

2.23.2. Paramètres de traversée NAT​

Si un NAT est détecté, ou que les pairs s'attendent à en rencontrer un, les paramètres suivants s'appliquent :

o Les messages IKE DOIVENT être envoyés sur UDP port 4500.

o Les messages IKE DOIVENT être encapsulés dans UDP avec un en-tête qui inclut quatre octets de zéros comme préfixe.

o Les payloads ESP et AH DOIVENT être encapsulés dans UDP (c'est-à-dire, traversée NAT UDPESP, [UDPENCAP]).

o Les implémentations DOIVENT être prêtes à recevoir des messages IKE sur UDP port 4500 avec ou sans le préfixe de quatre zéros, mais DEVRAIENT accepter les messages sur le port 500 ou 4500 sans préfixe.

2.23.3. Traitement des modifications d'adresse​

Si une implémentation reçoit un paquet sur une adresse ou un port différents de ceux attendus, elle DOIT traiter cela comme une indication de changement d'adresse. Elle DEVRAIT ensuite envoyer des notifications NAT_DETECTION_SOURCE_IP et NAT_DETECTION_DESTINATION_IP pour détecter tout changement et, si nécessaire, mettre à jour ses informations d'adressage.

Si une implémentation détecte que l'adresse de l'homologue a changé, elle DEVRAIT envoyer un message INFORMATIONAL avec un payload Notify de type NAT_DETECTION_DESTINATION_IP pour informer l'homologue du nouveau hachage d'adresse de destination.

2.23.4. Enregistrements IANA​

L'IANA a créé des registres pour les messages de traversée NAT et les notifications associées, comme décrit dans [IKEV2IANA]. Les implémentations DOIVENT utiliser les types de notification et les numéros de message définis dans ces registres.