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

Maoke <fibrib@gmail.com> Wed, 15 February 2012 02:15 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 D6CE721F8574 for <softwires@ietfa.amsl.com>; Tue, 14 Feb 2012 18:15:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.984
X-Spam-Level:
X-Spam-Status: No, score=-2.984 tagged_above=-999 required=5 tests=[AWL=-0.286, BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_41=0.6, 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 Ox0ilaklS-ho for <softwires@ietfa.amsl.com>; Tue, 14 Feb 2012 18:15:24 -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 458E321F8573 for <softwires@ietf.org>; Tue, 14 Feb 2012 18:15:24 -0800 (PST)
Received: by qafi29 with SMTP id i29so2652144qaf.10 for <softwires@ietf.org>; Tue, 14 Feb 2012 18:15:23 -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=zfwUd34d1R6Ou5vjxmUWQJl/MIy+awV8Ekq0MD3B64o=; b=QCuGXBGRgJg4mYBxtwVhS6/8jJHC7UP+xDnVwIECXL5MTocWh8aGaw7d+c2dEEMZe+ QrEjjeSZdEQ9DHNpRXJhnK8AFGQSNgX4gjRHICPcjiV8Xj3aHB/yKG4dcy3ZjtWN0wzc zDHUhQwEfTqpT3MGo+TTQo30TpD8rB42pMndE=
MIME-Version: 1.0
Received: by 10.229.137.76 with SMTP id v12mr14082800qct.61.1329272122788; Tue, 14 Feb 2012 18:15:22 -0800 (PST)
Received: by 10.229.11.144 with HTTP; Tue, 14 Feb 2012 18:15:22 -0800 (PST)
In-Reply-To: <8D2093C7-EC77-4CBA-9E4B-E4BEB3F74A26@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>
Date: Wed, 15 Feb 2012 11:15:22 +0900
Message-ID: <CAFUBMqWFiY+5oHucg83mAG3b3EW-xvjhoPTux_fUqfnp2Ee_Cw@mail.gmail.com>
From: Maoke <fibrib@gmail.com>
To: Rémi Després <despres.remi@laposte.net>
Content-Type: multipart/alternative; boundary="00235452ea70b04b9304b8f748a1"
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: Wed, 15 Feb 2012 02:15:26 -0000

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. "protocol unknown" should be detected and discarded at
both CE and BR in their major module instead of the NAT44 part.


>
> 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.

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 don't think MAP standard have nor should have such a limitation. A
MAP-compliant device supports UDP, TCP, DCCP, SCTP today, 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;
   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.

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.

- maoke


>
> OK?
>
>
> at least the BR's code should include the new protocol number in to the
> list of checksum-neutrality-compatible.
>
>
> See above.
>
>
> A better BR needs also to check the packet integrity with ensuring that
> the checksum is correct and there a L4 activity is not avoidable.
>
>
> 2. A less good BR in my understanding: more processing for no appreciable
> gain.
>
>  therefore i do agree with Ole's argument.
>
>
> if i make anything incorrect, please point out.
>
>
> See above.
>
> Cheers,
> RD
>
>
>
> best,
> maoke
>
>>  (but it could be a recommendation for the operators to enable the
>> address-level checksum neutrality,
>>
>>
>> What remains to be seen is what is gained by not having it a MUST while
>> we are specifying a new standard for a new problem.
>>
>> Cheers,
>> RD
>>
>> put in either prefix or interface id, through the address assignment, in
>> order to help any L4 protocol when its TCP-flavor checksum rewrite happens
>> not to be considered/implemented).
>>
>> cheers,
>> maoke
>>
>>
>>
>
>