Re: [BEHAVE] proprietary implementation v.s standardisedprotocols//re: draft-xu-behave-nat-state-sync-00

Simon Perreault <simon.perreault@viagenie.ca> Thu, 03 December 2009 22:00 UTC

Return-Path: <simon.perreault@viagenie.ca>
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 BACC13A657C for <behave@core3.amsl.com>; Thu, 3 Dec 2009 14:00:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.209
X-Spam-Level:
X-Spam-Status: No, score=-2.209 tagged_above=-999 required=5 tests=[AWL=-0.209, BAYES_00=-2.599, J_CHICKENPOX_42=0.6, NO_RELAYS=-0.001]
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 nkd9Th9i2myT for <behave@core3.amsl.com>; Thu, 3 Dec 2009 14:00:34 -0800 (PST)
Received: from jazz.viagenie.ca (jazz.viagenie.ca [IPv6:2620:0:230:8000::2]) by core3.amsl.com (Postfix) with ESMTP id 6F0203A6947 for <behave@ietf.org>; Thu, 3 Dec 2009 14:00:34 -0800 (PST)
Received: from ringo.viagenie.ca (ringo.viagenie.ca [IPv6:2620:0:230:c000::67]) by jazz.viagenie.ca (Postfix) with ESMTPA id F17D421BAF; Thu, 3 Dec 2009 17:00:24 -0500 (EST)
Message-ID: <4B1834F8.3020903@viagenie.ca>
Date: Thu, 03 Dec 2009 17:00:24 -0500
From: Simon Perreault <simon.perreault@viagenie.ca>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.4pre) Gecko/20090922 Fedora/3.0-3.9.b4.fc12 Thunderbird/3.0b4
MIME-Version: 1.0
To: Reinaldo Penno <rpenno@juniper.net>
References: <C73D7101.B623%rpenno@juniper.net>
In-Reply-To: <C73D7101.B623%rpenno@juniper.net>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
Cc: Cameron Byrne <cb.list6@gmail.com>, "behave@ietf.org" <behave@ietf.org>, 'Xu Xiaohu' <xuxh@huawei.com>, Dan Wing <dwing@cisco.com>
Subject: Re: [BEHAVE] proprietary implementation v.s standardisedprotocols//re: draft-xu-behave-nat-state-sync-00
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: Thu, 03 Dec 2009 22:00:35 -0000

Reinaldo Penno wrote, on 2009-12-03 16:43:
> First of all you state that all NAT64 implementations will be the same
> because the standard is new.

This is exaggerated. I think that because NAT64 is *well specified* (compared
with NAT44), chances are higher that a standard state sync protocol will work.

> I re-read a _single_ section of NAT64 (3.2.4.  ICMP Query Session Handling).
> I found that developers have the following choices (and this does not go
> into implementation details):
> 
> * Local Security Policy can drop ICMPv6 packets (yes/no)
> * Local Security Policy can drop ICMPv6 packets configurable per
>   interface/rule/etc (yes/no for each one)> * ICMPv4 message will be sent back to sender (yes/no/configurable)
> * ICMPv4 message will be sent back to sender per configuration
>   interface/nat rule/etc (yes/no each one)
> * ICMPv4 message will be sent back to sender in case of filtering
>   (yes/no/configurable)
> * ICMPv4 message will be sent back to sender per configuration
>   (interface/rule/etc)

These do not affect state.

> * ICMPv6 lifetime can be configurable (yes/no)
> * ICMPv6 lifetime can be configurable within a certain range (yes/no)
> * ICMPv6 lifetime can be configurable with a granularity of ms/seconds/etc
>   (yes/no)
> * ICMPv4 lifetime can be configurable (yes/no)
> * ICMPv4 lifetime can be configurable within a certain range (yes/no)
> * ICMPv4 lifetime can be configurable with a granularity of ms/seconds/etc
>   (yes/no)

These will need to be taken into account by an eventual state sync protocol. For
example, we could have a phase at connection establishment where these
parameters are explicitly stated and we make sure that the two are configured
with the same values. Or we could do dynamic configuration in master/slave fashion.

I don't see this as anything more than a requirement for a state sync protocol.

> And do not even get me started in generic address-filtering behavior which
> is much more complex and have more implementation choices.

Please do! This is helpful design work! ;)

> And this the way things are because different providers have different
> networks and provider service to customer with different needs.

I don't see how this is relevant.

> Second, you indicate that operational complexity is something on the side.

Again, this is exaggerated. Of course you need NAT devices that are spec'ed
correctly. I don't see how this affects a state sync protocol.

> Can you elaborate on which tests need to be done in order to guarantee that
> this scenario will work between two different vendors?

So you mean that because vendor A and vendor B will not swear that each other's
stuff works fine, we should only use stuff from a single vendor? This statement
has nothing to do with NATs and applies in many other cases you know...

> Finally, If you pin down all specific behavior you need within all possible
> permutations of different vendors, weigh the operational cost of a
> multi-dimensional testing to find two boxes that can provide the High
> Availability with the NAT behavior you need, I think you will find out that
> NAT64-A and NAT64-B are made by the same vendor.

That could very well be true. It is also often the case for e.g. BGP speakers.
But some people like to run stuff from multiple vendors. And it works, and it
has advantages and disadvantages. Tradeoffs, etc.

Thanks,
Simon
-- 
DNS64 open-source   --> http://ecdysis.viagenie.ca
STUN/TURN server    --> http://numb.viagenie.ca
vCard 4.0           --> http://www.vcarddav.org