draft-ietf-ipsecme-ikev2-redirect-07.txt | draft-ietf-ipsecme-ikev2-redirect-08.txt | |||
---|---|---|---|---|
Network Working Group V. Devarapalli | Network Working Group V. Devarapalli | |||
Internet-Draft WiChorus | Internet-Draft WiChorus | |||
Intended status: Standards Track K. Weniger | Intended status: Standards Track K. Weniger | |||
Expires: October 10, 2009 April 8, 2009 | Expires: October 15, 2009 April 13, 2009 | |||
Redirect Mechanism for IKEv2 | Redirect Mechanism for IKEv2 | |||
draft-ietf-ipsecme-ikev2-redirect-07.txt | draft-ietf-ipsecme-ikev2-redirect-08.txt | |||
Status of this Memo | Status of this Memo | |||
This Internet-Draft is submitted to IETF in full conformance with the | This Internet-Draft is submitted to IETF in full conformance with the | |||
provisions of BCP 78 and BCP 79. This document may not be modified, | provisions of BCP 78 and BCP 79. This document may not be modified, | |||
and derivative works of it may not be created, except to format it | and derivative works of it may not be created, except to format it | |||
for publication as an RFC or to translate it into languages other | for publication as an RFC or to translate it into languages other | |||
than English. | than English. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
skipping to change at page 1, line 35 | skipping to change at page 1, line 35 | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
This Internet-Draft will expire on October 10, 2009. | This Internet-Draft will expire on October 15, 2009. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2009 IETF Trust and the persons identified as the | Copyright (c) 2009 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents in effect on the date of | Provisions Relating to IETF Documents in effect on the date of | |||
publication of this document (http://trustee.ietf.org/license-info). | publication of this document (http://trustee.ietf.org/license-info). | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
skipping to change at page 2, line 21 | skipping to change at page 2, line 21 | |||
is being shut down for maintenance to redirect the VPN client to | is being shut down for maintenance to redirect the VPN client to | |||
attach to another gateway. This document proposes a redirect | attach to another gateway. This document proposes a redirect | |||
mechanism for IKEv2. The proposed mechanism can also be used in | mechanism for IKEv2. The proposed mechanism can also be used in | |||
Mobile IPv6 to enable the home agent to redirect the mobile node to | Mobile IPv6 to enable the home agent to redirect the mobile node to | |||
another home agent. | another home agent. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3. IKEv2 Exchange with Redirect . . . . . . . . . . . . . . . . . 4 | 3. IKEv2 Initial Exchange with Redirect . . . . . . . . . . . . . 4 | |||
4. Use of Anycast Addresses with the Redirect Mechanism . . . . . 5 | 4. Use of Anycast Addresses with the Redirect Mechanism . . . . . 5 | |||
5. Gateway Initiated Redirect . . . . . . . . . . . . . . . . . . 6 | 5. Gateway Initiated Redirect . . . . . . . . . . . . . . . . . . 6 | |||
6. Redirect Messages . . . . . . . . . . . . . . . . . . . . . . 7 | 6. Redirect During IKE_AUTH Exchange . . . . . . . . . . . . . . 7 | |||
6.1. REDIRECT_SUPPORTED . . . . . . . . . . . . . . . . . . . . 8 | 7. Redirect Messages . . . . . . . . . . . . . . . . . . . . . . 8 | |||
6.2. REDIRECT . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 7.1. REDIRECT_SUPPORTED . . . . . . . . . . . . . . . . . . . . 8 | |||
6.3. REDIRECTED_FROM . . . . . . . . . . . . . . . . . . . . . 9 | 7.2. REDIRECT . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
7. Use of the Redirect Mechanism between IKEv2 Peers . . . . . . 10 | 7.3. REDIRECTED_FROM . . . . . . . . . . . . . . . . . . . . . 10 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 8. Use of the Redirect Mechanism between IKEv2 Peers . . . . . . 10 | |||
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | |||
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 11 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | |||
11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
11.1. Normative References . . . . . . . . . . . . . . . . . . . 12 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
11.2. Informative References . . . . . . . . . . . . . . . . . . 12 | 12.1. Normative References . . . . . . . . . . . . . . . . . . . 12 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 12 | 12.2. Informative References . . . . . . . . . . . . . . . . . . 12 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13 | ||||
1. Introduction | 1. Introduction | |||
IKEv2 [2] is used for setting up IPsec-based VPNs. The IP address of | IKEv2 [2] is used for setting up IPsec-based VPNs. The IP address of | |||
the VPN gateway can be configured on the VPN client. But this does | the VPN gateway can be configured on the VPN client. But this does | |||
not scale well, when the number of VPN gateways is large. Dynamic | not scale well, when the number of VPN gateways is large. Dynamic | |||
discovery of VPN gateways using DNS is quite widely used too. | discovery of VPN gateways using DNS is quite widely used too. | |||
However, using DNS is not flexible when it comes to assigning a VPN | However, using DNS is not flexible when it comes to assigning a VPN | |||
gateway to the VPN client based on the load on the VPN gateways. The | gateway to the VPN client based on the load on the VPN gateways. The | |||
VPN client typically tries to connect to the IP address of the VPN | VPN client typically tries to connect to the IP address of the VPN | |||
gateways that appears first in the DNS response. If the VPN tunnel | gateways that appears first in the DNS response. If the VPN tunnel | |||
setup fails, then the VPN client tries to attach to the other VPN | setup fails, then the VPN client tries to attach to the other VPN | |||
gateways returned in the DNS response. | gateways returned in the DNS response. | |||
This document proposes a redirect mechanism for IKEv2 that enables a | This document proposes a redirect mechanism for IKEv2 that enables a | |||
VPN gateway to redirect the VPN client to another VPN gateway, for | VPN gateway to redirect the VPN client to another VPN gateway, for | |||
example, based on the load condition. The redirect can be done | example, based on the load condition. The redirect can be done | |||
during during the IKE_SA_INIT or the IKE_AUTH exchange. Gateway- | during the IKE_SA_INIT or the IKE_AUTH exchange. Gateway-initiated | |||
initiated redirect in the middle of a session is also supported. The | redirect in the middle of a session is also supported. The redirect | |||
redirect mechanism can also be used in conjunction with anycast | mechanism can also be used in conjunction with anycast addresses. In | |||
addresses. In this case, anycast address for the cluster of VPN | this case, anycast address for the cluster of VPN gateways is stored | |||
gateways is stored in the DNS instead of a list of unicast IP | in the DNS instead of a list of unicast IP addresses of the VPN | |||
addresses of the VPN gateways. | gateways. | |||
The redirect can also happen because of administrative or optimal | The redirect can also happen because of administrative or optimal | |||
routing reasons. This document does not attempt to provide an | routing reasons. This document does not attempt to provide an | |||
exhaustive list of reasons for redirecting a VPN client to another | exhaustive list of reasons for redirecting a VPN client to another | |||
VPN gateway. | VPN gateway. | |||
Mobile IPv6 [3] may use IKEv2 for mutual authentication between the | Mobile IPv6 [3] may use IKEv2 for mutual authentication between the | |||
mobile node and the home agent. IKEv2 may also be used for home | mobile node and the home agent. IKEv2 may also be used for home | |||
address configuration and setting up IPsec security associations for | address configuration and setting up IPsec security associations for | |||
protecting Mobile IPv6 signaling messages [4]. The IKEv2 exchange | protecting Mobile IPv6 signaling messages [4]. The IKEv2 exchange | |||
precedes the exchange of Mobile IPv6 signaling messages. Therefore | precedes the exchange of Mobile IPv6 signaling messages. Therefore | |||
the mechanism described in this document can be also be used by a | the mechanism described in this document can also be used by a Mobile | |||
Mobile IPv6 home agent to redirect a mobile node to another home | IPv6 home agent to redirect a mobile node to another home agent. | |||
agent. | ||||
There is a Home Agent Switch mechanism available for redirecting a | There is a Home Agent Switch mechanism available for redirecting a | |||
mobile node to another home agent, described in [5]. The Home Agent | mobile node to another home agent, described in [5]. The Home Agent | |||
Switch mechanism can only be used after the binding cache had been | Switch mechanism can only be used after the binding cache had been | |||
created at the home agent for the mobile node. The disadvantage with | created at the home agent for the mobile node. The disadvantage with | |||
this is that quite a bit of state is created on the home agent before | this is that quite a bit of state is created on the home agent before | |||
the mobile node can be redirected to another home agent. The | the mobile node can be redirected to another home agent. The | |||
mechanism described in this document can be used for redirecting a | mechanism described in this document can be used for redirecting a | |||
mobile node before any state related to the Mobile IPv6 binding is | mobile node before any state related to the Mobile IPv6 binding is | |||
created on the home agent. | created on the home agent. | |||
2. Terminology | 2. Terminology | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in [1]. | document are to be interpreted as described in [1]. | |||
3. IKEv2 Exchange with Redirect | 3. IKEv2 Initial Exchange with Redirect | |||
This section describes the use of Redirect mechanism during the | ||||
IKE_SA_INIT exchange. Gateway-initiated redirect and the use of | ||||
redirect during IKE_AUTH exchange are explained in subsequent | ||||
sections. | ||||
To redirect an IKEv2 session to another VPN gateway, the VPN gateway | To redirect an IKEv2 session to another VPN gateway, the VPN gateway | |||
that initially received the IKE_SA_INIT request selects another VPN | that initially received the IKE_SA_INIT request selects another VPN | |||
gateway and responds to the VPN client with a REDIRECT Notification | gateway and responds to the VPN client with a REDIRECT Notification | |||
payload. The mechanism by which the initial VPN gateway selects | payload. The mechanism by which the initial VPN gateway selects | |||
another VPN gateway is out of scope for this document. The IP | another VPN gateway is out of scope for this document. The IP | |||
address of the selected VPN gateway is sent in the REDIRECT payload. | address of the selected VPN gateway is sent in the REDIRECT payload. | |||
The gateway MUST include the nonce data from the Ni payload sent by | The gateway MUST include the nonce data from the Ni payload sent by | |||
the initiator in the REDIRECT payload. This prevents certain Denial- | the initiator in the REDIRECT payload. This prevents certain Denial- | |||
of-Service attacks on the initiator that could be caused by an | of-Service attacks on the initiator that could be caused by an | |||
attacker injecting IKE_SA_INIT responses with REDIRECT payloads. | attacker injecting IKE_SA_INIT responses with REDIRECT payloads. | |||
The VPN client indicates support for the IKEv2 redirect mechanism by | The VPN client indicates support for the IKEv2 redirect mechanism and | |||
including a REDIRECT_SUPPORTED notification message in the initial | the willingness to be redirected by including a REDIRECT_SUPPORTED | |||
IKE_SA_INIT request. If the IKE_SA_INIT request did not include the | notification message in the initial IKE_SA_INIT request. If the | |||
REDIRECT_SUPPORTED payload, the responder MUST NOT send the REDIRECT | IKE_SA_INIT request did not include the REDIRECT_SUPPORTED payload, | |||
payload to the VPN client. | the responder MUST NOT send the REDIRECT payload to the VPN client. | |||
Initiator Responder (initial VPN GW) | Initiator Responder (initial VPN GW) | |||
--------- ------------------------- | --------- ------------------------- | |||
(IP_I:500 -> Initial_IP_R:500) | (IP_I:500 -> Initial_IP_R:500) | |||
HDR(A,0), SAi1, KEi, Ni, --> | HDR(A,0), SAi1, KEi, Ni, --> | |||
N(REDIRECT_SUPPORTED) | N(REDIRECT_SUPPORTED) | |||
(Initial_IP_R:500 -> IP_I:500) | (Initial_IP_R:500 -> IP_I:500) | |||
<-- HDR(A,0), N(REDIRECT, IP_R) | <-- HDR(A,0), N(REDIRECT, IP_R) | |||
When the VPN client receives the IKE_SA_INIT response with the | When the VPN client receives the IKE_SA_INIT response with the | |||
REDIRECT payload, it initiates a new IKE_SA_INIT exchange with the | REDIRECT payload, it initiates a new IKE_SA_INIT exchange with the | |||
VPN gateway listed in the REDIRECT payload. The VPN client includes | VPN gateway listed in the REDIRECT payload provided this is allowed | |||
the IP address of the original VPN gateway that redirected the | by its IPsec policy. The VPN client includes the IP address of the | |||
client. The IKEv2 exchange then proceeds as normal with the selected | original VPN gateway that redirected the client. The IKEv2 exchange | |||
VPN gateway. | then proceeds as normal with the selected VPN gateway. | |||
Initiator Responder (Selected VPN GW) | Initiator Responder (Selected VPN GW) | |||
--------- --------------------------- | --------- --------------------------- | |||
(IP_I:500 -> IP_R:500) | (IP_I:500 -> IP_R:500) | |||
HDR(A,0), SAi1, KEi, Ni, --> | HDR(A,0), SAi1, KEi, Ni, --> | |||
N(REDIRECTED_FROM, Initial_IP_R) | N(REDIRECTED_FROM, Initial_IP_R) | |||
(IP_R:500 -> IP_I:500) | (IP_R:500 -> IP_I:500) | |||
<-- HDR(A,B), SAr1, KEr, Nr,[CERTREQ] | <-- HDR(A,B), SAr1, KEr, Nr,[CERTREQ] | |||
(IP_I:500 -> IP_R:500) | (IP_I:500 -> IP_R:500) | |||
HDR(A,B), SK {IDi, [CERT,] [CERTREQ,] | HDR(A,B), SK {IDi, [CERT,] [CERTREQ,] | |||
[IDr,]AUTH, SAi2, TSi, TSr} --> | [IDr,]AUTH, SAi2, TSi, TSr} --> | |||
(IP_R:500 -> IP_I:500) | (IP_R:500 -> IP_I:500) | |||
<-- HDR(A,B), SK {IDr, [CERT,] AUTH, | <-- HDR(A,B), SK {IDr, [CERT,] AUTH, | |||
SAr2, TSi, TSr} | SAr2, TSi, TSr} | |||
When this mechanism is used with Mobile IPv6, a mobile node's | When this mechanism is used with Mobile IPv6, care must be taken to | |||
security associations with its home agent may expire while it still | ensure that the home agent information is consistent with the IKEv2 | |||
has a valid binding cache entry at the home agent. In this case, the | gateway information. The Mobile IPv6 home agent discovery mechanisms | |||
mobile node MUST NOT use the original home agent address as the | (for instance, RFC 5026 [4]) would have configured the mobile node | |||
destination address in the IKE_SA_INIT exchange to setup new security | with a particular home agent. When the mobile node initiates an | |||
associations. It MUST try to setup security associations with its | IKEv2 exchange with the home agent and is redirected to another | |||
existing home agent. | gateway, the home agent information should also be updated, subject | |||
to the policy on the mobile node. | ||||
4. Use of Anycast Addresses with the Redirect Mechanism | 4. Use of Anycast Addresses with the Redirect Mechanism | |||
The use of anycast addresses will avoid having to configure a | The use of anycast addresses will avoid having to configure a | |||
particular VPN gateway's IP address in the DNS. Instead, the anycast | particular VPN gateway's IP address in the DNS. Instead, the anycast | |||
address that represents the group of VPN gateways is stored in the | address that represents the group of VPN gateways is stored in the | |||
DNS. When the VPN client performs a DNS lookup for the VPN gateway, | DNS. When the VPN client performs a DNS lookup for the VPN gateway, | |||
it receives the anycast address of the VPN gateway in the DNS | it receives the anycast address of the VPN gateway in the DNS | |||
response. | response. | |||
skipping to change at page 7, line 11 | skipping to change at page 7, line 11 | |||
Once the client sends an acknowledgement to the gateway, it SHOULD | Once the client sends an acknowledgement to the gateway, it SHOULD | |||
delete the existing security associations with the old gateway by | delete the existing security associations with the old gateway by | |||
sending an Informational message with a DELETE payload. The gateway | sending an Informational message with a DELETE payload. The gateway | |||
MAY also decide to delete the security associations without any | MAY also decide to delete the security associations without any | |||
signaling from the client, again by sending an Informational message | signaling from the client, again by sending an Informational message | |||
with a DELETE payload. However, it should allow sufficient time for | with a DELETE payload. However, it should allow sufficient time for | |||
the client to setup the required security associations with the new | the client to setup the required security associations with the new | |||
security gateway. This time period should be configurable on the | security gateway. This time period should be configurable on the | |||
gateway. | gateway. | |||
6. Redirect During IKE_AUTH Exchange | ||||
If the gateway decides to redirect the client during the IKE_AUTH | If the gateway decides to redirect the client during the IKE_AUTH | |||
exchange, based on the identity presented by the client in the | exchange, based on the identity presented by the client in the | |||
IKE_AUTH request message, it prevents the creation of a CHILD SA and | IKE_AUTH request message, it prevents the creation of a CHILD SA and | |||
sends the REDIRECT payload in the IKE_AUTH response. When the client | sends the REDIRECT payload in the IKE_AUTH response. When the client | |||
receives the IKE_AUTH response with the REDIRECT payload, it SHOULD | receives the IKE_AUTH response with the REDIRECT payload, it SHOULD | |||
delete the existing IKEv2 security association with the gateway. | delete the existing IKEv2 security association with the gateway. The | |||
gateway MUST verify the client's AUTH payload before sending the | ||||
Redirect payload, and the client MUST verify the gateway's AUTH | ||||
payload before acting on the Redirect payload. | ||||
Initiator Responder ( VPN GW) | Initiator Responder ( VPN GW) | |||
--------- ------------------- | --------- ------------------- | |||
(IP_I:500 -> IP_R:500) | (IP_I:500 -> IP_R:500) | |||
HDR(A,0), SAi1, KEi, Ni, --> | HDR(A,0), SAi1, KEi, Ni, --> | |||
N(REDIRECTED_SUPPORTED) | N(REDIRECTED_SUPPORTED) | |||
(IP_R:500 -> IP_I:500) | (IP_R:500 -> IP_I:500) | |||
<-- HDR(A,B), SAr1, KEr, Nr,[CERTREQ] | <-- HDR(A,B), SAr1, KEr, Nr,[CERTREQ] | |||
skipping to change at page 7, line 46 | skipping to change at page 8, line 4 | |||
In case the IKE_AUTH exchange involves EAP authentication as | In case the IKE_AUTH exchange involves EAP authentication as | |||
described in Section 2.16 of RFC 4306 [2] or multiple authentication | described in Section 2.16 of RFC 4306 [2] or multiple authentication | |||
methods as described in RFC 4739 [6], the IKE_AUTH exchange is more | methods as described in RFC 4739 [6], the IKE_AUTH exchange is more | |||
complicated. The identity presented by the client in the first | complicated. The identity presented by the client in the first | |||
IKE_AUTH request might be a temporary one. In addition, the gateway | IKE_AUTH request might be a temporary one. In addition, the gateway | |||
might decide to redirect the client based on the interaction with the | might decide to redirect the client based on the interaction with the | |||
the AAA server, when EAP authentication is used or the external | the AAA server, when EAP authentication is used or the external | |||
authentication server, when multiple authentication methods are used. | authentication server, when multiple authentication methods are used. | |||
In such cases, the gateway should send the REDIRECT notification | In such cases, the gateway should send the REDIRECT notification | |||
payload in the final IKE_AUTH response message that carries the AUTH | payload in the final IKE_AUTH response message that carries the AUTH | |||
payload and the traffic selectors. | payload and the traffic selectors. The gateway MUST NOT send and the | |||
client MUST NOT accept a redirect in an earlier IKE_AUTH message. | ||||
6. Redirect Messages | 7. Redirect Messages | |||
6.1. REDIRECT_SUPPORTED | 7.1. REDIRECT_SUPPORTED | |||
The REDIRECT_SUPPORTED payload is included in the initial IKE_SA_INIT | The REDIRECT_SUPPORTED payload is included in the initial IKE_SA_INIT | |||
request by the initiator to indicate support for the IKEv2 redirect | request by the initiator to indicate support for the IKEv2 redirect | |||
mechanism described in this document. | mechanism described in this document. | |||
1 2 3 | 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Next Payload |C| RESERVED | Payload Length | | | Next Payload |C| RESERVED | Payload Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
skipping to change at page 8, line 30 | skipping to change at page 8, line 34 | |||
the 'Notify Message Type' fields are the same as described in Section | the 'Notify Message Type' fields are the same as described in Section | |||
3.10 of [2]. The 'SPI Size' field MUST be set to 0 to indicate that | 3.10 of [2]. The 'SPI Size' field MUST be set to 0 to indicate that | |||
the SPI is not present in this message. The 'Protocol ID' MUST be | the SPI is not present in this message. The 'Protocol ID' MUST be | |||
set to 0, since the notification is not specific to a particular | set to 0, since the notification is not specific to a particular | |||
security association. | security association. | |||
The 'Payload Length' field MUST be set to '8'. The 'Notify Message | The 'Payload Length' field MUST be set to '8'. The 'Notify Message | |||
Type' field is set to indicate the REDIRECT_SUPPORTED payload <value | Type' field is set to indicate the REDIRECT_SUPPORTED payload <value | |||
to be assigned by IANA>. | to be assigned by IANA>. | |||
6.2. REDIRECT | 7.2. REDIRECT | |||
The REDIRECT payload is included in an IKE_SA_INIT response from the | The REDIRECT payload is included in an IKE_SA_INIT response from the | |||
responder or an INFORMATIONAL message from the responder, when the | responder or an INFORMATIONAL message from the responder, when the | |||
responder wants to redirect the initiator to another VPN gateway. | responder wants to redirect the initiator to another VPN gateway. | |||
The message includes the new responder's IP address. | The message includes the new responder's IP address. | |||
1 2 3 | 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Next Payload |C| RESERVED | Payload Length | | | Next Payload |C| RESERVED | Payload Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Protocol ID | SPI Size (=0) | Notify Message Type | | | Protocol ID | SPI Size (=0) | Notify Message Type | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| GW Ident Type | | | | GW Ident Type | GW Ident Len | | | |||
+---------------+ ~ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ | |||
~ New Responder GW Identity ~ | ~ New Responder GW Identity ~ | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
~ Nonce Data ~ | ~ Nonce Data ~ | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
The 'Next Payload', 'Payload Length', 'Protocol ID', 'SPI Size' and | The 'Next Payload', 'Payload Length', 'Protocol ID', 'SPI Size' and | |||
the 'Notify Message Type' fields are the same as described in Section | the 'Notify Message Type' fields are the same as described in Section | |||
3.10 of [2]. The 'SPI Size' field MUST be set to 0 to indicate that | 3.10 of [2]. The 'SPI Size' field MUST be set to 0 to indicate that | |||
the SPI is not present in this message. The 'Protocol ID' MUST be | the SPI is not present in this message. The 'Protocol ID' MUST be | |||
set to 0, since the notification is not specific to a particular | set to 0, since the notification is not specific to a particular | |||
security association. | security association. | |||
The 'Payload Length' field is set to the length in octets of the | The 'Payload Length' field is set to the length in octets of the | |||
entire payload, including the generic payload header. 'Notify | entire payload, including the generic payload header. 'Notify | |||
Message Type' field is set to indicate the REDIRECT payload <value to | Message Type' field is set to indicate the REDIRECT payload <value to | |||
skipping to change at page 9, line 23 | skipping to change at page 9, line 41 | |||
Message Type' field is set to indicate the REDIRECT payload <value to | Message Type' field is set to indicate the REDIRECT payload <value to | |||
be assigned by IANA>. The 'GW Identity Type' field indicates the | be assigned by IANA>. The 'GW Identity Type' field indicates the | |||
type of information that is sent to identify the new VPN gateway. | type of information that is sent to identify the new VPN gateway. | |||
The following values are reserved by this document. | The following values are reserved by this document. | |||
1 - IPv4 address of the new VPN gateway | 1 - IPv4 address of the new VPN gateway | |||
2 - IPv6 address of the new VPN gateway | 2 - IPv6 address of the new VPN gateway | |||
3 - FQDN of the new VPN gateway | 3 - FQDN of the new VPN gateway | |||
All other values for this field are reserved and MUST NOT be used. | All other values for this field are reserved and MUST NOT be used. | |||
The identity of the new VPN gateway is carried in the 'New Responder | The 'GW Ident Len' field is set to the length of the gateway identity | |||
GW Identity' field. | information. The identity of the new VPN gateway is carried in the | |||
'New Responder GW Identity' field. | ||||
The 'Nonce Data' field carries the nonce data from the Ni payload | The 'Nonce Data' field carries the nonce data from the Ni payload | |||
sent by the initiator. The size of the nonce MUST be between 16 and | sent by the initiator. The size of the nonce MUST be between 16 and | |||
256 bytes as described in Section 3.9 of [2]. The 'Nonce Data' field | 256 bytes as described in Section 3.9 of [2]. The 'Nonce Data' field | |||
is present in the REDIRECT payload only when the REDIRECT payload is | is present in the REDIRECT payload only when the REDIRECT payload is | |||
sent in the IKE_SA_INIT response message. It MUST NOT be included in | sent in the IKE_SA_INIT response message. It MUST NOT be included in | |||
the REDIRECT payload if sent in an IKE_AUTH response or in a gateway- | the REDIRECT payload if sent in an IKE_AUTH response or in a gateway- | |||
initiated redirect message. | initiated redirect message. | |||
6.3. REDIRECTED_FROM | 7.3. REDIRECTED_FROM | |||
The REDIRECTED_FROM message type is included in the IKE_SA_INIT | The REDIRECTED_FROM message type is included in the IKE_SA_INIT | |||
request from the initiator to the new VPN gateway to indicate the IP | request from the initiator to the new VPN gateway to indicate the IP | |||
address of the original VPN gateway that redirected the initiator. | address of the original VPN gateway that redirected the initiator. | |||
The original VPN gateway's IP address is included in the message. | The original VPN gateway's IP address is included in the message. | |||
1 2 3 | 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Next Payload |C| RESERVED | Payload Length | | | Next Payload |C| RESERVED | Payload Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Protocol ID | SPI Size (=0) | Notify Message Type | | | Protocol ID | SPI Size (=0) | Notify Message Type | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| GW Ident Type | | | | GW Ident Type | GW Ident Len | | | |||
+---------------+ ~ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ | |||
~ Original Responder GW Identity ~ | ~ Original Responder GW Identity ~ | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
The 'Next Payload', 'Payload Length', 'Protocol ID', 'SPI Size' and | The 'Next Payload', 'Payload Length', 'Protocol ID', 'SPI Size' and | |||
the 'Notify Message Type' fields are the same as described in Section | the 'Notify Message Type' fields are the same as described in Section | |||
3.10 of [2] The 'SPI Size' field MUST be set to 0 to indicate that | 3.10 of [2] The 'SPI Size' field MUST be set to 0 to indicate that | |||
the SPI is not present in this message. The 'Protocol ID' MUST be | the SPI is not present in this message. The 'Protocol ID' MUST be | |||
set to 0, since the notification is not specific to a particular | set to 0, since the notification is not specific to a particular | |||
security association. | security association. | |||
skipping to change at page 10, line 25 | skipping to change at page 10, line 44 | |||
gateway is sent in the message. The 'Notify Message Type' field is | gateway is sent in the message. The 'Notify Message Type' field is | |||
set to indicate the REDIRECTED_FROM payload <value to be assigned by | set to indicate the REDIRECTED_FROM payload <value to be assigned by | |||
IANA>. The 'GW Identity Type' field indicates the type of | IANA>. The 'GW Identity Type' field indicates the type of | |||
information that is sent to identify the new VPN gateway. The | information that is sent to identify the new VPN gateway. The | |||
following values are reserved by this document. | following values are reserved by this document. | |||
1 - IPv4 address of the original VPN gateway | 1 - IPv4 address of the original VPN gateway | |||
2 - IPv6 address of the original VPN gateway | 2 - IPv6 address of the original VPN gateway | |||
All other values for this field are reserved and MUST NOT be used. | All other values for this field are reserved and MUST NOT be used. | |||
The identity of the original VPN gateway is carried in the 'Original | The 'GW Ident Len' field is set to the length of the gateway identity | |||
Responder GW Identity' field. | information. The identity of the original VPN gateway is carried in | |||
the 'Original Responder GW Identity' field. | ||||
7. Use of the Redirect Mechanism between IKEv2 Peers | 8. Use of the Redirect Mechanism between IKEv2 Peers | |||
The Redirect mechanism described in this document is mainly intended | The Redirect mechanism described in this document is mainly intended | |||
for use in client-gateway scenarios. However, the mechanism can also | for use in client-gateway scenarios. However, the mechanism can also | |||
be used between any two IKEv2 peers. But this protocol is | be used between any two IKEv2 peers. But this protocol is | |||
asymmetric, meaning that only the original responder can redirect the | asymmetric, meaning that only the original responder can redirect the | |||
original initiator to another server. | original initiator to another server. | |||
8. Security Considerations | 9. Security Considerations | |||
An eavesdropper on the path between VPN client and server may send a | An eavesdropper on the path between VPN client and server may send a | |||
redirect to the client upon receiving an IKE_SA_INIT message from | redirect to the client upon receiving an IKE_SA_INIT message from | |||
this client. This is no problem regarding DoS attacks for the VPN | this client. This is no problem regarding DoS attacks for the VPN | |||
connection, since an on-path-attacker can as well drop the | connection, since an on-path-attacker can as well drop the | |||
IKE_SA_INIT requests to prevent VPN access for the client. But an | IKE_SA_INIT requests to prevent VPN access for the client. But an | |||
eavesdropper on the path between VPN client and server can redirect a | eavesdropper on the path between VPN client and server can redirect a | |||
large number of clients to a victim, which is then flooded with | large number of clients to a victim, which is then flooded with | |||
IKE_SA_INIT requests. Flooding only happens if many clients initiate | IKE_SA_INIT requests. Flooding only happens if many clients initiate | |||
IKEv2 exchange at almost the same time, which is considered a rare | IKEv2 exchange at almost the same time, which is considered a rare | |||
skipping to change at page 11, line 22 | skipping to change at page 11, line 40 | |||
MUST NOT result in the modification of the PAD entries on the client. | MUST NOT result in the modification of the PAD entries on the client. | |||
The new gateway, to which the client is redirected to should be | The new gateway, to which the client is redirected to should be | |||
subject to the same authentication and authorization requirements as | subject to the same authentication and authorization requirements as | |||
the original gateway. To support a scenario where the FQDN of the | the original gateway. To support a scenario where the FQDN of the | |||
gateway is in the client's PAD entry and the client is redirected to | gateway is in the client's PAD entry and the client is redirected to | |||
another gateway in the same administrative domain, one can either | another gateway in the same administrative domain, one can either | |||
configure all the possible gateways from the domain or use a wildcard | configure all the possible gateways from the domain or use a wildcard | |||
entry like, for example, GW*.example.com, in the client's | entry like, for example, GW*.example.com, in the client's | |||
corresponding PAD entry. | corresponding PAD entry. | |||
9. IANA Considerations | 10. IANA Considerations | |||
This document defines four new IKEv2 Notification Message types as | This document defines four new IKEv2 Notification Message types as | |||
described in Section 6. The three Notify Message Types must be | described in Section 7. The three Notify Message Types must be | |||
assigned values between 16396 and 40959. | assigned values between 16396 and 40959. | |||
o REDIRECT_SUPPORTED | o REDIRECT_SUPPORTED | |||
o REDIRECT | o REDIRECT | |||
o REDIRECTED_FROM | o REDIRECTED_FROM | |||
10. Acknowledgements | 11. Acknowledgements | |||
The use of anycast address with IKEv2 was first described in [7]. It | The use of anycast address with IKEv2 was first described in [7]. It | |||
was then added to an early draft version of RFC 5026 and later | was then added to an early draft version of RFC 5026 and later | |||
removed before the RFC was published. Therefore the authors of [7] | removed before the RFC was published. Therefore the authors of [7] | |||
and RFC 5026 are acknowledged. | and RFC 5026 are acknowledged. | |||
Thanks to Pasi Eronen, with whom the solution described in this | Thanks to Pasi Eronen, with whom the solution described in this | |||
document was extensively discussed. Thanks to Tero Kivinen for | document was extensively discussed. Thanks to Tero Kivinen for | |||
suggesting the use of REDIRECTED_FROM payload and other comments | suggesting the use of REDIRECTED_FROM payload and other comments | |||
which helped improve the document. The authors would also like to | which helped improve the document. The authors would also like to | |||
thank Yaron Sheffer, Sunil Kumar, Fan Zhao, Yoav Nir, Richard | thank Yaron Sheffer, Sunil Kumar, Fan Zhao, Yoav Nir, Richard | |||
Graveman, Kanagavel Rajan, Srini Addepalli, and Arnaud Ebalard for | Graveman, Kanagavel Rajan, Srini Addepalli, and Arnaud Ebalard for | |||
their reviews and comments. | their reviews and comments. | |||
11. References | 12. References | |||
11.1. Normative References | 12.1. Normative References | |||
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement | [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement | |||
Levels", BCP 14, RFC 2119, March 1997. | Levels", BCP 14, RFC 2119, March 1997. | |||
[2] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", RFC 4306, | [2] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", RFC 4306, | |||
December 2005. | December 2005. | |||
11.2. Informative References | 12.2. Informative References | |||
[3] Johnson, D., Perkins, C., and J. Arkko, "Mobility Support in | [3] Johnson, D., Perkins, C., and J. Arkko, "Mobility Support in | |||
IPv6", RFC 3775, June 2004. | IPv6", RFC 3775, June 2004. | |||
[4] Giaretta, G., Kempf, J., and V. Devarapalli, "Mobile IPv6 | [4] Giaretta, G., Kempf, J., and V. Devarapalli, "Mobile IPv6 | |||
Bootstrapping in Split Scenario", RFC 5026, October 2007. | Bootstrapping in Split Scenario", RFC 5026, October 2007. | |||
[5] Haley, B., Devarapalli, V., Deng, H., and J. Kempf, "Mobility | [5] Haley, B., Devarapalli, V., Deng, H., and J. Kempf, "Mobility | |||
Header Home Agent Switch Message", RFC 5142, January 2008. | Header Home Agent Switch Message", RFC 5142, January 2008. | |||
End of changes. 31 change blocks. | ||||
64 lines changed or deleted | 79 lines changed or added | |||
This html diff was produced by rfcdiff 1.35. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |