Hi all, I think, adding new payload or exchange type is a real overkill for such a small extension. IKE has well defined mechanism for advertising/negotiating new extensions via VID or Notify. Other extensions (like MOBIKE) use it, so why multiply entities unnecessarily?
Then, I'd rather leave a decision whether to proceed with childless or full versions of IKE_AUTH exchange completely at initiator's discretion. After all, it is he/she, who knows what happened - either user pressed "connect" button or there was a real packet. I think, responder should not have any policy on this - just capability. How could, for example, he/she insist on childless IKE SA if initiator has a real packet to protect? In this case it will either lead to denial of communication or initiator will probably create childless IKE SA following by CREATE_CHILD_SA, increasing unnecessary load on responder. Prohibiting childless IKE SA by responder doesn't make much sense either - nothing prevents initiator from following current behaviour - creating dummy IPsec SA and immediately deleting it. All responder has in this case is again unnecessary load on herself/himself. >From my point of view, childless mode is just a usefull protocol optimization, and it is initiator, who must decide whether to use it. For this purpose peers must exchange VID/Notify payloads during IKE_SA_INIT, claiming their capabilities to proceed with childless IKE_AUTH. Then, if both sides support it, initiator decides whether to use it. In this case responder must be prepared to both versions of IKE_AUTH. If responder doesn't support this extension, it naturally doesn't send corresponding VID/Notify. At this point initiator must either proceed with current behaviour - dummy IPsec proposal (if she/he really wants IKE SA) or terminate exchange if she/he doesn't support current behaviour (in which case it is a misconfiguration). Regards, Valery Smyslov. 2009/7/8, Yoav Nir <y...@checkpoint.com>: > Hi Raj > > What Yaron suggested, was to create a new payload type, and mark that as > critical. > > I don't like either Yaron's or Tero's suggestions, as both lead to a kind of > "take it or leave it" behavior. The initiator proposes doing "childless", > and if the responder does not agree, the IKE SA breaks. > > At least for the remote access case, where we want a stand-by IKE SA so that > eventually we can have child SAs, this does not make sense. If the responder > does not support childless, the initiator can still propose universal > selectors, and the responder will narrow them down to a (possibly useless) > valid SA. > > I think a better option is to have a notify/VID payload, with flags > indicating whether a childless exchange is wanted, required or prohibited, > and whether subsequent child SAs should be permitted. This does still have > a problem where the initiator requires that the IKE_AUTH be childless and > the responder does not support the extension. > > Alternatively, we could adopt Yaron's suggestion, and make a new payload, > with a critical bit turned on or off according to requirement level. I don't > like having empty payloads, but I can't back up this dislike with any good > argument. > > Maybe when we make version 2.1 of IKE, we can add a "critical type" bit to > the notification payload. > ________________________________ > From: Raj Singh [mailto:rsjen...@gmail.com] > Sent: Wednesday, July 08, 2009 7:18 AM > To: Tero Kivinen > Cc: Yaron Sheffer; ipsec@ietf.org; Yoav Nir > Subject: Re: [IPsec] FW: I-D Action:draft-nir-ipsecme-childless-00.txt > > Hi Tero, > > Thanks for your valuable inputs. > Please find re inputs inline. <Raj> > On Wed, Jul 8, 2009 at 1:00 AM, Tero Kivinen > <kivi...@iki.fi<mailto:kivi...@iki.fi>> wrote: > Raj Singh writes: >> Your suggestion of having "critical" bit set on childless notify/VID >> payload >> from initiator in IKE_SA_INIT exchange will define the bahavior as >> mentioned >> below. > That is not correct way of using critical bit. Critical bit means that > if it is set and the PAYLOAD TYPE is not understood, then > UNSUPPORTED_CRITICAL_PAYLOAD error is reported. Every implementation > will understand Notify and Vendor ID payloads, thus they will never > return UNSUPPORTED_CRITICAL_PAYLOAD regardless what the contents of > those payloads are. > <Raj> > I was under impression that we can have "critical" bit in childless > IKE_AUTH notify/VID. > Even Yaron also clarified in same thread that we need new exchange type to > have "critical" bit on it. > > >> If initiator want to childless IKE_AUTH, it will send CHILDLESS_IKE_AUTH >> notify/VID payload having "critical" flag SET in IKE_SA_INIT request. > And complient implentation will do what to do as RFC4306 says ie: > > ... MUST be ignored by the recipient if the recipient > understands the payload type code. MUST be set to zero for > payload types defined in this document. Note that the critical > bit applies to the current payload rather than the "next" > payload whose type code appears in the first octet. The > reasoning behind not setting the critical bit for payloads > defined in this document is that all implementations MUST > understand all payload types defined in this document and > therefore must ignore the Critical bit's value. Skipped payloads > are expected to have valid Next Payload and Payload Length > fields. > > The correct way to do is to make new exchange type for this new > childless IKE_SA_INIT & IKE_AUTH. That way old implenentations will > then know that they do not understand this new type and will drop the > packets. This is if you really want the property that if responder > does not understand chieldless IKE_AUTH you do not want to continue at > all. > > I have not yet read the draft, as I have been too busy with working > group drafts already, and I still do not know if this is really needed > at all... > <Raj> > If we can't have "critical" bit inside associated data of childless > notify/VID, then > new exchange type is a near possibility. > Please have a look at the use cases in the draft for need of this draft. > > -- > kivi...@iki.fi<mailto:kivi...@iki.fi> > > With Regards, > Raj > _______________________________________________ IPsec mailing list IPsec@ietf.org https://www.ietf.org/mailman/listinfo/ipsec