Re: [Int-area] practical issues with using v4-mapped addresses fornat64
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Int-area] practical issues with using v4-mapped addresses fornat64



Maybe I shouldn't have stuck my finger on this because it seems I don't have a clear idea what are the scenarios being discussed. I hope this gets clarified in some document at some point..

On Fri, 25 Jul 2008, marcelo bagnulo braun wrote:
Exactly! As you demonstrated, host stacks needs to be modified no matter what.

well, not really
If you use a local prefix as currently done, you don't need to modify the hosts, right?

Right (at least modify in this respect), my above comment was written in the context using the mapped addresses.

If you choose a prefix that is supposed to be "well known" (used by all implementations), you could overload the existing use of mapped addresses, or choose something else altogether. Given that you can't depend on the existing behaviour of mapped addresses anyway, if you go this "fixed address block" route, the least astonishing failure modes could be achieved with aFrom int-area-bounces at ietf.org Fri Jul 25 02:23:16 2008
Return-Path: <int-area-bounces at ietf.org>
X-Original-To: int-area-archive at megatron.ietf.org
Delivered-To: ietfarch-int-area-archive at core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1])
	by core3.amsl.com (Postfix) with ESMTP id 95F2E3A689D;
	Fri, 25 Jul 2008 02:23:16 -0700 (PDT)
X-Original-To: int-area at core3.amsl.com
Delivered-To: int-area at core3.amsl.com
Received: from localhost (localhost [127.0.0.1])
	by core3.amsl.com (Postfix) with ESMTP id B5C2C3A689D
	for <int-area at core3.amsl.com>; Fri, 25 Jul 2008 02:23:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.299
X-Spam-Level: X-Spam-Status: No, score=-2.299 tagged_above=-999 required=5 tests=[AWL=0.300, BAYES_00=-2.599]
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 cRCuE1vfz9xC for <int-area at core3.amsl.com>;
	Fri, 25 Jul 2008 02:23:13 -0700 (PDT)
Received: from netcore.fi (eunet-gw.ipv6.netcore.fi [IPv6:2001:670:86:3001::1])
	by core3.amsl.com (Postfix) with ESMTP id D4C513A6899
	for <int-area at ietf.org>; Fri, 25 Jul 2008 02:23:12 -0700 (PDT)
Received: from netcore.fi (localhost [127.0.0.1])
	by netcore.fi (8.13.8/8.13.8) with ESMTP id m6P9N3sd027548;
	Fri, 25 Jul 2008 12:23:03 +0300
Received: from localhost (pekkas at localhost)
	by netcore.fi (8.13.8/8.13.8/Submit) with ESMTP id m6P9N0kl027538;
	Fri, 25 Jul 2008 12:23:01 +0300
Date: Fri, 25 Jul 2008 12:23:00 +0300 (EEST)
From: Pekka Savola <pekkas at netcore.fi>
To: marcelo bagnulo braun <marcelo at it.uc3m.es>
In-Reply-To: <4889814F.1000604 at it.uc3m.es>
Message-ID: <alpine.LRH.1.10.0807251124310.26103 at netcore.fi>
References: <48846C5B.2050602 at it.uc3m.es><E9CACA3D8417CE409FE3669AAE1E5A4F04
	589BDD87 at NA-EXMSG-W601.wingroup.windeploy.ntdev.microsoft.com><F7F81ECB-FD
	B
	F-401A-82D9-FEB27E638C41 at muada.com><alpine.LRH.1.10.0807240820540.23361 at n
	et core.fi><02018E7E-07E4-40F7-9A16-F53C43E6813C at muada.com>
	<alpine.LRH.1.10.0807250808510.21379 at netcore.fi>
	<4889814F.1000604 at it.uc3m.es>
User-Agent: Alpine 1.10 (LRH 962 2008-03-14)
MIME-Version: 1.0
X-Virus-Scanned: ClamAV 0.93.1/7818/Thu Jul 24 23:42:11 2008 on otso.netcore.fi
X-Virus-Status: Clean
Cc: "int-area at ietf.org" <int-area at ietf.org>,
	Philip Matthews <philip_matthews at magma.ca>
Subject: Re: [Int-area] practical issues with using v4-mapped addresses
fornat64
X-BeenThere: int-area at ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: IETF Internet Area Mailing List <int-area.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/int-area>,
	<mailto:int-area-request at ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/pipermail/int-area>
List-Post: <mailto:int-area at ietf.org>
List-Help: <mailto:int-area-request at ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/int-area>,
	<mailto:int-area-request at ietf.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: int-area-bounces at ietf.org
Errors-To: int-area-bounces at ietf.org

Maybe I shouldn't have stuck my finger on this because it seems I don't have a clear idea what are the scenarios being discussed. I hope this gets clarified in some document at some point..

On Fri, 25 Jul 2008, marcelo bagnulo braun wrote:
Exactly! As you demonstrated, host stacks needs to be modified no matter what.

well, not really
If you use a local prefix as currently done, you don't need to modify the hosts, right?

Right (at least modify in this respect), my above comment was written in the context using the mapped addresses.

If you choose a prefix that is supposed to be "well known" (used by all implementations), you could overload the existing use of mapped addresses, or choose something else altogether. Given that you can't depend on the existing behaviour of mapped addresses anyway, if you go this "fixed address block" route, the least astonishing failure modes could be achieved with a new spe new special prefix.

the problem that Dave has pointed out, is that if you use a local prefix, the dual stack hosts can't tell if there is native connectivity or translated connectivity and that if they select translated connectivity the apps that don't work through nats would break.

Are we discussing a scenario where a v6-only host is in a network where the link it attaches to has no v4 (but further upstream there could be but necessarily isn't)? If so (there is no fallback possible to v4) there is no point in giving the host another prefix unless you're at the same time able to signal how it's special and that it's in fact being used in the network for something. This seems to call for something like a DHCPv6 option. The same DHCPv6 message exchange could deploy address selection policies to the host.

Or are we talking about "local prefix" in the sense, "DNS-ALG will use the local prefix to change responses, but the prefix isn't used to assign addresses on a host" ?

the goal is to solve that
...
the  next question is what about v4 compatible prefix? could we use that one?

the benefit of this one is that it is also in the default policy table in rfc3484 and it then allows dula stack hosts to preffer native connectivity than translated connectivity,

Compatible is slightly better because it doesn't overload existing non-obsoleted addressing mechanism. But still -- what would be the benefit of a host sending packets out with v4 compatible destination addresses if it doesn't know that some translator is going to do something with them? Are you assuming either that translators would be prevalent enough that attempting such communication would be feasible? Or that it doesn't cause that much harm? Or something else? My point here is that there already should be a requirement to signal the presence of a translator in the network, and if there is, we could piggyback the rest of the configuration with that.

Maybe an important distinction is whether your peers (or those wishing to initiate sessions to you) also need to understand the prefix, and if so, why. (Why isn't obvious to me at the moment because usually they don't have alternatives to choose from.) On the other hand, it's easier if only the host and/or the local site needs to understand the prefix.

I would like to understand which are all these problems in more detail
could you expand in source spoofing and in route pollution?

How does the first hop router verify that a packet with a special source address was correctly sent (to the same level of correctness as available with unicast RPF check on the router or proposed SAVI WG mechanisms)?

If such packets are forwarded beyond the first hop router (e.g., from an enterprise network to ISP), how does the ISP verify that the enterprise is not sending junk with addresses it doesn't have (e.g. flooding attacks)?

Or are the special source addresses routable back to the networks originating them? (If they aren't how could such one-way communication be useful?) If they are routable, wouldn't this more or less require that v6 BGP and routing would also need to route these special prefixes for all the v4 prefixes currently or previously used?

The result could be that the core routers would need to carry IPv4 routing table, IPv6 native routing table and IPv6 embedded routing table (a subset of v4 routing table).

i understand the need for signalling the prefix, what do you need an api call for? how do you deal with legacy dual stack hosts to not use translated connecitivity when native is available?

Not sure about the API. I guess it depends on how you deploy the name->address mapping. I guess the host could also query both and synthetize a response. This might imply API modifications. You could possibly do without them with a different placement of mapping function. Not sure whether/how the application would need to be able to signal its interest for v4/v6-pure/v6-translated connectivity -- maybe the stack can figure it out on cial prefix.

the problem that Dave has pointed out, is that if you use a local prefix, the dual stack hosts can't tell if there is native connectivity or translated connectivity and that if they select translated connectivity the apps that don't work through nats would break.

Are we discussing a scenario where a v6-only host is in a network where the link it attaches to has no v4 (but further upstream there could be but necessarily isn't)? If so (there is no fallback possible to v4) there is no point in giving the host another prefix unless you're at the same time able to signal how it's special and that it's in fact being used in the network for something. This seems to call for something like a DHCPv6 option. The same DHCPv6 message exchange could deploy address selection policies to the host.

Or are we talking about "local prefix" in the sense, "DNS-ALG will use the local prefix to change responses, but the prefix isn't used to assign addresses on a host" ?

the goal is to solve that
...
the  next question is what about v4 compatible prefix? could we use that one?

the benefit of this one is that it is also in the default policy table in rfc3484 and it then allows dula stack hosts to preffer native connectivity than translated connectivity,

Compatible is slightly better because it doesn't overload existing non-obsoleted addressing mechanism. But still -- what would be the benefit of a host sending packets out with v4 compatible destination addresses if it doesn't know that some translator is going to do something with them? Are you assuming either that translators would be prevalent enough that attempting such communication would be feasible? Or that it doesn't cause that much harm? Or something else? My point here is that there already should be a requirement to signal the presence of a translator in the network, and if there is, we could piggyback the rest of the configuration with that.

Maybe an important distinction is whether your peers (or those wishing to initiate sessions to you) also need to understand the prefix, and if so, why. (Why isn't obvious to me at the moment because usually they don't have alternatives to choose from.) On the other hand, it's easier if only the host and/or the local site needs to understand the prefix.

I would like to understand which are all these problems in more detail
could you expand in source spoofing and in route pollution?

How does the first hop router verify that a packet with a special source address was correctly sent (to the same level of correctness as available with unicast RPF check on the router or proposed SAVI WG mechanisms)?

If such packets are forwarded beyond the first hop router (e.g., from an enterprise network to ISP), how does the ISP verify that the enterprise is not sending junk with addresses it doesn't have (e.g. flooding attacks)?

Or are the special source addresses routable back to the networks originating them? (If they aren't how could such one-way communication be useful?) If they are routable, wouldn't this more or less require that v6 BGP and routing would also need to route these special prefixes for all the v4 prefixes currently or previously used?

The result could be that the core routers would need to carry IPv4 routing table, IPv6 native routing table and IPv6 embedded routing table (a subset of v4 routing table).

i understand the need for signalling the prefix, what do you need an api call for? how do you deal with legacy dual stack hosts to not use translated connecitivity when native is available?

Not sure about the API. I guess it depends on how you deploy the name->address mapping. I guess the host could also query both and synthetize a response. This might imply API modifications. You could possibly do without them with a different placement of mapping function. Not sure whether/how the application would need to be able to signal its interest for v4/v6-pure/v6-translated connectivity -- maybe the stack can figure it out on its own.its own.

Wrt legacy dual stack, it doesn't feel like a strong requirement to be able to avoid modifications to v6 code. Deploying local v6 policies is already existing code though (not sure of its practicability).

If you don't deploy additional addresses to hosts, the only point of consideration is when a mapping function like DNS would return multiple entries -- for a v6-only host, a v6-only response requires no change. v4-only response requires translation, but the host has no alternative so that's trivial. A v6+v4 response could be either a) left as is, b) augmented to v6+v4trans+v4, c) changed to v6+v4trans, or d) v4 removed, ie. changed to just v6. In this case, if v6 connectivity would work OK to destinations advertising v6 connectivity (I suspect it should if you're willing to deploy v6-only hosts and networks!), a) or d) could both be viable options and there is no selection problem.

--
Pekka Savola                 "You each name yourselves king, yet the
Netcore Oy                    kingdom bleeds."
Systems. Networks. Security. -- George R.R. Martin: A Clash of Kings
_______________________________________________
Int-area mailing list
Int-area at ietf.org
https://www.ietf.org/mailman/listinfo/int-area




Wrt legacy dual stack, it doesn't feel like a strong requirement to be able to avoid modifications to v6 code. Deploying local v6 policies is already existing code though (not sure of its practicability).

If you don't deploy additional addresses to hosts, the only point of consideration is when a mapping function like DNS would return multiple entries -- for a v6-only host, a v6-only response requires no change. v4-only response requires translation, but the host has no alternative so that's trivial. A v6+v4 response could be either a) left as is, b) augmented to v6+v4trans+v4, c) changed to v6+v4trans, or d) v4 removed, ie. changed to just v6. In this case, if v6 connectivity would work OK to destinations advertising v6 connectivity (I suspect it should if you're willing to deploy v6-only hosts and networks!), a) or d) could both be viable options and there is no selection problem.

--
Pekka Savola                 "You each name yourselves king, yet the
Netcore Oy                    kingdom bleeds."
Systems. Networks. Security. -- George R.R. Martin: A Clash of Kings
_______________________________________________
Int-area mailing list
Int-area at ietf.org
https://www.ietf.org/mailman/listinfo/int-area



Note: Messages sent to this list are the opinions of the senders and do not imply endorsement by the IETF.