Re: [tcpm] New version of TCP Option for Transparent Middlebox Discovery available
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [tcpm] New version of TCP Option for Transparent Middlebox Discovery available



I'll take a first shot at this. My colleagues may also want to chip in...

Joe Touch wrote:
1) use of the TCP option is OK, but the option needs some additional
caveats:

	- undefined if length < 4 (i.e., receiver should send a RST)
   We'll add this.

	- there ought to be a max suggested length
	see, e.g., draft-ietf-tcpm-tcp-auth-opt-05 section-9.6

	with TCP-AO, a typical SYN would have 7-9 bytes available
	for this option, e.g. IMO, the option should never be more than
	7 bytes; there is never a reason for the SYN to carry the full
	weight of arbitrary "target data", and I don't see why it needs
	to carry a full IEEE OUI. IMO, there ought to be enough bits
	that IANA assigns to make this work in a *known, fixed* length,
	and I don't see a good reason to ever have this option exceed 4
	bytes

In current practice, we don't use the authentication option, but we do use scaling and timestamps. We end up just about filling the extended header, and wishing we had more room. This is without the OUI, using our present invalid kind (as do the other vendors in this market).

What happens is a space vs time tradeoff. Leaving info out of the option can imply another roundtrip when setting up a tunnel. Forcing this would likely preclude use of the option for its primary (ie current) purpose.

2) the security considerations needs to be revised

	- IPsec encryption would prevent detection of the option;
	IPsec encryption *or* authentication would prevent response.

	- TLS allows both detection and response
- TCP-AO allows detection in all cases.
	when options are included in the MAC, TCP-AO would
	prevent response


We can add this additional detail. Which MAC options alter the behavior of AO?

	- the "target data" should not appear in the option space,
	as noted above, but if it did it's not clear how it could
	possibly be protected separately unless *this doc* describes
	how to include a signature within the option
	(and there is no room for that, IMO)

As noted above and in the draft, removing the "target data" from the option would render it useless.

Also note that the draft says that the format of the "target data" is dependent on the "device type". Thus the intent is that any desired protection would be defined in the spec for that type. Since different situations would require different protection, I think specifying it here might be overkill.

3) Section 5.3 needs to be specific about other uses of this option

	i.e., it MUST NOT appear in segments other than SYN and
	the response

I suppose this is clearer than saying it MUST be in the SYN/SYN-ACK packets... Mostly because the current wording might be construed to imply the option must be present in all SYN packets, which is unlikely since its an "option", but...

	what happens in simultaneous open?

Wesley brought this up, and we added the last paragraph of section 5. It never happens in current use, so we haven't addressed it. Perhaps we should add some suggestions, but since its not expected or implemented, they would be vague.

4) the document is missing some key elements of any TCP option
description; in this case:

	what is the API extension that allows this value to be
	set or detected?

Its my understanding, and observation, that RFCs are protocol documents and do not generally specify APIs. Also, since all current implementations are proprietary, any APIs added to the draft would be speculative.

Andrew



Note: Messages sent to this list are the opinions of the senders and do not imply endorsement by the IETF.