Aller au contenu principal

2.19. Requesting an Internal Address on a Remote Network (Adresse interne sur un réseau distant)

2.19. Requesting an Internal Address on a Remote Network (Adresse interne sur un réseau distant)

Souvent dans le scénario endpoint-passerelle, un endpoint peut avoir besoin d'une adresse IP dans le réseau protégé par la passerelle, avec attribution dynamique. Une demande peut être incluse dans toute création de Child SA (y compris la demande implicite du message 3) via une charge CP. Habituellement une seule adresse est assignée pendant IKE_AUTH; elle dure au moins jusqu'à la suppression de l'IKE SA.

Cette fonction attribue des adresses à un client d'accès distant IPsec (IRAC) tunnelant vers un serveur d'accès distant IPsec (IRAS). Comme IKE_AUTH crée IKE SA et Child SA, l'IRAC DOIT demander l'adresse contrôlée par l'IRAS (et optionnellement d'autres informations) dans IKE_AUTH. L'IRAS peut obtenir l'adresse via DHCP/BOOTP ou un pool local.

Initiator                         Responder
-------------------------------------------------------------------
HDR, SK {IDi, [CERT,]
[CERTREQ,] [IDr,] AUTH,
CP(CFG_REQUEST), SAi2,
TSi, TSr} -->
<-- HDR, SK {IDr, [CERT,] AUTH,
CP(CFG_REPLY), SAr2,
TSi, TSr}

La charge CP DOIT précéder la charge SA. S'il y a plusieurs IKE_AUTH, les CP DOIVENT être dans les messages contenant les SA.

CP(CFG_REQUEST) DOIT contenir au moins INTERNAL_ADDRESS (IPv4 ou IPv6) et PEUT contenir d'autres attributs à retourner.

Exemple initiateur→répondant:

CP(CFG_REQUEST)=
INTERNAL_ADDRESS()
TSi = (0, 0-65535, 0.0.0.0-255.255.255.255)
TSr = (0, 0-65535, 0.0.0.0-255.255.255.255)

NOTE: les sélecteurs de trafic = (protocole, plage de ports, plage d'adresses).

Répondant→initiateur:

CP(CFG_REPLY)=
INTERNAL_ADDRESS(192.0.2.202)
INTERNAL_NETMASK(255.255.255.0)
INTERNAL_SUBNET(192.0.2.0/255.255.255.0)
TSi = (0, 0-65535, 192.0.2.202-192.0.2.202)
TSr = (0, 0-65535, 192.0.2.0-192.0.2.255)

Les valeurs dépendent de l'implémentation. L'IRAS PEUT envoyer des attributs non demandés et PEUT ignorer les attributs non obligatoires non supportés.

Le répondant NE DOIT PAS envoyer CFG_REPLY sans avoir reçu CP(CFG_REQUEST), pour éviter une recherche de configuration inutile si l'IRAC ne peut pas traiter la réponse.

Si la configuration de l'IRAS exige CP pour un IDi donné mais l'IRAC n'a pas envoyé CP(CFG_REQUEST), l'IRAS DOIT échouer avec FAILED_CP_REQUIRED. Ce n'est pas fatal pour l'IKE SA; seule la création de Child SA échoue. L'initiateur peut corriger plus tard. Aucune donnée associée à FAILED_CP_REQUIRED.