[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: an SPD syntax example



At 4:32 +0200 1/23/04, Tero Kivinen wrote:
Stephen Kent writes:
 >Because in the IKEv2 we do have separate source and destination lists,
 >it will remove the combinatory explosion, thus the same example can be
 >expressed as (using the format described in the end of this email):

 yes, but the SPD is also used to represent bypass and discard access
 controls.  So, maybe we need to define two classes of entries, one
 for IPsec SA creation and one for bypass/discard, where the IKE
 selector payload conventions do not apply. Also, the PFP flag is not

I do not see need for that. In the IKEv2 format there is source and destination addresses and ports tied to together under one SPDEntry. The difference is that the SPD entry consist of two items, one listing list of source addresses and ports and another listing list of destination addresses and ports. In your approach the SPD entry contains list of items each having both source and destination address.

i was not suggesting that the original synatx was right, just that there are syntactic differences between what IKE assumes and what one might choose to do for non-SA SPD entries. For example, IKE assumes thet the source and destination addresses and ports are flipped re directional authorization, something that one need not do for bypass/discard entries.



What is the problem with the IKEv2 style format when using bypass and discard items?

 >>	protocol	INTEGER,	-- 8 bits
 >>	next CHOICE {
 >>		ports	SEQUENCE {
 >>				SourcePort	INTEGER, -- 16 bits
 >>				DestPort }	INTEGER, -- 16 bits
 >
 >This should be range of ports not single port. IKEv2 allows port
 >ranges.

 I'm confused. In the current version of IKE (12), section 3.13.1
 describes the Traffic Selector format. It consists of one byte for
 the protocol, not a range, with 0 being the way to indicate ANY. It

I said range of PORTS, not range of protocols. The protocol is not range, it is always only one single value or ANY, and if ANY is used then port numbers are not used (there is no point using port range as the usage of the port fields depends on the protocol).

Sorry, I misread your text. Yes, ports are ranges.



 defines a range for ports (directional) and a range for addresses
 (directional). This structure can be repeated multiple times in the
 payload. did this change in the latest version?

No.


 >>		mobilityHdr	INTEGER, -- 16 bits
 >
 >This is not yet negotiable by the IKEv2.

it needs to be, and it can be represented using the port fields.

Hmmm.. so we need to add some more text to the IKEv2?

yes.



 >
 >>		ICMP [0] SEQUENCE {
 >  >			type	INTEGER,	-- 8 bits
 >>			code	INTEGER } }	-- 8 bits
 >
 >This is also type and code range in IKEv2. Also one closing } is
 >missing (matchintg the SelectorSet sequence).

 I agree that IKE allows this, but I think it is a bad idea. In
 general it does not make sense to list a range of types for which a
 range of codes is applicable, since codes are interpreted for each
 type differently. It's not like UDP, TCP, and SCTP, where all the
 well known ports are interpreted in the same way for each protocol.
 Yes, it is syntactically possible to list ranges here, but is it a
 good idea? We do have a problem in that the value 0 is assigned to
 echo reply, so we can't use that value to indicate ANY. maybe the
 best solution here is to say that the ICMP Type and Code range MUST
 be trivial, unless we want to signal ANY, in which case the range
 MUST be 0-255.

The reason IKEv2 allows ranges also in the ICMP types is to allow saying allow ICMP 3/0 - 3/3 (type/code), i.e allow ICMP NET/HOST/PROTOCOL/PORT unreachable, but do not allow NEEDFRAG, source route failed etc. Or to allow 3/0 - 3/13 meaning any known ICMP unreachable erros. Note, that in most cases the code 0 is reserved, thus it cannot be used as special ANY value. -

This works only in some cases, like the example you cite above, but not generally. I think it a bad idea to suggest use of a syntax that makes sense only in some cases, maybe only for the case of destination unreachable.


Steve