Re: [BEHAVE] General Comments on xlate-stateful-07
marcelo bagnulo braun <marcelo@it.uc3m.es> Sat, 16 January 2010 12:50 UTC
Return-Path: <marcelo@it.uc3m.es>
X-Original-To: behave@core3.amsl.com
Delivered-To: behave@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id D64D23A685E for <behave@core3.amsl.com>; Sat, 16 Jan 2010 04:50:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -106.608
X-Spam-Level:
X-Spam-Status: No, score=-106.608 tagged_above=-999 required=5 tests=[AWL=-0.009, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
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 nd1tdNOpptUG for <behave@core3.amsl.com>; Sat, 16 Jan 2010 04:50:32 -0800 (PST)
Received: from smtp03.uc3m.es (smtp03.uc3m.es [163.117.176.133]) by core3.amsl.com (Postfix) with ESMTP id 2FF493A6778 for <behave@ietf.org>; Sat, 16 Jan 2010 04:50:31 -0800 (PST)
X-uc3m-safe: yes
Received: from r190-132-195-171.dialup.adsl.anteldata.net.uy (unknown [190.132.195.171]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp03.uc3m.es (Postfix) with ESMTP id 657B772E46A; Sat, 16 Jan 2010 13:50:24 +0100 (CET)
Message-ID: <4B51B60B.5040702@it.uc3m.es>
Date: Sat, 16 Jan 2010 13:50:19 +0100
From: marcelo bagnulo braun <marcelo@it.uc3m.es>
User-Agent: Thunderbird 2.0.0.23 (Macintosh/20090812)
MIME-Version: 1.0
To: Reinaldo Penno <rpenno@juniper.net>
References: <C768821D.E162%rpenno@juniper.net>
In-Reply-To: <C768821D.E162%rpenno@juniper.net>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 8bit
X-TM-AS-Product-Ver: IMSS-7.0.0.3116-6.0.0.1038-17134.007
Cc: IETF BEHAVE WG <behave@ietf.org>, Dave Thaler <dthaler@microsoft.com>, Dan Wing <dwing@cisco.com>
Subject: Re: [BEHAVE] General Comments on xlate-stateful-07
X-BeenThere: behave@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: mailing list of BEHAVE IETF WG <behave.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/behave>, <mailto:behave-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/behave>
List-Post: <mailto:behave@ietf.org>
List-Help: <mailto:behave-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/behave>, <mailto:behave-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 16 Jan 2010 12:50:33 -0000
Reinaldo Penno escribió:
>
> Sure, I included some comments in the detailed review and these are a subset
> of other issues I collected while going through the spec in relation to
> RFC5382.
>
> REQ-3: In NAT64 it is not clear the flexibility discussed in subsection a)
> and b) are possible or required.
>
>
not sure what you mean by this.
The current version of the draft explicty specifies how to perform
endpoint independent and address dependent filtering
> REQ-4: In NAT64 there is no SYN RCVD state in the proposed TCP state machine
> and therefore you seem to be moving into ESTABLISHED state too early.
>
not sure how req 4 requires a SYN RCVD state
there is an ongoing disucssion on the ml about whether the NAT64 shoudl
send an ICMP error at all, and there are some proponents that they it
shouldn't.
> REQ-4: In the NAT64 spec it is not clear on what happens after the lifetime
> expires in the case of simultaneous open. RFC5382 talks about sending ICMP
> unless subsection a) applies
>
this is being under disucssion right now
the problem is that in order to do so, the nat64 need to store the v4
syn during the 6 secs, an some people seem to have a problem with that
but as i said, this is being disucssed. If you have an opinion, please
state it
> REQ-5: In NAT64 the ability to reap idle sessions early if the NAT can
> determine if the endpoints are still alive is lost.
this is also being discussed in the ml right now, based on Bryan's
review abouth whether the NAT64 shoudl send keepalives to detect whether
the TCP connection is alive or not. Again, feel free to state your
opinion so we can reach consensus on this issue
> Moreover, the ability to
> configure the idle-timeout is also missing.
>
>
right,
i have added the follwoing text in all the occureences of the the
setting of the TCP session entry lifetite
The lifetime of the TCP session table entry is set
to at least to the maximum session lifetime. The value for the maximum
session lifetime MAY be configurable but it MUST not
be less than TCP_EST (the
established connection idle timeout as defined in
<xref target="RFC5382"></xref>). The default value for the maximum
session lifetime
SHOULD be set to TCP_EST.
> REQ-5: In the NAT64 spec the considerations on NAT throughput performance
> due to holding session state for TCP RST and TIME_WAIT assassinations due to
> holding session state are not discussed.
>
REQ5 leaves these aspects open and so the nat64 specification. Do you
have any particualr text that you would like to cinlcude in the nat64
spec w.r.t. this?
> REQ-5: In the NAT64 spec the transition from ESTABLISHED to CLOSING (or FIN
> WAIT-2) and FIN WAIT-1 is all bundled together so it is not clear when and
> who should start the TIME_WAIT timer (active vs. passive close).
>
the nat64 would not start a time wait. the conclusion form previous
discussions was to have a long (4 min) lifetime of the v4 fin + v6 fin
rcv state, so we can forward all remaining packets and then drop the
session. this shoudl accomodate for all reaining packets afaiu.
> REQ-6: In the NAT64 spec the considerations for ALGs seems to be missing.
> Moreover needs text on how to reconcile the recommendation to have FTP ALG
> enabled and the new specs.
>
>
NAT64 does not specifies any alg, so they are disabled by default, as
reccomended
The ftp64 case was debated and the conclusion was that it should be done
in a separated document, which is now the case, so any issues about ftp
alg shoudl be addressed by that document.
> There may be others after a more in-depth analysis.
please feel free to bring them up and we will address them
> In general I think the
> TCP state machine should be moved to a non-normative section or removed and
> substituted by text covering only the really important aspects as in RFC5382
> (which could be used almost verbatim). Otherwise I think more work is needed
> in specifying it.
>
> A similar analysis of REQs found in other documents (including surrounding
> text) should be done.
>
> For example, in the case of RFC5508:
>
> REQ-9: A clear statement such as the one found in REQ-9 seem to be missing
> from the ICMP handling section.
>
> REQ-10: Same as above. A concise section instead of many pages of discussion
> helps furthering the understanding of the specification.
>
>
in understand that both of these comments are not specific to the
stateful document and should be addressed by the xlate draft.
Regards, marcelo
>>> Therefore a proper analysis is needed of every REQ point. This would greatly
>>> benefit the WG and make the document much clearer.
>>>
>>>
>>> 2 - Implementation specific behavior
>>>
>>> The draft accidently specifies implementation specific behavior under the
>>> umbrella of ease of description, example, etc. Although existing
>>> descriptions or examples are very nice, they might cause confusion (they
>>> seem to already do given other emails on the list).
>>>
>>> Therefore I would suggest anything that is not normative within the
>>> normative section needs to be moved to an appendix or text stating beyond
>>> doubt that something is just an example and developers are free as long as
>>> external behavior is the same.
>>>
>>>
>>>
>> same question than above, have you pointed out exactly what text you
>> propose to move out of the normative descrtition?
>>
>>
>
> I included them in the detailed review: Data structures in general, TCP
> state machine, etc
>
>
>>> 3 - Security
>>>
>>> The security section is very light at this point. There are many documents
>>> pertaining to NAT security in general that should be referenced or more text
>>> needs to be there.
>>>
>>>
>>>
>> Do you have any concrete text or issues that should be covered in the
>> security section?
>>
>
> Some of comments pertaining to the analysis of REQs early in this email also
> have a security component to it and I included others in my detailed review:
> TCP RST, holding state, timers, etc.
>
> Moreover, the way the UDP and TCP handling is specified basically disallows
> building a more secure NAT implementation on top of it (more on it below).
> And this goes back to first point in relation to differences between
> previous behave documents and this one.
>
> For example, important security considerations related to inbound packets
> resetting the timers of sessions (RFC4787) are missing.
>
> " This document recommends that the timers for mapping be refreshed on
> outgoing packets (see REQ-6) and does not make recommendations about
> whether or not inbound packets should update the timers. If inbound
> packets update the timers, an external attacker can keep the mapping
> alive forever and attack future devices that may end up with the same
> internal address. "
>
> The NAT64 spec allows inbound packets by default to reset the timer in
> normal UDP packet handling and also in the case of TCP, TCP RST, etc. This
> is a important practical considerations that secure NAT implementations take
> into account.
>
>
>> Regards, marcelo
>>
>>
>>> Misc Item:
>>>
>>> 4 - The use X', T, t and others... I do not know the history behind this
>>> nomenclature but I would suggest something more intuitive such as S-IPv6,
>>> D-IPv6, etc.
>>>
>
> How about this one? Can actual addresses be used in section 1.2.2? Or some
> other nomenclature?
>
> Thanks,
>
> Reinaldo
>
>
>>> Thanks,
>>>
>>> Reinaldo
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>
>
>
- Re: [BEHAVE] General Comments on xlate-stateful-07 Reinaldo Penno
- Re: [BEHAVE] General Comments on xlate-stateful-07 marcelo bagnulo braun
- Re: [BEHAVE] General Comments on xlate-stateful-07 Reinaldo Penno
- Re: [BEHAVE] General Comments on xlate-stateful-07 marcelo bagnulo braun
- Re: [BEHAVE] General Comments on xlate-stateful-07 Reinaldo Penno
- Re: [BEHAVE] General Comments on xlate-stateful-07 marcelo bagnulo braun
- Re: [BEHAVE] General Comments on xlate-stateful-07 Reinaldo Penno
- Re: [BEHAVE] General Comments on xlate-stateful-07 Lars Eggert
- Re: [BEHAVE] General Comments on xlate-stateful-07 Lars Eggert
- Re: [BEHAVE] General Comments on xlate-stateful-07 Reinaldo Penno
- Re: [BEHAVE] General Comments on xlate-stateful-07 marcelo bagnulo braun
- Re: [BEHAVE] General Comments on xlate-stateful-07 Reinaldo Penno
- Re: [BEHAVE] General Comments on xlate-stateful-07 marcelo bagnulo braun
- Re: [BEHAVE] General Comments on xlate-stateful-07 Reinaldo Penno
- Re: [BEHAVE] General Comments on xlate-stateful-07 Reinaldo Penno
- Re: [BEHAVE] General Comments on xlate-stateful-07 marcelo bagnulo braun
- Re: [BEHAVE] General Comments on xlate-stateful-07 Reinaldo Penno
- Re: [BEHAVE] General Comments on xlate-stateful-07 WashamFan
- Re: [BEHAVE] General Comments on xlate-stateful-07 marcelo bagnulo braun
- Re: [BEHAVE] General Comments on xlate-stateful-07 WashamFan
- Re: [BEHAVE] General Comments on xlate-stateful-07 Lars Eggert
- Re: [BEHAVE] General Comments on xlate-stateful-07 Saikat Guha