Re: [BEHAVE] draft-chen-behave-rsnat-01

Iljitsch van Beijnum <iljitsch@muada.com> Tue, 28 July 2009 19:13 UTC

Return-Path: <iljitsch@muada.com>
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 42E4B3A6AD8 for <behave@core3.amsl.com>; Tue, 28 Jul 2009 12:13:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.968
X-Spam-Level:
X-Spam-Status: No, score=-5.968 tagged_above=-999 required=5 tests=[AWL=0.631, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
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 dlYEizQkZTvZ for <behave@core3.amsl.com>; Tue, 28 Jul 2009 12:13:02 -0700 (PDT)
Received: from sequoia.muada.com (sequoia.muada.com [83.149.65.1]) by core3.amsl.com (Postfix) with ESMTP id 3265C3A6CD1 for <behave@ietf.org>; Tue, 28 Jul 2009 12:13:02 -0700 (PDT)
Received: from [10.43.1.106] ([77.241.97.116]) (authenticated bits=0) by sequoia.muada.com (8.13.3/8.13.3) with ESMTP id n6SJCbkc079259 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Tue, 28 Jul 2009 21:12:41 +0200 (CEST) (envelope-from iljitsch@muada.com)
Message-Id: <7EF301E8-5F6A-4EDC-98BF-CCFFEF0937CD@muada.com>
From: Iljitsch van Beijnum <iljitsch@muada.com>
To: Chen Gang <phdgang@gmail.com>
In-Reply-To: <36ba02b00907280708l7bd61c7bhf51773b059d51286@mail.gmail.com>
Content-Type: text/plain; charset="US-ASCII"; format="flowed"; delsp="yes"
Content-Transfer-Encoding: 7bit
Mime-Version: 1.0 (Apple Message framework v935.3)
Date: Tue, 28 Jul 2009 21:12:47 +0200
References: <2A75F3F1-B253-4525-9082-5FF2A4CFFF6D@muada.com> <36ba02b00907280708l7bd61c7bhf51773b059d51286@mail.gmail.com>
X-Mailer: Apple Mail (2.935.3)
Cc: Behave WG <behave@ietf.org>
Subject: Re: [BEHAVE] draft-chen-behave-rsnat-01
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: Tue, 28 Jul 2009 19:13:03 -0000

I have reread the draft.

If I understand correctly, the idea is to use BGP to synchronize state  
between multiple stateful translators, where each translator handles a  
part of the address space used in translation at any time. Many people  
will argue that this deviates too far from BGP's purpose.

I can see that argument, but rather than convince you to not use BGP  
for this, I would like to explain that _if_ you're going to use BGP  
for this, you'll have to think about how to do that.

What you need is for mapping information to be exchanged that consists  
of IPv4 and IPv6 source and destination addresses and ports and the  
protocol. That's 9 items. You can probably optimize a few of them  
away, but using the normal IPv4 address family would require you to  
encode the remaining information in a new path attribute. However,  
this doesn't work: if translator A has a mapping from 2001::2001 to  
192.0.2.1 and translator B from 2002::2002 to 192.0.2.1, then if they  
both announce this to translator C, C would not combine this  
information but rather select either the info from A or from B.

(And you define the attribute as transitive, which means that it would  
be propagated in eBGP, which is unnecessary and has the potential for  
problems when the information leaks.)

What would work better here if you defined a new address family that  
consists of the concatenation of source address, source port,  
destination address, destination port. This could be either IPv4 or  
IPv6. Then the other protocol version addresses and ports plus the  
protocol number would be encoded in a path attribute. This way, each  
mapping would be a separate NLRI in the new AFI and there would be no  
problem merging the information.