Re: [Softwires] Checksum neutrality and L4-protocol independence

Maoke <fibrib@gmail.com> Thu, 16 February 2012 02:34 UTC

Return-Path: <fibrib@gmail.com>
X-Original-To: softwires@ietfa.amsl.com
Delivered-To: softwires@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 23A9A21F84DA for <softwires@ietfa.amsl.com>; Wed, 15 Feb 2012 18:34:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.837
X-Spam-Level:
X-Spam-Status: No, score=-1.837 tagged_above=-999 required=5 tests=[AWL=-1.439, BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_41=0.6, MANGLED_SHOP=2.3, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vhqLUcqQxqQD for <softwires@ietfa.amsl.com>; Wed, 15 Feb 2012 18:34:28 -0800 (PST)
Received: from mail-qw0-f44.google.com (mail-qw0-f44.google.com [209.85.216.44]) by ietfa.amsl.com (Postfix) with ESMTP id 3898A21E800E for <softwires@ietf.org>; Wed, 15 Feb 2012 18:34:27 -0800 (PST)
Received: by qafi29 with SMTP id i29so3817104qaf.10 for <softwires@ietf.org>; Wed, 15 Feb 2012 18:34:27 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=2d/mpA1FQvTb+K2KxPapArVIXTpUuOsWRI01RrXkQlg=; b=HYyebPbYL4pz4w4bQZr41hFBE7rSg+pX1RF6fANvbrHl8z1/uudTyBgQLajDlvx/UJ 6O8rbI/coArlgvBVfi8hULeTigXV4TOvqkzFk74dgDenRjKHCbNg1/twnYRFR81jOLPg gUsxvS8WX0InRkXB6gZCs5tKh/MN5kzBpcrVc=
MIME-Version: 1.0
Received: by 10.229.77.12 with SMTP id e12mr557694qck.41.1329359667208; Wed, 15 Feb 2012 18:34:27 -0800 (PST)
Received: by 10.229.11.144 with HTTP; Wed, 15 Feb 2012 18:34:27 -0800 (PST)
In-Reply-To: <9E4E7E78-336B-4871-B96A-2C11B4ECCD3B@laposte.net>
References: <B140D6B2-1B19-43D7-9B63-6BEA83CEB164@juniper.net> <3AAD65F3-5169-49B7-9698-E820EF419B35@employees.org> <53ACB4FC-988F-443C-A936-1CA5B13180EB@free.fr> <C694D7DC-2F98-434F-8123-751E2C1A98D0@employees.org> <081C7074-F5E2-46B7-B2C8-E033F3E5BC15@laposte.net> <B94D39A0-CA66-4AE6-BDC5-E4DFA2D47BEC@employees.org> <A8A6FDA2-0FFC-44D2-BEDF-29FB012D3113@laposte.net> <4749FAFA-A522-4795-9B8A-9AA4B030E075@employees.org> <C38B2AD1-08F1-4ECD-8ADB-AE88BC34A0B9@laposte.net> <CAFUBMqW+RrHKYJbgLBSbm3RebQWcr6oMZRcCwbv3_QR13MLV1Q@mail.gmail.com> <9FD6B92C-9B42-4A30-9FF5-30A86F845E72@laposte.net> <CAFUBMqVygJv4k_zHsyccL-W3x_=tcaWe61_BoHheyN6p-FH5rA@mail.gmail.com> <8D2093C7-EC77-4CBA-9E4B-E4BEB3F74A26@laposte.net> <CAFUBMqWFiY+5oHucg83mAG3b3EW-xvjhoPTux_fUqfnp2Ee_Cw@mail.gmail.com> <9E4E7E78-336B-4871-B96A-2C11B4ECCD3B@laposte.net>
Date: Thu, 16 Feb 2012 11:34:27 +0900
Message-ID: <CAFUBMqWavEbHKmmUWSWuOZdMm_rHYn0cx3-ZyFUts-R=SRrjvw@mail.gmail.com>
From: Maoke <fibrib@gmail.com>
To: Rémi Després <despres.remi@laposte.net>
Content-Type: multipart/alternative; boundary="00235429e11cbe244f04b90baac1"
Cc: Softwires WG <softwires@ietf.org>
Subject: Re: [Softwires] Checksum neutrality and L4-protocol independence
X-BeenThere: softwires@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: softwires wg discussion list <softwires.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/softwires>, <mailto:softwires-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/softwires>
List-Post: <mailto:softwires@ietf.org>
List-Help: <mailto:softwires-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/softwires>, <mailto:softwires-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Feb 2012 02:34:30 -0000

2012/2/15 Rémi Després <despres.remi@laposte.net>

>
> 2012-02-15 à 03:15, Maoke a écrit :
>
>
>
> 2012/2/15 Rémi Després <despres.remi@laposte.net>
>
>>
>> Le 2012-02-14 à 16:21, Maoke a écrit :
>>
>>
>>
>> 2012/2/14 Rémi Després despres.remi@laposte.net
>>
>>>
>>>
>>  2) in the environment where single translation is also envolved (either
>>> stateless or stateful), L4 checksum rewriting is a MUST because sometimes
>>> there is only one address of the (src, dst)-pair following the
>>> checksum-neutral address scheme. (this is mentioned in RFC6052, giving up
>>> to enforce the checksum-neutrality in the address format, to my knowledge).
>>>
>>>
>>> I have aways acknowledged that L4 update is necessary for single
>>> translation, no disagreement.
>>> But here the problem is stateless IPv4 service across IPv6, a different
>>> problem where there is no such necessity.
>>>
>>>
>>
>> RFC6052 includes also the double-translation case. i guess operators
>> wouldn't like to deploy different translators here for single translation
>> while there for double.
>>
>>
>>>
>>> The point is that, where it can be used, checksum neutrality is MORE
>>> GENERAL than L4 update.
>>>
>>>
>>
>> how do you define the "generality"? doing L4 update is a safe choice no
>> matter if the addresses are checksum-neutral or not.
>>
>>
>>>
>>> Besides, but less important, it is simpler as far as the number of
>>> specifications it depends on is concerned (no need to know where checksum
>>> fields are for different protocols).
>>>
>>>
>>
>>>
>>> i understand Ole has the same opinion: as we anyway have it,
>>>
>>>
>>> There can be implementations of BRs that are independent of single
>>> translation.
>>> They don't need to know where checksums are placed in various protocols.
>>>
>>>
>>> we don't need it in the address scheme standard
>>>
>>>
>>> One can live with a standard less good than it could be but, since we
>>> are working for the future, let's make them as good as we can now.
>>> In any case, this is no excuse to claim that, with checksum neutrality
>>> the following is not correct "BRs need no change for any new protocol
>>> having ports at their usual place and TCP-like checksum" (DCCP, SCTP if
>>> it would acce^t TCP-like checksum, any other.)
>>>
>>>
>> i think making L4 checksum update is a safe choice for standard. once we
>> have a new L4 protocol,
>>
>> the BR surely need a change to check if this new protocol is a
>> TCP-checksumed one.
>>
>>
>> 1. A key, that probably hasn't been clarified enough so far (thanks for
>> in fact raising it), is the following:
>> - With checksum neutrality, the BR DOESN'T NEED to know about UDP, TCP
>> etc. (see R-22 (3) of the 4rd-U draft).
>>
>> If, by mistake a remote host sends to a shared IPv4 address a packet
>> whose L4 payload has no ports at their usual places, the packet, if it
>> reaches a CE, will ALWAYS be  discarded there (protocol unknown by the
>> NAT44) => no operational problem.
>>
>
> MAP should also works for the case where IPv4 addresses are not shared and
> there is no NAT44.
>
>
> Indeed, in particular for CEs that are assigned IPv4 prefixes.
> So does 4rd-H, without identified problem.
>
>
> "protocol unknown" should be detected and discarded at both CE and BR in
> their major module instead of the NAT44 part.
>
>
> I don't think so:
> - If a CE has a non-shared address, or an IPv4 prefix, BRs shouldn't
> exclude any protocol in packets sent to this CE.
> - If a CE has a shared address, it needs a NAT that the CE informs it the
> restricted port set. This NAT already has all what is needed to refuse
> protocols it doesn't understand.
>

what if my NAT has understood XXXP but your CE hasn't? to my understanding,
CE only informs the restricted port set regardless of the protocol.


>
>
>
> This is one more instance where it isn't useful to try and guess what
>> mistakes people might make, and to add specific software for them while
>> tools already exist to detect and signal them. (Keep it simple)
>>
>
> 1. as the above, MAP should not depend upon NAT44.
>
> 2. on the other hand, even the NAT44 works in front of CE, there is no
> NAT44 works between BR and a remote host (not belonging to the MAP domain).
> the assumption of "NAT44 discards unknown protocol" only available in the
> case where communication is initialized by a client in the CE-delegated
> network. be more clarified:
>
>     host.A --- NAT44 --- CE ---- IPv6 domain ---- BR --- IPv4 Internet ---
> host.B
>
> (a) A initiates connection to B => ok, that the NAT44 checks protocol
> unknown.
> (b) B initiates connection to A => BR has to check if L4 protocol is
> supported or not.
> (c) A initiates communication to B through a UDP or TCP signaling channel
> while B reply a connection request on another channel over a new L4
> protocol => BR has to check if the new L4 protocol is supported or not.
>
> and in the case of (c), R-22 (3)'s processing looks dangerous -- blindly
> deciding where the port is located without looking at the L4 protocol
> layout narrows the applicability of the proposal.
>
>
> Which danger?
>
On the contrary, avoiding that BRs depend on a list of L4 protocols
> enlarges their applicability.
>

> however, surely it is not a problem if you state the scope of
> applicability of 4rd-U is LIMITED to UDP, TCP and L4 protocols which HAS
> BEEN KNOWN (known by the BR/CE rather than human) as having the same header
> layout as well as the same checksum algorithm (without variation).
>
>
> I just say (and repeat) that, for shared-address CEs, 4rd-U BRs
> support WITHOUT MODIFICATION any L4 protocol that has ports at their usual
> place and a TCP-like checksum.
>
> i don't think MAP standard have nor should have such a limitation.
>
>
> Which limitation?
> On the contrary, checksum neutrality eliminates the need for a BR upgrade
> if a new protocol using conventional ports and TCP-like checksum is
> introduced.
>
>
> A MAP-compliant device supports UDP, TCP, DCCP, SCTP today,
>
>
> Not SCTP today, for sure.
> Also, as I think you know, there is uncertainty concerning DCCP because
> RFC6145 sec 4.5 says:
> "Other transport protocols (e.g., DCCP) are OPTIONAL to support".
>

it depends on the understanding of the "OPTIONAL". if it is OPTIONAL for
the operation domain, it is not a problem for double translation. if it is
OPTIONAL per device, the uncertainty is a problem where src-translator
makes DCCP checksum rewrite but dst-translator doesn't. (inverse case,
where src translator doesn't make but dst do, is not a problem though.)


>
>
> with the same logic, and will support any emerging L4 protocol in the
> future, again with the same logic. requiring L4 checksum update for any
> supported protocol makes it a stable standard, and the checksum update
> logic is stable for any protocol. in 4rd-U, however, with the R-22 (3),
> today it can support UDP, TCP, DCCP and SCTP-variant(? not sure due to lack
> of personal knowledge), while if tomorrow we have a new protocol XXXP:
>    a) XXXP has the same layout and same checksum logic, then the 4rd-U
> compliant BR should be changed in order it knows that XXXP is also
> supported and the logic R-22 (3) is still available;
>
>
> Not AFAIK.
> You can check that R-22 (3) does not depend on any L4 protocol (the only
> protocol that needs to be recognized is ICMP (a layer-3 protocol).
>
>    b) XXXP is different, then 4rd-U compliant BR should be changed in
> order it knows that XXXP is now supported but different logic should be
> applied.
>
> in either a) and b), the BR should be changed otherwise the XXXP will be
> not supported. therefore i still think Ole's argument is not unfair here.
>
>
> Let me repeat once more:
> If XXXP has (1) the same checksum algorithm, (2) the same port layout
> (like UDP, TCP, DCCP and SCTP do have), (3) a different layout for the
> checksum field (as is the case for UDP, TCP, DCCP, SCTP), THEN no new logic
> is needed in 4rd-H (because of its checksum neutrality).
>
> I do hope this point will eventually be understood in the WG, rather
> repeatedly negated.
>

ok, i think we do understand your point but please check. you mean: if
addresses are checksum-neutral, we don't need to have a list of supported
protocol in BR and just let it pass any protocol with the assumption that
it is TCP-layouted/checksumed. if the "any protocol" happens to really have
TCP-layout and TCP-checksum, then things are happy and the addresses have
ensured the checksum validity even without L4 rewrite. if the "any
protocol", unfortunately, happens to have another layout and/or another
checksum, then BR also treat it as it were TCP-layouted/checksumed but let
it fail at the end host or CE. right?

here it is what i said R-22 (3) in 4rd-U is dangerous. it says:

   + If the packet Protocol is not ICMP, bits 0-15 for an
   IPv4 source address, and bits 16-31 for a destination
   address.

well doesn't it mean: even if the protocol has another layout, R-22 (3)'s
BR prefer to ignore the fact, making messy mapped addresses with blindly
assuming the protocol follows the TCP-layout!? (there is no NAT44 before BR
to ensure the "unknown" protocol has been dropped.) i would further point
out that, the messy mapped destination address may navigate your packet in
a wrong direction towards a wrong CE where even the "fail at end" may fail.

therefore i do agree Ole's argument. because we think any protocol should
be certainly supported, or certainly reported as not-supported, rather than
blindly trying a seemingly "universal" logic.


>
> btw, regarding the below "new standard for a new problem", i'd like to
> emphasize it is not a new problem as RFC6052 has discussed it. it is an
> incorrect understanding to think RFC6052/RFC6145 is designed only for
> single translation. since the very beginning of the stateless address
> mapping/translation design, the single and double translations have being
> considered.
>
>
> I have no intention to negate anything about what designers of
> RFC6052/6145 considered (I wasn't there ;-)).
>
> The problem which IS NEW is how to design a stateless v4/v6 solution that:
> - is AS TRANSPARENT to IPv4 as encapsulation, without any restriction or
> doubt
>

NOT AS TRANSPARENT to IPv4 as encapsulation at least in following 2 points:

1) 4rd-H packet's Hop Limit is decreased per hop in the IPv6 domain. this
is not a behavior of encapsulation but a behavior of translation.

2) 4rd-U draft, at R-33, states its IPv6-domain-generated ICMPv6 message
will be translated to ICMPv4 with the logic of RFC6145 Sec 5.2. please note
that RFC6145 Sec 5.2 is a typical behavior of translation rather than
encapsulation. for the encapsulation, the semantics of ICMPv6 message
processing should be quite different (cf. RFC2473, Sec 8.) (btw, 4rd-U
draft 03 contains the RFC2473 in the reference list but never cites it in
the main text).

if we say some fields are transparent, that's ok. but if we are talking
about the IP as a whole, TRANSPARENCY implies not only the consistency of
packet header fields but also the behavior of hiding details of the
carrying underlay infrastructure.

best,
maoke


> - yet works with IPv6-only port-based ACLs and IPv6 Web caches.
> In my understanding, 4rd-H is indeed such a solution (and is the only one
> on the table).
>
>
> Regards,
> RD
>
> PS: Relationship of 4rd-U with single translation XLATs of RFC6145 is a
> different subject which deserves a discussion thread with another title.
>
> ...
>
>