Yoav, thanks. I withdraw my suggestions #2 and #3 altogether, and (barring objections) we can just stick with the suggested rewording of "both UDP encapsulated and non-UDP encapsulated packets" to "IPsec packets with or without UDP encapsulation".
Scott Moonen (smoo...@us.ibm.com) z/OS Communications Server TCP/IP Development http://www.linkedin.com/in/smoonen From: Yoav Nir <y...@checkpoint.com> To: Scott C Moonen/Raleigh/i...@ibmus Cc: Tero Kivinen <kivi...@iki.fi>, "ipsec@ietf.org" <ipsec@ietf.org> Date: 01/12/2010 09:39 AM Subject: Re: [IPsec] ikev2bis clarification on port floating Hi Scott When writing remote access VPN clients (running on phones, PCs, tablets, probably not z/OS) it's usually safe to assume that the peer (a gateway) supports NAT-T. This is because on the real Internet, a RAS that does not support NAT-T simply doesn't work. NATs are everywhere. So it's possible to write a simplified client, that only does NAT-T (no ESP and no UDP port 500) and it doesn't even need to bother with the NAT_DETECTION payloads. Allowing UDP 4500 even for the IKE_SA_INIT exchange allows such clients, and I don't see a reason to forbid them. Yes, they are not interoperable with perfectly legitimate IKEv2 implementations that do not support NAT-T, but that doesn't matter, because those minimal implementations are not fit to be RAS. On Jan 12, 2010, at 4:21 PM, Scott C Moonen wrote: Tero, > > 2) Disallow floating on IKE_SA_INIT unless . . . > Why do you want to disallow that? . . . > > > 3) Disallow this elective use of UDP-encap unless . . . > Again why do that? I guess I'm thinking more about what is advisable (without out-of-band knowledge or inference) than what is permissible, so that may be out of scope. And I should have said "recommend against" rather than "disallow". Scott Moonen (smoo...@us.ibm.com) z/OS Communications Server TCP/IP Development http://www.linkedin.com/in/smoonen From: Tero Kivinen <kivi...@iki.fi> To: Scott C Moonen/Raleigh/i...@ibmus Cc: ipsec@ietf.org Date: 01/12/2010 03:36 AM Subject: Re: [IPsec] ikev2bis clarification on port floating Scott C Moonen writes: > Further question -- is it ok for the IKE negotiation *not* to float and > then for the ESP traffic to later arrive UDP-encapped on port 4500? Yes, provided the NAT_DETECTION_* payloads were exchanged, (i.e. the implementation knows other end supports NAT-T). > It seems like it would be wise not to send UDP-encapped ESP unless > you've already verified that the 4500-4500 port pairing works during > an IKE exchange. But the text in section 2.31 doesn't seem to > exclude that possibility. That was the intention, i.e. even when there was no NAT (regardless whether you use port 500 or 4500), but other end did support NAT-T (i.e. NAT_DETECTION_* payloads were exchanged), then you can use either normal ESP packets, or UDP encapsulated ESP packets on port 4500. This is something that is already required for MOBIKE, as with MOBIKE the host might suddenly notice that you moved to new IP-address which do have NAT, thus you might need to enable NAT-T. On the other hand with MOBIKE you always change to use port 4500 in the beginning to simplify things. The current text does not say when you would be sending such packets, it just says that you MUST be able to receive them. > Personally, I think we should: > > 1) Rephrase the "non-UDP encapsulated packets" wording as Dan requested. > Possible starting point: "receive and process IPsec packets with or > without UDP encapsulation at any time." That change seems to be good. > 2) Disallow floating on IKE_SA_INIT unless you have prior knowledge the > peer supports NAT traversal (i.e., an existing SA is being authenticated, > which itself exchanged NAT_DETECTION_* payloads even if it may not have > detected a NAT). Why do you want to disallow that? You might not have prior knowledge, but you might have good hints that other end needs to support NAT-T or otherwise communications does not work so better start at port 4500 directly. Also some minimal implementations supporting NAT-T could always start at port 4500 as they do not support normal IPsec at all, only UDP encapsulated IPsec and they always act as they were behind NAT. > 3) Disallow this elective use of UDP-encap unless you have already floated > the IKE SA. Again why do that? I think it is easier to just make it so that you can always use normal IPsec or UDP encapsulated IPsec if you support NAT-T regardless whether you have changed ports etc... I.e if you get packet to your IKE NAT port (4500) you check the SPI and if it is there you strip UDP header and pass it to IPsec engine. If there is 4 bytes of zeros in the beginning then you pass it to the UDP stack. No need to check whether there was NAT-T enabled for this specific host etc. -- kivi...@iki.fi _______________________________________________ IPsec mailing list IPsec@ietf.org https://www.ietf.org/mailman/listinfo/ipsec
_______________________________________________ IPsec mailing list IPsec@ietf.org https://www.ietf.org/mailman/listinfo/ipsec