idnits 2.17.1 draft-ietf-ipsecme-ikev2-redirect-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** The document seems to lack a License Notice according IETF Trust Provisions of 28 Dec 2009, Section 6.b.i or Provisions of 12 Sep 2009 Section 6.b -- however, there's a paragraph with a matching beginning. Boilerplate error? -- It seems you're using the 'non-IETF stream' Licence Notice instead Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (February 2, 2009) is 5554 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Obsolete normative reference: RFC 4306 (ref. '2') (Obsoleted by RFC 5996) -- Obsolete informational reference (is this intentional?): RFC 3775 (ref. '3') (Obsoleted by RFC 6275) Summary: 2 errors (**), 0 flaws (~~), 1 warning (==), 4 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group V. Devarapalli 3 Internet-Draft WiChorus 4 Intended status: Standards Track K. Weniger 5 Expires: August 6, 2009 Panasonic 6 February 2, 2009 8 Re-direct Mechanism for IKEv2 9 draft-ietf-ipsecme-ikev2-redirect-03.txt 11 Status of this Memo 13 This Internet-Draft is submitted to IETF in full conformance with the 14 provisions of BCP 78 and BCP 79. 16 Internet-Drafts are working documents of the Internet Engineering 17 Task Force (IETF), its areas, and its working groups. Note that 18 other groups may also distribute working documents as Internet- 19 Drafts. 21 Internet-Drafts are draft documents valid for a maximum of six months 22 and may be updated, replaced, or obsoleted by other documents at any 23 time. It is inappropriate to use Internet-Drafts as reference 24 material or to cite them other than as "work in progress." 26 The list of current Internet-Drafts can be accessed at 27 http://www.ietf.org/ietf/1id-abstracts.txt. 29 The list of Internet-Draft Shadow Directories can be accessed at 30 http://www.ietf.org/shadow.html. 32 This Internet-Draft will expire on August 6, 2009. 34 Copyright Notice 36 Copyright (c) 2009 IETF Trust and the persons identified as the 37 document authors. All rights reserved. 39 This document is subject to BCP 78 and the IETF Trust's Legal 40 Provisions Relating to IETF Documents 41 (http://trustee.ietf.org/license-info) in effect on the date of 42 publication of this document. Please review these documents 43 carefully, as they describe your rights and restrictions with respect 44 to this document. 46 Abstract 48 IKEv2 is a protocol for setting up VPN tunnels from a remote location 49 to a gateway so that the VPN client can access services in the 50 network behind the gateway. Currently there is no standard mechanism 51 specified that allows an overloaded VPN gateway or a VPN gateway that 52 is being shut down for maintenance to re-direct the VPN client to 53 attach to another gateway. This document proposes a re-direct 54 mechanism for IKEv2. The proposed mechanism can also be used in 55 Mobile IPv6 to enable the home agent to re-direct the mobile node to 56 another home agent. 58 Table of Contents 60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 61 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 62 3. IKEv2 Exchange with Redirect . . . . . . . . . . . . . . . . . 4 63 4. Use of Anycast Addresses with the Re-direct Mechanism . . . . 5 64 5. Gateway Initiated Redirect . . . . . . . . . . . . . . . . . . 6 65 6. Redirect Messages . . . . . . . . . . . . . . . . . . . . . . 7 66 6.1. REDIRECT_SUPPORTED . . . . . . . . . . . . . . . . . . . . 7 67 6.2. REDIRECT . . . . . . . . . . . . . . . . . . . . . . . . . 7 68 6.3. REDIRECTED_FROM . . . . . . . . . . . . . . . . . . . . . 8 69 7. Security Considerations . . . . . . . . . . . . . . . . . . . 9 70 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 71 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 10 72 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10 73 10.1. Normative References . . . . . . . . . . . . . . . . . . . 10 74 10.2. Informative References . . . . . . . . . . . . . . . . . . 10 75 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11 77 1. Introduction 79 IKEv2 [2] is used for setting up IPsec-based VPNs. The IP address of 80 the VPN gateway can be configured on the VPN client. But this does 81 not scale well, when the number of VPN gateways is large. Dynamic 82 discovery of VPN gateways using DNS is quite widely used too. 83 However, using DNS is not flexible when it comes to assigning a VPN 84 gateway to the VPN client based on the load on the VPN gateways. The 85 VPN client typically tries to connect to the IP address of the VPN 86 gateways that appears first in the DNS response. If the VPN tunnel 87 setup fails, then the VPN client tries to attach to the other VPN 88 gateways returned in the DNS response. 90 This document proposes a re-direct mechanism for IKEv2 that enables a 91 VPN gateway to re-direct the VPN client to another VPN gateway, for 92 example, based on the load condition. The re-direct is done during 93 the IKE_SA_INIT exchange. The re-direct mechanism can also be used 94 in conjunction with anycast addresses. In this case, anycast address 95 for the cluster of VPN gateways is stored in the DNS instead of a 96 list of unicast IP addresses of the VPN gateways. 98 The re-direct can also happen because of administrative or optimal 99 routing reasons. This document does not attempt to provide an 100 exhaustive list of reasons for re-directing a VPN client to another 101 VPN gateway. 103 Mobile IPv6 [3] may use IKEv2 for mutual authentication between the 104 mobile node and the home agent. IKEv2 may also be used for home 105 address configuration and setting up IPsec security associations for 106 protecting Mobile IPv6 signaling messages [4]. The IKEv2 exchange 107 precedes the exchange of Mobile IPv6 signaling messages. Therefore 108 the mechanism described in this document can be also be used by a 109 Mobile IPv6 home agent to re-direct a mobile node to another home 110 agent. 112 There is a Home Agent Switch mechanism available for re-directing a 113 mobile node to another home agent, described in [5]. The Home Agent 114 Switch mechanism can only be used after the binding cache had been 115 created at the home agent for the mobile node. The disadvantage with 116 this is that quite a bit of state is created on the home agent before 117 the mobile node can be re-directed to another home agent. The 118 mechanism described in this document can be used for re-directing a 119 mobile node before any state related to the Mobile IPv6 binding is 120 created on the home agent. 122 2. Terminology 124 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 125 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 126 document are to be interpreted as described in [1]. 128 3. IKEv2 Exchange with Redirect 130 To redirect an IKEv2 session to another VPN gateway, the VPN gateway 131 that initially received the IKE_SA_INIT request selects another VPN 132 gateway and responds to the VPN client with a REDIRECT Notification 133 payload. The mechanism by which the initial VPN gateway selects 134 another VPN gateway is out of scope for this document. The IP 135 address of the selected VPN gateway is sent in the REDIRECT payload. 137 The VPN client indicates support for the IKEv2 redirect mechanism by 138 including a REDIRECT_SUPPORTED notification message in the initial 139 IKE_SA_INIT request. If the IKE_SA_INIT request did not include the 140 REDIRECT_SUPPORTED payload, the responder MUST NOT send the REDIRECT 141 payload to the VPN client. 143 Initiator Responder (initial VPN GW) 144 --------- ------------------------- 146 (IP_I:500 -> Initial_IP_R:500) 147 HDR(A,0), SAi1, KEi, Ni, --> 148 N(REDIRECT_SUPPORTED) 150 (Initial_IP_R:500 -> IP_I:500) 151 <-- HDR(A,0), N(REDIRECT, IP_R) 153 When the VPN client receives the IKE_SA_INIT response with the 154 REDIRECT payload, it initiates a new IKE_SA_INIT exchange with the 155 VPN gateway listed in the REDIRECT payload. The VPN client includes 156 the IP address of the original VPN gateway that re-directed the 157 client. The IKEv2 exchange then proceeds as normal with the selected 158 VPN gateway. 160 Initiator Responder (Selected VPN GW) 161 --------- --------------------------- 163 (IP_I:500 -> IP_R:500) 164 HDR(A,0), SAi1, KEi, Ni, --> 165 N(REDIRECTED_FROM, Initial_IP_R) 167 (IP_R:500 -> IP_I:500) 168 <-- HDR(A,B), SAr1, KEr, Nr,[CERTREQ] 170 (IP_I:500 -> IP_R:500) 171 HDR(A,B), SK {IDi, [CERT,] [CERTREQ,] 172 [IDr,]AUTH, SAi2, TSi, TSr} --> 174 (IP_R:500 -> IP_I:500) 175 <-- HDR(A,B), SK {IDr, [CERT,] AUTH, 176 SAr2, TSi, TSr} 178 When this mechanism is used with Mobile IPv6, a mobile node's 179 security associations with its home agent may expire while it still 180 has a valid binding cache entry at the home agent. In this case, the 181 mobile node MUST NOT use the original home agent address as the 182 destination address in the IKE_SA_INIT exchange to setup new security 183 associations. It MUST try to setup security associations with its 184 existing home agent. 186 4. Use of Anycast Addresses with the Re-direct Mechanism 188 The use of anycast addresses will avoid having to configure a 189 particular VPN gateway's IP address in the DNS. Instead, the anycast 190 address that represents the group of VPN gateways is stored in the 191 DNS. When the VPN client performs a DNS lookup for the VPN gateway, 192 it receives the anycast address of the VPN gateway in the DNS 193 response. 195 If an anycast address is returned in response to DNS resolution of an 196 FQDN, the IKEv2 transaction between the VPN client and the VPN 197 gateway is slightly modified. The VPN client sends the IKE_SA_INIT 198 request to the anycast address. The IKE_SA_INIT request is routed to 199 one of the VPN gateways that is part of the anycast group. The VPN 200 gateway that receives the IKE_SA_INIT request responds with an 201 IKE_SA_INIT reply from the anycast address. 203 Initiator Responder (any VPN GW) 204 --------- ------------------------- 206 (IP_I:500 -> ANYCAST:500) 207 HDR(A,0), SAi1, KEi, Ni) --> 208 N(REDIRECT_SUPPORTED) 210 (ANYCAST:500 -> IP_I:500) 211 <-- HDR(A,0), N(REDIRECT, IP_R) 213 If the destination address on the IKE_SA_INIT request is an anycast 214 address, the VPN gateway that received the IKE_SA_INIT request MUST 215 include the REDIRECT payload to re-direct the VPN client to a unicast 216 address of one of the VPN gateway. The VPN gateway that received the 217 IKE_SA_INIT request MAY re-direct the client to its own unicast 218 address, if it is not overloaded. 220 The rest of the IKEv2 exchange is the same as described in Section 3. 222 5. Gateway Initiated Redirect 224 The re-direct mechanism may also be used by a VPN gateway to re- 225 direct the client to another VPN gateway in middle of a session. To 226 re-direct a client, the gateway should send an INFORMATIONAL message 227 with the REDIRECT Notify payload. The REDIRECT payload MUST carry 228 information about the new VPN gateway. When the client receives this 229 message, it MUST send an empty message as an acknowledgement. Until 230 the client responds with an acknowledgement, the gateway SHOULD re- 231 transmit the re-direct INFORMATIONAL message as described in [2]. 232 The following illustrates the INFORMATIONAL message exchange for 233 gateway-initiated redirect. 235 Initiator (VPN client) Responder (VPN GW) 236 ---------------------- ------------------ 238 <-- HDR, SK {N[REDIRECT, IP_R/FQDN_R]} 240 HDR, SK {} --> 242 The INFORMATIONAL message exchange described above is protected by 243 the existing IKEv2 SA between the client and the gateway. 245 Once the client sends an acknowledgement to the gateway, it SHOULD 246 delete the existing security associations with the old gateway by 247 sending an Informational message with a DELETE payload. The gateway 248 MAY also decide to delete the security associations without any 249 signaling from the client. However, it should allow sufficient time 250 for the client to setup the required security associations with the 251 new security gateway. This time period should be configurable on the 252 gateway. 254 6. Redirect Messages 256 6.1. REDIRECT_SUPPORTED 258 The REDIRECT_SUPPORTED payload is included in the initial IKE_SA_INIT 259 request by the initiator to indicate support for the IKEv2 re-direct 260 mechanism described in this document. 262 1 2 3 263 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 264 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 265 | Next Payload |C| RESERVED | Payload Length | 266 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 267 | Protocol ID | SPI Size (=0) | Notify Message Type | 268 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 270 The 'Next Payload', 'Payload Length', 'Protocol ID', 'SPI Size' and 271 the 'Notify Message Type' fields are the same as described in Section 272 3.10 of [2]. The 'SPI Size' field MUST be set to 0 to indicate that 273 the SPI is not present in this message. 275 The 'Payload Length' field MUST be set to '8'. The 'Notify Message 276 Type' field is set to indicate the REDIRECT_SUPPORTED payload . 279 6.2. REDIRECT 281 The REDIRECT payload is included in an IKE_SA_INIT response from the 282 responder when the responder wants to re-direct the initiator to 283 another VPN gateway. The message includes the new responder's IP 284 address. 286 1 2 3 287 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 288 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 289 | Next Payload |C| RESERVED | Payload Length | 290 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 291 | Protocol ID | SPI Size (=0) | Notify Message Type | 292 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 293 | GW Ident Type | | 294 +---------------+ ~ 295 ~ New Responder GW Identity ~ 296 | | 297 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 299 The 'Next Payload', 'Payload Length', 'Protocol ID', 'SPI Size' and 300 the 'Notify Message Type' fields are the same as described in Section 301 3.10 of [2]. The 'SPI Size' field MUST be set to 0 to indicate that 302 the SPI is not present in this message. 304 If the IP address of the new VPN gateway is sent, the 'Payload 305 Length' field MUST be set to either '13' or '25' depending on whether 306 an IPv4 or IPv6 address is sent in the message. If the FQDN of the 307 new VPN gateway is sent, the 'Payload Length' field is set to the 308 length of the FQDN plus the fixed fields in the message. The 'Notify 309 Message Type' field is set to indicate the REDIRECT payload . The 'GW Identity Type' field indicates the 311 type of information that is sent to identify the new VPN gateway. 312 The following values are reserved by this document. 314 1 - IPv4 address of the new VPN gateway 315 2 - IPv6 address of the new VPN gateway 316 3 - FQDN of the new VPN gateway 318 All other values for this field are reserved and MUST NOT be used. 319 The identity of the new VPN gateway is carried in the 'New Responder 320 GW Identity' field. 322 6.3. REDIRECTED_FROM 324 The REDIRECTED_FROM message type is included in the IKE_SA_INIT 325 request from the initiator to the new VPN gateway to indicate the IP 326 address of the original VPN gateway that re-directed the initiator. 327 The original VPN gateway's IP address is included in the message. 329 1 2 3 330 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 331 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 332 | Next Payload |C| RESERVED | Payload Length | 333 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 334 | Protocol ID | SPI Size (=0) | Notify Message Type | 335 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 336 | GW Ident Type | | 337 +---------------+ ~ 338 ~ Original Responder GW Identity ~ 339 | | 340 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 342 The 'Next Payload', 'Payload Length', 'Protocol ID', 'SPI Size' and 343 the 'Notify Message Type' fields are the same as described in Section 344 3.10 of [2] The 'SPI Size' field MUST be set to 0 to indicate that 345 the SPI is not present in this message. 347 The 'Payload Length' field MUST be set to either '13' or '25' 348 depending on whether an IPv4 or IPv6 address of the original VPN 349 gateway is sent in the message. The 'Notify Message Type' field is 350 set to indicate the REDIRECTED_FROM payload . The 'GW Identity Type' field indicates the type of 352 information that is sent to identify the new VPN gateway. The 353 following values are reserved by this document. 355 1 - IPv4 address of the original VPN gateway 356 2 - IPv6 address of the original VPN gateway 358 All other values for this field are reserved and MUST NOT be used. 359 The identity of the original VPN gateway is carried in the 'Original 360 Responder GW Identity' field. 362 7. Security Considerations 364 An eavesdropper on the path between VPN client and server may send a 365 redirect to the client upon receiving an IKE_SA_INIT message from 366 this client. This is no problem regarding DoS attacks for the VPN 367 connection, since an on-path-attacker can as well drop the 368 IKE_SA_INIT requests to prevent VPN access for the client. But an 369 eavesdropper on the path between VPN client and server can redirect a 370 large number of clients to a victim, which is then flooded with 371 IKE_SA_INIT requests. Flooding only happens if many clients initiate 372 IKEv2 exchange at almost the same time, which is considered a rare 373 event. However, this may happen if a Home Agent/VPN server is 374 shutdown for maintenance and all clients need to re-establish VPN 375 connections with another Home Agent/VPN server or if the on-path 376 attacker forces all IPsec security associations to expire by dropping 377 all received IKEv2 messages. 379 The use of REDIRECTED_FROM payload is intended to discourage a rogue 380 VPN gateway from re-directing a large number of VPN clients to a 381 particular VPN gateway. It does not prevent such a DoS attack. 383 8. IANA Considerations 385 This document defines four new IKEv2 Notification Message types as 386 described in Section 6. The four Notify Message Types must be 387 assigned values between 16396 and 40959. 389 o REDIRECT_SUPPORTED 390 o REDIRECT 391 o REDIRECTED_FROM 393 9. Acknowledgements 395 The use of anycast address with IKEv2 was first described in [6]. It 396 was then added to an early draft version of RFC 5026 and later 397 removed before the RFC was published. Therefore the authors of [6] 398 and RFC 5026 are acknowledged. 400 Thanks to Pasi Eronen, with whom the solution described in this 401 document was extensively discussed. Thanks to Tero Kivinen for 402 suggesting the use of REDIRECTED_FROM payload. The authors would 403 also like to thank Yaron Sheffer, Sunil Kumar, Fan Zhao, Yoav Nir and 404 Arnaud Ebalard for their reviews and comments. 406 10. References 408 10.1. Normative References 410 [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement 411 Levels", BCP 14, RFC 2119, March 1997. 413 [2] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", RFC 4306, 414 December 2005. 416 10.2. Informative References 418 [3] Johnson, D., Perkins, C., and J. Arkko, "Mobility Support in 419 IPv6", RFC 3775, June 2004. 421 [4] Giaretta, G., Kempf, J., and V. Devarapalli, "Mobile IPv6 422 Bootstrapping in Split Scenario", RFC 5026, October 2007. 424 [5] Haley, B., Devarapalli, V., Deng, H., and J. Kempf, "Mobility 425 Header Home Agent Switch Message", RFC 5142, January 2008. 427 [6] Weniger, K. and F. Dupont, "IKEv2-based Home Agent Assignment in 428 Mobile IPv6/NEMO Bootstrapping", draft-dupont-ikev2-haassign-02 429 (work in progress), January 2007. 431 Authors' Addresses 433 Vijay Devarapalli 434 WiChorus 435 3590 North First St 436 San Jose, CA 95134 437 USA 439 Email: vijay@wichorus.com 441 Killian Weniger 442 Panasonic R&D Center Germany 443 Monzastr. 4c 444 Langen 63225 445 Germany 447 Email: kilian.weniger@eu.panasonic.com