Re: [tae] [tsv-area] Transport negotiation

Iljitsch van Beijnum <iljitsch@muada.com> Thu, 11 December 2008 10:00 UTC

Return-Path: <tae-bounces@ietf.org>
X-Original-To: tae-archive@ietf.org
Delivered-To: ietfarch-tae-archive@core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 4D2CD3A6C4C; Thu, 11 Dec 2008 02:00:39 -0800 (PST)
X-Original-To: tae@core3.amsl.com
Delivered-To: tae@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id D59413A6C42; Thu, 11 Dec 2008 02:00:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NrJbn1MSKhps; Thu, 11 Dec 2008 02:00:34 -0800 (PST)
Received: from sequoia.muada.com (unknown [IPv6:2001:1af8:2:5::2]) by core3.amsl.com (Postfix) with ESMTP id 9688F3A6C40; Thu, 11 Dec 2008 02:00:33 -0800 (PST)
Received: from [163.117.183.31] ([163.117.183.31]) (authenticated bits=0) by sequoia.muada.com (8.13.3/8.13.3) with ESMTP id mBB9xHDl058849 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Thu, 11 Dec 2008 10:59:18 +0100 (CET) (envelope-from iljitsch@muada.com)
Message-Id: <19C4DFEE-3A84-43AE-87E6-4D31E8E809C5@muada.com>
From: Iljitsch van Beijnum <iljitsch@muada.com>
To: james woodyatt <jhw@apple.com>
In-Reply-To: <0A0C187D-3104-4756-AF05-B87C1C39EC92@apple.com>
Mime-Version: 1.0 (Apple Message framework v929.2)
Date: Thu, 11 Dec 2008 11:00:15 +0100
References: <3BB334D8-B00C-48C1-ACBF-4D09576DEADF@mpi-sws.org> <492C7F97.3030000@isi.edu> <EDCC4CF2-DC3C-409F-8F99-3BE51BAE4111@surrey.ac.uk> <492DE8AD.1090300@isi.edu> <7DA33930-1767-492B-807E-7A7DA661AFE9@apple.com> <5AE49824-74B1-4ABE-BBD4-7DEAFA348245@apple.com> <3F1AB633-7E17-47C4-B126-D8D872B552C5@apple.com> <0191F3F9-CC3D-4925-90BC-15BC966FE012@apple.com> <78ACC2CD-C6E6-46A3-B198-0C0284917E94@apple.com> <0A0C187D-3104-4756-AF05-B87C1C39EC92@apple.com>
X-Mailer: Apple Mail (2.929.2)
Cc: tae@ietf.org, tsv-area@ietf.org
Subject: Re: [tae] [tsv-area] Transport negotiation
X-BeenThere: tae@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Transport Architecture Evolution <tae.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tae>, <mailto:tae-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/pipermail/tae>
List-Post: <mailto:tae@ietf.org>
List-Help: <mailto:tae-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tae>, <mailto:tae-request@ietf.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"; DelSp="yes"
Sender: tae-bounces@ietf.org
Errors-To: tae-bounces@ietf.org

On 10 dec 2008, at 20:45, james woodyatt wrote:

> I'm not talking about NAT gateways, especially given that I'm not  
> sure I believe that NAT66 will require port multiplexing (though, I  
> think it might).

Yes, why would we demux on the 128 bits that are there in clear sight,  
doing it on 16 others that may or may not be present elsewhere in an  
unpredictable place makes much more sense. </sarcasm>

> I'm only talking about stateful filtering IPv6 routers.

We "need" port numbers for stateful filters today (well, in the past,  
really) because someone may be running a vulnerable service on another  
port.

However, for non-TCP, non-UDP protocols we can assume that the hosts  
running those are keeping up with the times and don't run DCCP, SCTP  
or ???P services on certain ports so we should just allow these  
protocols without looking deeper inside them. We only need the old  
crap for TCP and UDP in case someone is running Windows 98 or XP  
without a service pack, anyway.

> Do we *not* want stateful filtering routers anymore?

I don't.

> Please please please... someone tell my managers and marketing  
> people!  I want to believe.  I really do.

We had this dicussion last year in the CPE context. You said you  
couldn't sell to those people letting through ANY unsolicited packets.

> I still think "layering new transports on UDP" is a kludge.

I tend to agree but even I can be pragmatic from time to time.

But this is really a pointless discussion except when inventing new  
transports, because all the other ones except RTP already exist and  
DON'T run on top of UDP so changing this to running ove UDP requires  
new hacks. Inventing new hacks because we don't like the old hacks  
doesn't seem like a very good use of our time.

Back to the transport negotiation issue: the whole idea of specifying  
TCP vs SCTP etc in URLs is nonsense, because the whole issue is that  
we don't know whether a client can support the new protocol. Feeding a  
client a URL it won't be able to parse just pushes the problem to the  
layer where URLs are created.

IPv6 got this part right: the URLs are the same but consenting clients  
and servers can discover that they share IPv6 capability and use it  
while oblivious servers and/or clients can remain oblivious. We could  
do transport negotiation in the same way (through the DNS) although  
this requires even more DNS lookups for clients that know the new  
protocols, which isn't great especially if the new stuff is rarely used.

Another option that wasn't really possible with the IP version  
negitiation is doing the negotiation in-band through test packets or  
options. However, test packets are also problematic when they are  
common while the things they are test for are uncommon. And some  
middleboxes barf on options...

> In my view, if we're looking for ways to make new IPv6 transports  
> capable of traversing stateful filters

Isn't that backwards? Shouldn't we adapt filters to our new protocols  
rather than the other way around? Especially with IPv6, where we can  
assume that there is no ossified legacy deployment, i.e., everything  
that runs IPv6 can assumed to be at least minimally upgradable.

But if we really want this we should probably come up with a "UDP  
ultralight" which would probably be ports and payload type, with  
possibly some SYN/FIN style bits to make statefulness workable. Bonus  
credit for putting this in a fixed place in the packet. We may also  
want to forbid the payload protocols from looking at the addresses for  
their checksum.
_______________________________________________
tae mailing list
tae@ietf.org
https://www.ietf.org/mailman/listinfo/tae