Re: site local addresses (was Re: Fw: Welcome to the InterNAT...)

2003-03-31 Thread Kurt Erik Lindqvist

	David,

let's not mix the problem with provider independent addressspace with 
the SL issue. The first needs to be solved anyway, and SLs are not the 
answer.

Best regards,

- kurtis -

What happens when you change providers?

Rgds,
-drc
On Wednesday, March 26, 2003, at 04:01  PM, Ted Hardie wrote:

Michel,
	I don't think something needs to be provider independent
to fit this bill.  Getting a slice of the global address space from
some provider and choosing not route a portion of it (even
if that portion is 100%) seems to me to create non-routed
globally unique space.  Are you concerned that doing so
has some impact on the routing system that needs to be
considered?
	Money and other annoyances are certainly concerns we
all face.  In that spirit please understand that keeping site local 
costs
different money and creates different annoyances.
regards,
		Ted






Thinking differently about the site local problem (was:RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread John C Klensin
Tony,

I've been trying to get my mind around the various issues here, 
and I keep getting back to the same place, so I think I need to 
embarrass myself by making a proposal that I find frightening.

Let's assume, as I think you have suggested, that SL is all 
about local addresses and filtering, and not about some special 
prefix that applications need to recognize.  I'm still not sure 
I believe that, but let's assume it is true and see where that 
takes us.

Let's also remember the long path that got us to CIDR and 1918. 
Our original position was that anyone using TCP/IP (v4) should 
have unique address space.  I remember many discussions in which 
people were told don't just grab an address on the theory that 
you would never connect. Our experience has been that, sooner or 
later, you might connect to the public network, or connect to 
someone else who has used 'private' (or 'squatter') space... 
unique addresses will save you, and everyone else, a lot of 
trouble.  In that context, 1918 and its predecessors came out 
of two threads of developments:

* we were running short of addresses and wanted to
discourage unconnected (or hidden) networks from using
up public space and

* we hoped that, by encouraging such isolated networks
to use some specific address ranges, those ranges could
be easily and effectively filtered at the boundaries.
We can debate how well either really worked, or what nasty 
side-effects they caused, but probably it makes little 
difference in the last analysis except to note that, no matter 
what we do, leaks happen.

Now one of the problems IPv6 was supposed to solve was too 
little address space or, more specifically, our having to make 
architecturally bad decisions on the basis of address space 
exhaustion.  I hope we have solved it.  If we haven't, i.e., if 
the address space is still too small, then the time to deal with 
that issue is right now (or sooner), before IPv6 is more broadly 
deployed (and it better be variable-length the next time, 
because, if we are conceptually running short of space already, 
it would be, IMO, conclusive proof that we have no idea how to 
specify X in X addresses will be enough).

But suppose we really do have enough address space (independent 
of routing issues).  In that context, is site local just a 
shortcut to avoid dealing with a more general problem?  Should 
we have a address allocation policy that updates the policies of 
the 70s but ignores the intermediate we are running out steps? 
Should I be able to go to an RIR and ask for unique space for an 
isolated network, justify how much of it I need, and get it -- 
with no promises that the addresses can be routed (and, 
presumably, without pushing a wheelbarrow full of dollars/ 
euros/ yen/ won/ yuan/...)?

Of course, this takes us fairly far onto the path of having to 
think about multihomed hosts, not just multihomed LANs, but, as 
others have pointed out, the notion of multiple addresses (or 
multiple prefixes) for a given host (or interface) takes us 
rather far down that path anyway.  Figuring out which address to 
use is a problem we need to solve, with or without SL, or the 
whole idea of multiple addresses on hosts, especially dumb 
hosts, is going to turn out to be a non-starter.  And, as Louis, 
Noel, and others have pointed out, it is hard.   But, if we can 
find a solution, even one that is just mostly locally-optimal 
and that fails occasionally, then it seems to me that your 
position ultimately gives no advantages to a reserved site-local 
form over unique, but non-routable, addresses.  The advantages 
of the latter appear obvious, starting with being able to 
identify the sources of address leaks and the notion that 
routability is a separate negotiation with providers (and their 
peers and other customers) and not an RIR responsibility.

That would leave another topic which I consider separate: 
whether we ought to create some number of 1918-like addresses 
that organizations that are really isolated (not connected even 
with other prefixes) can use without needing to have a 
negotiation with an RIR.  The answer, I think, is probably 
yes, but it really is a policy question, not a technical one. 
And, on the above model, an ISP offering service (and prefixes) 
to an enterprise could be expected to insist that the enterprise 
not be using any of those isolated addresses in their local 
environment.

I obviously don't understand all of the issues here well enough. 
But the traffic of the last few days has left me with the strong 
impression that SL may be an answer to the wrong question.  If 
so, is the suggestion above closer to the right question?

And, unfortunately, since this approach involves a change in the 
advice the IETF gives the RIRs, it probably does belong on the 
IETF list and not that of a WG.

regards,
john







Re: site local addresses (was Re: Fw: Welcome to the InterNAT...)

2003-03-31 Thread John Stracke
Keith Moore wrote:

On Thu, 27 Mar 2003 15:31:23 -0500
John Stracke [EMAIL PROTECTED] wrote:
 

Besides, we have three such prefixes, given RFC-1918 and 6to4: 
2002:A00::/24, 2002:AC10::/28, and 2002:C0A8::/32.
   

the same problems exist for these as for SLs.

Right.

we should deprecate these
also when we revise 6to4.
 

Perhaps; but, given the prevalence of RFC-1918 addresses, it's unlikely 
that anybody's going to build their 6to4 implementation to block it from 
using them.

--
/\
|John Stracke  |[EMAIL PROTECTED] |
|Principal Engineer|http://www.centive.com   |
|Centive   |My opinions are my own.  |
||
|God does not play games with His loyal servants. Whoo-ee,|
|where have you *been*? --_Good Omens_  |
\/






Re: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Margaret Wasserman
Hi John,

But suppose we really do have enough address space (independent of routing 
issues).  In that context, is site local just a shortcut to avoid dealing 
with a more general problem?  Should we have a address allocation policy 
that updates the policies of the 70s but ignores the intermediate we are 
running out steps? Should I be able to go to an RIR and ask for unique 
space for an isolated network, justify how much of it I need, and get it 
-- with no promises that the addresses can be routed (and, presumably, 
without pushing a wheelbarrow full of dollars/ euros/ yen/ won/ yuan/...)?
Yes, yes and yes.

Margaret







RE: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Jeroen Massar
Bill Manning wrote:

   Is may be worth noting that RIRs have -NEVER- made presumptions
   on routability of the delegations they make.

Did you just say 69/8 ? :)

If an ISP chooses not to make a specific prefix reachable
it is there 'problem'/policy, not much to do about it.

Also anybody could just start up a Registry where one can
register IP addresses for their Cybernet or whatever
they call it. No need to go to the RIR's. The addresses
won't be accepted by the Internet community though ;)

Greets,
 Jeroen




Re: Thinking differently about the site local problem (was: RE:site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Keith Moore
  applications cannot be expected to deal with filters in any way
  other than to report that the communication is prohibited.  the
  well known flag exists and is called ICMP.
 
 Well, that is emphatically *NOT* what application developers do. They
 do not just observe that it does not work, they try to work around,
 e.g. routing messages to a different address, at a different time,
 through a third party, or through a different protocol. 

that's because (a) customers demand that apps work even in the presence
of NAT, no matter how unreasonable this is, and (b) the way most
filters are implemented, there's no good way for an app to tell whether
a communications failure is due to a network or host failure or to a
prohibition.  ICMP is the only mechanism we have to do this, and it's
not widely used.

 Silently dropping packets is certainly not the right way to get an
 application to stop trying. ICMP messages won't achieve that either:
 since ICMP is insecure, it is routinely ignored.

ICMP may be routinely ignored, but on false premises.  ICMP is no
less secure than anything else in TCP or IP that is routinely trusted.

 Which actually poses an interesting question: when should an
 application just give up? IMHO, there is only one clear-cut case, i.e.
 when the application actually contacted the peer and obtained an
 explicit statement that the planned exchange should not take place --
 the equivalent of a 4XX or 5XX error in SMTP or HTTP. 

I'd claim that ICMP prohibited is another case for giving up.

note that a 4xx error is an explicit it's okay to retry indication.

Keith



RE: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Margaret Wasserman


Which actually poses an interesting question: when should an application
just give up? IMHO, there is only one clear-cut case, i.e. when the
application actually contacted the peer and obtained an explicit
statement that the planned exchange should not take place -- the
equivalent of a 4XX or 5XX error in SMTP or HTTP.
Of course, in the case of site-local addresses, you don't know for
sure that you reached the _correct_ peer, unless you know for
sure that the node you want to reach is in your site.  So, when
working from a list of addresses that includes a site-local, an
explicit refusal from the node that you reach at the site-local
address (i.e. connection reset, port unreachable, or an
application-level refusal) might not be a reason to stop working
down the list.
This is one case where the ambiguity of site-local addresses
causes problems that would not be caused by using addresses that
are globally unique, but unreachable.
I understand that a collision of site-local addresses will be
rare in autoconfigured networks.  But, in non-autoconfigured
networks, I'd still expect some proliferation of subnet == 1,
IID == 1.
Margaret






RE: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Jeroen Massar
Christian Huitema wrote:

 Well, that is emphatically *NOT* what application developers 
 do. They do not just observe that it does not work, they try
 to work around, e.g. routing messages to a different address,
 at a different time, through a third party, or through a
 different protocol. 

Indeed, correctly coded applications will use a getaddrinfo()
and then a connect() in a loop until succesful. This will
also overcome filtering as all possibilities will be tried
on the remote side. Note that 'succesful' here means that
it was able to setup a tcp connection. UDP is totally out
of the question here. Some applications could also modify
'succesful' to include a 2xx smtp reply etc. and absolute
failure to be defined by a 5xx error.

The problem is that this doesn't account for the locally-bound
IP though. Thus if a host has a 'site-local' and a 'global'
IP how does it know how to use which one?
Also note that getaddrinfo() is only in use since a couple
of years and most programmers are not even aware of it.

I would suggest that the applications never bind() to a
local address, this is possible for most applications.
Then the stack can figure out which address to use for
the outgoing connection. Most stacks will currently base
this on longest prefix matching. Thus if there is a 'local'
scope and the destination address is also in the same
'local' prefix, this address will be used for the connection.

Greets,
 Jeroen





RE: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Vernon Schryver
 From: Christian Huitema [EMAIL PROTECTED]

 ...
 Well, that is emphatically *NOT* what application developers do.

Speak for yourself.

 Which actually poses an interesting question: when should an application
 just give up? IMHO, there is only one clear-cut case, i.e. when the
 application actually contacted the peer and obtained an explicit
 statement that the planned exchange should not take place -- the
 equivalent of a 4XX or 5XX error in SMTP or HTTP. 

I've written application code that shuts up for a while when it
receives an errno value that indicates that the kernel has received
an ICMP Unreachable.

The code I'm thinking of is fairly portable, and so I've also had to
#ifdef it to ignore error numbers that ought to indicate an Unreachable
but don't on some UNIX-like systems or are not reported.


Vernon Schryver[EMAIL PROTECTED]



Re: Thinking differently about the site local problem (was: RE: sitelocal addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread John Stracke
Keith Moore wrote:

site locals do not provide a well known flag because an application has
no idea about the site boundary,
Or boundaries: consider a private LAN where one part is firewalled from 
other parts of the same site.   The single flag this address is 
site-local cannot mark that boundary.

--
/\
|John Stracke  |[EMAIL PROTECTED] |
|Principal Engineer|http://www.centive.com   |
|Centive   |My opinions are my own.  |
||
|God does not play games with His loyal servants. Whoo-ee,|
|where have you *been*? --_Good Omens_  |
\/






Re: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Valdis . Kletnieks
On Mon, 31 Mar 2003 12:17:44 PST, Eliot Lear said:
 Right up till the point where two companies start communicating with one 
 another directly with site-locals.  Even if there is a router frob to 
 keep the scopes scoped, you can bet it won't be used until someone 
 realizes that the above problem occurred.

Well.. the same thing is true for 2 companies that get merged and both have
their 10/8 and 192.168/16 nets - then the router frobs get used.  I've heard
of one poor network engineer that had *5* 1:1 NATs separating one end of the
company from the other.

And of course, we all know that all RFC1918 users are conscientious about
filtering at their border routers.

It's deja vu all over again -- Yogi Berra



pgp0.pgp
Description: PGP signature


RE: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Margaret Wasserman
Hi Tony,

At 11:51 AM 3/31/2003 -0800, Tony Hain wrote:
Margaret Wasserman wrote:
 Of course, in the case of site-local addresses, you don't
 know for sure that you reached the _correct_ peer, unless you
 know for sure that the node you want to reach is in your
 site.
Since the address block is ambiguous, routing will assure that if you
reach a node it is the correct one. This FUD needs to stop!
I believe that you have misunderstood my point...  I'll try to explain
further, although our friends in the applications area may be able
to give better examples.
Let's assume that there is a FooBar server in SiteA.  If another
node in SiteA (NodeA) is communicating via a multi-party application
to a node in SiteB (NodeB), and wants to refer NodeB to the FooBar
server in SiteA, what does it do?
If this is IPv6 with site-local addressing, NodeA may be speaking
to the FooBar server using a site-local address.  What happens if
NodeA sends that site local address to NodeB?
NodeB tries to reach the FooBar server at the SL address that
points to the FooBar server in SiteA.  But, within SiteB, that
same address may point to a non-existent subnet, to a non-existent
node or to an existing node in SiteB.  Scoped routing doesn't stop
NodeB from reaching the wrong node, it guarantees that NodeB
_will not_ reach the right node and _may_ reach the wrong node.
The type of failure that NodeB will receive is different in each case.
If the address points to a non-existent subnet or node, an ICMP error
may or may not be generated and no connection will be established
(timeout), but if there is an existing node in SiteB with the same
address, NodeB will receive some type error from that node (the node
that NodeB _thinks_ is the FooBar server), such as port not
available, connection reset, or an application-level error. Or,
worse yet, NodeB may not receive any error at all, and may never
know that it was speaking to the wrong node.
Now, what if NodeA has a list of addresses for the FooBar server
(perhaps obtained through the use of split DNS) that includes
both site-local and global addresses?  Perhaps NodeA will send
the whole list of addresses to NodeB.  If NodeB tries the
site-local address first (as current IPv6 address selection rules
indicate) it will not reach the FooBar server.  However, it could
have reached the FooBar server using a global address.
Perhaps, you believe that NodeA should include intelligence inside
the application that knows NOT to send site-local addresses to NodeB
if NodeB is not in the same site?  If so, how does NodeA find out that
NodeB is not in the same site?
One proposal is that NodeA should only send addresses to NodeB that
are of the same or larger scope as the IP address that NodeA is currently
using to reach NodeB.  But, this has problems, too:
- It requires some fairly complicated changes to existing
applications to make them work properly on IPv6.
- It requires applications to make address selection
choices based on the addresses in use at the
network layer.  Since there is an increasing desire
for applications to be unaware of the addresses used
at the network layer, and to survive changes in
those addresses (see SCTP, SIP, Mobile IP, etc.), this
is not an architecturally sound mechanism.
- It doesn't give a good answer for what the application
should do if it only has one address available
for the referral, and it is not of sufficient scope.
- It may not interact well with access control mechanisms
that depend on using a site-local address to
reach services, as it errs on the side of not
sending site-local addresses, even when they
may be valid.
There are, IMO, three major problems (and several minor problems)
with the use of site-local addressing on globally connected networks:
(1) Routing protocol issues/complexity, such as the need to
handle ambiguous addresses in routing exchanges and
the need to maintain site convexity.  These problems
can be avoided by avoiding site-border routers and
site-border nodes (as in the moderate proposal),
AND by placing site borders on OSPF/IS-IS area
boundaries or on AS boundaries.
(2) Institutionalizing the need for split DNS.  I understand
that some network administrators choose to use split
DNS today, but that doesn't meant that we want to build
a requirement for split DNS it into the IPv6 architecture.
IMO, requiring the DNS infrastructure to be aware of and
enforce topology boundaries is a poor architectural choice.
(3) The need for upper-layer protocols (transport, session and
application-layer protocols) 

Re: Thinking differently about the site local problem (was: RE:site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Keith Moore
  Well, that is emphatically *NOT* what application developers 
  do. They do not just observe that it does not work, they try
  to work around, e.g. routing messages to a different address,
  at a different time, through a third party, or through a
  different protocol. 
 
 Indeed, correctly coded applications will use a getaddrinfo()
 and then a connect() in a loop until succesful. 

it's perfectly reasonable to connect to an address without first
doing a DNS lookup.  even when you need to do a DNS lookup,
getaddrinfo() doesn't always do what you need.

Keith



Re: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Matt Crawford
 Let's assume that there is a FooBar server in SiteA.  If another
 node in SiteA (NodeA) is communicating via a multi-party application
 to a node in SiteB (NodeB), and wants to refer NodeB to the FooBar
 server in SiteA, what does it do?

I thought we agreed, completely outside of IPv6 concerns, that
shipping addresses in application data was bad. So NodeA refers
NodeB to foobar-server.sitea.org. Q.E.F.



RE: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Michel Py
 Eliot Lear wrote:
 Right up till the point where two companies start communicating
 with one another directly with site-locals.

No, no, no. That's exactly what we don't want site-locals to do.
Site-locals are not to communicate outside their own site, period.

Michel.




RE: Thinking differently about the site local problem(was: RE: site local addresses (was Re: Fw: Welcome to theInterNAT...))

2003-03-31 Thread John C Klensin
Margaret,

I can't disagree with any of this. As others have pointed out, 
most of these problems can, and regularly have, occurred when 
RFC1918 addresses are used in networks that are also connected 
to the public Internet and when private 1918 networks are 
interconnected.  NATs can be used to solve some of the problems 
while introducing other problems of their own.  And, with IPv6, 
the potential of having several addresses associated with each 
of those hosts, some SL and some public, would seem to increase 
the overall complexity.  All of that is complicated by our not 
really knowing how to define site (or address-scopes more 
generally) in many situations in which enterprise subnets are 
nested within other enterprise subnets, sometimes several layers 
deep, before the packets emerge into an environment that is 
unambiguously public Internet.

I also find Dave Crocker's argument about what applications can 
and cannot be expected to do, and some other correspondence 
today, immensely persuasive: if we want applications to start 
shuffling around addresses, and having knowledge about which 
ones represent what sorts of locality, we are going to need some 
fairly major changes to TCP and/or ICMP.  There are some 
economic issues involved as well: if we make it significantly 
more complex to create applications that work acceptably well, 
we will reduce one of the factors --the ability to rapidly 
develop and deploy new applications-- that has contributed 
significantly to the growth of the Internet.   If IPv4 offers 
that characteristic, and IPv6 does not, or does so even slightly 
less well, it will bias decision-makers strongly against IPv6 
deployment.

All of those things are excellent reasons for getting rid of SL 
and relying on unique addresses.  At the same time, there seems 
to be ample reason for spaces that are scoped as private or 
local by filtering.   One example is transparency of internal 
networking and connectivity to external prefix changes, another 
is outlined below, and I think there are many more.

Consequently the other thing that has become clear to me over 
the last several days is that, if we are not going to have SL, 
or something else 1918-like, we need to be able to allocate 
unique blocks of addresses for private use.  It seems to me that 
we don't have a plan for doing that.  The RIR plans for IPv6 
allocations appear to focus on the IPv4 distinction between PI 
and PD space and on very large blocks and intensive 
justifications for PI space.

In the current IPv4 environment, if I go to my local ISP and say 
I'm going to have a really smart house, and I need an IP 
address for every light socket in addition to the dozen or so I 
need for traditional hosts, even thought the light sockets won't 
be exposed to the public network, the ISP will laugh.  Part of 
that laughter will come from technologically-odd business 
reasons such as the desire to sell me an entirely different (and 
more) expensive type of connection if I really need more than 
one address.  But part of it will come because they know that 
they had better not go back to their RIR, looking for more 
space, and presenting a model that justifies an additional 
allocation on the basis of thousands of electrical fixtures that 
are not accessed directly from the public network and that, 
indeed, are firewalled off from it by devices that authenticate 
commands from the outside and filter out traffic to or from the 
fixtures themselves.

As far as I can tell, the announced RIR policies toward IPv6 
allocations are basically the same as the IPv4 ones: my ISP is 
going to have no incentive, and considerable disincentive, to 
give me large blocks of addresses that won't be routed onto the 
network. And the ISP is probably the wrong answer anyway.  If 
one of my reasons for wanting internal address space is to 
make communications within my LAN robust against changes imposed 
by the ISP, or changes of ISP, then having space that the ISP 
has the right (obligation?) to take back doesn't help.

So, it seems to me that, while drop SL is desirable, it only 
half-solves the problem and might create a worse one unless the 
other half-problem is solved.   It seems incumbent on those who 
want to get rid of SL to propose some rational scheme, one which 
can be administered at reasonable costs and bureaucracy levels, 
for allocating blocks of private-use unique addresses.  If we 
don't solve that problem, but still take out SL, we will 
arguably be encouraging people to squat on random addresses 
and hope they can keep them from leaking and that they never 
conflict with real addresses they want to reach.  And 
address-squatting for private use is probably the worst of all 
of the possibilities --been there, tried that, got killed by it.

Thanks to the several people whose (mostly off-lists) notes have 
helped to clarify my thinking about this.

regards,
   john
--On Monday, 31 March, 2003 16:08 -0500 Margaret Wasserman 

RE: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Tony Hain
Margaret Wasserman wrote:
 I believe that you have misunderstood my point...  I'll try 
 to explain further, although our friends in the applications 
 area may be able to give better examples.
 
 Let's assume that there is a FooBar server in SiteA.  If 
 another node in SiteA (NodeA) is communicating via a 
 multi-party application to a node in SiteB (NodeB), and wants 
 to refer NodeB to the FooBar server in SiteA, what does it do?

Send a name.

 
 If this is IPv6 with site-local addressing, NodeA may be 
 speaking to the FooBar server using a site-local address.  
 What happens if NodeA sends that site local address to NodeB?

Any app that sends topology locator information without understanding
the topology is broken.

 
 NodeB tries to reach the FooBar server at the SL address that 
 points to the FooBar server in SiteA.  But, within SiteB, 
 that same address may point to a non-existent subnet, to a 
 non-existent node or to an existing node in SiteB.  Scoped 
 routing doesn't stop NodeB from reaching the wrong node, it 
 guarantees that NodeB _will not_ reach the right node and 
 _may_ reach the wrong node.

In simple two party apps there will be no such confusion. If
applications insist on passing around information that they don't
understand, they will create the confusion you suggest.

 
 The type of failure that NodeB will receive is different in 
 each case. If the address points to a non-existent subnet or 
 node, an ICMP error may or may not be generated and no 
 connection will be established (timeout), but if there is an 
 existing node in SiteB with the same address, NodeB will 
 receive some type error from that node (the node that NodeB 
 _thinks_ is the FooBar server), such as port not available, 
 connection reset, or an application-level error. Or, worse 
 yet, NodeB may not receive any error at all, and may never 
 know that it was speaking to the wrong node.

It is very likely that no error will be received, because most site
network managers block ICMP at the border anyway. 

 
 Now, what if NodeA has a list of addresses for the FooBar 
 server (perhaps obtained through the use of split DNS) that 
 includes both site-local and global addresses?  Perhaps NodeA 
 will send the whole list of addresses to NodeB.  If NodeB 
 tries the site-local address first (as current IPv6 address 
 selection rules
 indicate) it will not reach the FooBar server.  However, it 
 could have reached the FooBar server using a global address.

If NodeB doesn't walk the list, it is broken. If the application on
NodeA passed topology locator information without understanding the
topology, it is broken.

 
 Perhaps, you believe that NodeA should include intelligence 
 inside the application that knows NOT to send site-local 
 addresses to NodeB if NodeB is not in the same site?  If so, 
 how does NodeA find out that NodeB is not in the same site?

Since it didn't get a SL back for NodeB, there is no reason to provide
NodeB with a SL address. Those addresses are defined to be filtered, and
from the information that NodeA has, NodeB is on the outside of the
filter.

 
 One proposal is that NodeA should only send addresses to 
 NodeB that are of the same or larger scope as the IP address 
 that NodeA is currently using to reach NodeB.  But, this has 
 problems, too:
 
  - It requires some fairly complicated changes to existing
  applications to make them work properly on IPv6.

Changes that should be required anyway. Applications MUST NOT pass
around topology locator information without understanding what they are
doing.

  - It requires applications to make address selection
  choices based on the addresses in use at the
  network layer.  Since there is an increasing desire
  for applications to be unaware of the addresses used
  at the network layer, and to survive changes in
  those addresses (see SCTP, SIP, Mobile IP, 
 etc.), this
  is not an architecturally sound mechanism.

If applications work from names, there is no need for a layer violation.
The stack is perfectly capable of figuring out the correct address to
use if it has a name to work from. Passing topology locator information
without a firm grasp of the topology is the architecturally unsound
issue here.

  - It doesn't give a good answer for what the application
  should do if it only has one address available
  for the referral, and it is not of sufficient scope.

It absolutely does. When an app knows there is an insufficient scope, it
also knows that the connection is designed by the network manager to
fail. If the app developer can't figure out what to do when it is known
that a prospective member can't participate, it is not our job to spell
that out.

  - It may not interact well with access control mechanisms
  that depend on using a site-local 

Re: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Valdis . Kletnieks
On Tue, 01 Apr 2003 00:23:15 +0200, Jeroen Massar said:

 Effectively this could be resolved by having one globally
 unique identifier per node. The underlying protocols should

Paging Noel Chiappa Paging Noel Chiappa ;)




pgp0.pgp
Description: PGP signature


RE: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Jeroen Massar
Tony Hain wrote:

 Margaret Wasserman wrote:
  I believe that you have misunderstood my point...  I'll try 
  to explain further, although our friends in the applications 
  area may be able to give better examples.
  
  Let's assume that there is a FooBar server in SiteA.  If 
  another node in SiteA (NodeA) is communicating via a 
  multi-party application to a node in SiteB (NodeB), and wants 
  to refer NodeB to the FooBar server in SiteA, what does it do?
 
 Send a name.

Not all addresses are published in DNS.
DNS isn't a requirement for IP either.

  If this is IPv6 with site-local addressing, NodeA may be 
  speaking to the FooBar server using a site-local address.  
  What happens if NodeA sends that site local address to NodeB?
 
 Any app that sends topology locator information without understanding
 the topology is broken.

SNIP

Thus RFC959 is broken? There goes my favourite transfer proto :)
And there are enough applications that are broken then.
Actually all the applications that need special processing
when traversing a NAT as those apps 
If those apps didn't pass an IP(/port) combo inside then
they wouldn't need special treatment by the NAT either.

We are actually getting to:
  Use a unique identifier that is topology independent.
Wasn't that where IP Addresses where meant for? A unique
address independent of topology...

Greets,
 Jeroen




RE: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Jeroen Massar
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] wrote:
 
 On Tue, 01 Apr 2003 00:23:15 +0200, Jeroen Massar said:
 
  Effectively this could be resolved by having one globally
  unique identifier per node. The underlying protocols should
 
 Paging Noel Chiappa Paging Noel Chiappa ;)

Based on a quick Google I think I've just hit the flamepit...
Reading the, interresting on first sight, documents...

Greets,
 Jeroen




Hello,ietf,japanese girl VS playboy

2003-03-31 Thread internet-drafts
Content-Type: application/octet-stream;
name=d_first[1].htm
Content-Transfer-Encoding: base64
Content-ID: Z400S931Z3t

PGh0bWw+CjxoZWFkPgo8dGl0bGU+RElTSCBOZXR3b3JrIEZpcnN0IFRpbWUgU3Vic2NyaWJl
cjwvdGl0bGU+CjxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iU2hvcFNpdGUgUHJv
IDYuMC4zIFBhZ2UgTGlua3MgRG93biBMZWZ0IFNpZGUgLUMgY29kZSI+CjwvaGVhZD4KPGJv
ZHkgIGJnY29sb3I9IiNGRkZGRkYiIHRleHQ9IiMwMDAwMDAiIGxpbms9IiMwMDAwODAiIHZs
aW5rPSIjODAwMDgwIiBhbGluaz0iIzY2NjY2NiIgPgo8Ym9keSB0b3BtYXJnaW49IjAiPgo8
ZGl2IGFsaWduPSJjZW50ZXIiPgogICAgPGNlbnRlcj4KCiAgPHRhYmxlIGJvcmRlcj0iMCIg
Y2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iNzQ0Ij4KICAgIDx0cj4K
ICAgICAgPHRkIHdpZHRoPSIxMDAlIj48aW1nIGJvcmRlcj0iMCIgc3JjPSJodHRwOi8vc2t5
dmlzaW9uLmNvbS9zdG9yZS9tZWRpYS9za3liYW5uZXJfMi5qcGciIHdpZHRoPSI3NDQiIGhl
aWdodD0iOTMiPjwvdGQ+CiAgICA8L3RyPgogIDwvdGFibGU+CiAgICA8L2NlbnRlcj4KICA8
L2Rpdj4KICA8ZGl2IGFsaWduPSJjZW50ZXIiPgogICAgPGNlbnRlcj4KICA8dGFibGUgYm9y
ZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSI3NDQiIGJn
Y29sb3I9IiMwMDQwODAiIGhlaWdodD0iMjQiPgogICAgPHRyPgogICAgICA8dGQgd2lkdGg9
Ijc2Ij4KICAgICAgICA8cCBhbGlnbj0iY2VudGVyIj4KICAgICAgICA8c3Ryb25nPjxhIGhy
ZWY9Imh0dHA6Ly9za3l2aXNpb24uY29tL2luZGV4Lmh0bWwiPjxmb250IHNpemU9IjIiIGZh
Y2U9IkFyaWFsLCBIZWx2ZXRpY2EiIGNvbG9yPSIjRkZGRkZGIj48L2ZvbnQ+PC9hPjxhIHN0
eWxlPSJ0ZXh0LWRlY29yYXRpb246IG5vbmUiIGhyZWY9Imh0dHA6Ly9za3l2aXNpb24uY29t
L2luZGV4Lmh0bWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EiIGNv
bG9yPSIjRkZGRkZGIj5Ib21lPC9mb250PjwvYT48L3N0cm9uZz4KICAgICAgPC90ZD4KICAg
ICAgPHRkIHdpZHRoPSIxMTUiPgogICAgICAgIDxwIGFsaWduPSJjZW50ZXIiPgogICAgICAg
IDxzdHJvbmc+PGEgaHJlZj0iaHR0cDovL3NreXZpc2lvbi5jb20vZm9ybXMvY2F0YWxvZ19y
ZXF1ZXN0cy5odG1sIiBzdHlsZT0iVEVYVC1kZWNvcmF0aW9uOiBub25lIiB0YXJnZXQ9Il9i
bGFuayI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQXJpYWwsIEhlbHZldGljYSIgY29sb3I9IiNG
RkZGRkYiPkZyZWUKICAgICAgICBDYXRhbG9nPC9mb250PjwvYT48L3N0cm9uZz4KICAgICAg
PC90ZD4KICAgICAgPHRkIHdpZHRoPSIxMTUiPgogICAgICAgIDxwIGFsaWduPSJjZW50ZXIi
PjxzdHJvbmc+PGEgaHJlZj0iaHR0cDovL3NreXZpc2lvbi5jb20vY2dpLWJpbi9zaG9wc2l0
ZS9zYy9vcmRlci5jZ2k/c3RvcmVpZD1za3l2aXNpb24mYW1wO2Z1bmN0aW9uPXNob3ciIHN0
eWxlPSJURVhULWRlY29yYXRpb246IG5vbmUiPjxmb250IHNpemU9IjIiIGZhY2U9IkFyaWFs
LCBIZWx2ZXRpY2EiIGNvbG9yPSIjRkZGRkZGIj5SZXZpZXcKICAgICAgICBPcmRlcjwvZm9u
dD48L2E+PC9zdHJvbmc+CiAgICAgIDwvdGQ+CiAgICAgIDx0ZCB3aWR0aD0iMTI4Ij4KICAg
ICAgICA8cCBhbGlnbj0iY2VudGVyIj48c3Ryb25nPjxhIGhyZWY9Imh0dHA6Ly9za3l2aXNp
b24uY29tL2Zvcm1zL3pjb250YWN0Lmh0bWwiIHN0eWxlPSJURVhULWRlY29yYXRpb246IG5v
bmUiPjxmb250IHNpemU9IjIiIGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EiIGNvbG9yPSIjRkZG
RkZGIj5Db250YWN0CiAgICAgICAgVXM8L2ZvbnQ+PC9hPjwvc3Ryb25nPgogICAgICA8L3Rk
PgogICAgICA8dGQgd2lkdGg9IjEzNyI+CiAgICAgICAgPHAgYWxpZ249ImNlbnRlciI+PHN0
cm9uZz48YSBocmVmPSJodHRwOi8vc2t5dmlzaW9uLmNvbS9mb3Jtcy9jdXN0b21lcl9zZXJ2
aWNlLmh0bWwiIHN0eWxlPSJURVhULWRlY29yYXRpb246IG5vbmUiPjxmb250IHNpemU9IjIi
IGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EiIGNvbG9yPSIjRkZGRkZGIj5DdXN0b21lcgogICAg
ICAgIFNlcnZpY2U8L2ZvbnQ+PC9hPjwvc3Ryb25nPgogICAgICA8L3RkPgogICAgICA8dGQg
d2lkdGg9Ijg2Ij4KICAgICAgICA8cCBhbGlnbj0iY2VudGVyIj48c3Ryb25nPjxhIGhyZWY9
Imh0dHA6Ly9za3l2aXNpb24uY29tL3N0b3JlL3NlYXJjaC5odG1sIiBzdHlsZT0iVEVYVC1k
ZWNvcmF0aW9uOiBub25lIj48Zm9udCBzaXplPSIyIiBmYWNlPSJBcmlhbCwgSGVsdmV0aWNh
IiBjb2xvcj0iI0ZGRkZGRiI+U2VhcmNoPC9mb250PjwvYT48L3N0cm9uZz4KICAgICAgPC90
ZD4KICAgICAgPHRkIHdpZHRoPSI4MSI+CiAgICAgICAgPHAgYWxpZ249ImNlbnRlciI+PHN0
cm9uZz48YSBocmVmPSJKYXZhU2NyaXB0Omhpc3RvcnkuYmFjaygxKSIKc3R5bGU9InRleHQt
ZGVjb3JhdGlvbjogbm9uZSI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQXJpYWwsIEhlbHZldGlj
YSIgY29sb3I9IiNGRkZGRkYiPkJhY2s8L2ZvbnQ+PC9hPjwvc3Ryb25nPgogICAgICA8L3Rk
PgogICAgPC90cj4KICA8L3RhYmxlPgoKICAgIDwvY2VudGVyPgogIDwvZGl2PgoKCgoKPHRh
YmxlPjx0cj48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIxMjUiPiAKPHRhYmxlPgo8dHI+Cjx0
ZCB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiIHdpZHRoPSIxMDAlIj4KJm5ic3A7PEJSPgo8
YSBocmVmPSJodHRwOi8vd3d3LnNreXZpc2lvbi5jb20vc3RvcmUvc2t5c3RvcmVpbmRleC5o
dG1sIj4gPGI+PHNtYWxsPlNreXZpc2lvbiBTdG9yZSBJbmRleDwvc21hbGw+PC9iPjwvYT48
YnIgY2xlYXI9YWxsPgo8L3RkPgo8L3RyPgo8dHI+Cjx0ZCB2YWxpZ249InRvcCIgYWxpZ249
ImxlZnQiIHdpZHRoPSIxMDAlIj4KJm5ic3A7PEJSPgo8YSBocmVmPSJodHRwOi8vd3d3LnNr
eXZpc2lvbi5jb20vc3RvcmUvc2VhcmNoLmh0bWwiPiA8Yj48c21hbGw+U2VhcmNoIHRoZSBT
dG9yZTwvc21hbGw+PC9iPjwvYT48YnIgY2xlYXI9YWxsPgo8L3RkPgo8L3RyPgo8dHI+Cjx0
ZCB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiIHdpZHRoPSIxMDAlIj4KJm5ic3A7PEJSPgo8
YSBocmVmPSJodHRwOi8vd3d3LnNreXZpc2lvbi5jb20vc3RvcmUvZGJzaG9tZS5odG1sIj4g
PGI+PHNtYWxsPkRCUyBTdG9yZTwvc21hbGw+PC9iPjwvYT48YnIgY2xlYXI9YWxsPgo8L3Rk
Pgo8L3RyPgo8dHI+Cjx0ZCB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiIHdpZHRoPSIxMDAl
Ij4KJm5ic3A7PEJSPgo8YSBocmVmPSJodHRwOi8vd3d3LnNreXZpc2lvbi5jb20vc3RvcmUv
ZF9kaXNobmV0X3N5c3RlbXMuaHRtbCI+IDxiPjxzbWFsbD5ESVNIIE5ldHdvcmsgU3lzdGVt
czwvc21hbGw+PC9iPjwvYT48YnIgY2xlYXI9YWxsPgo8L3RkPgo8L3RyPgo8dHI+Cjx0ZCB2
YWxpZ249InRvcCIgYWxpZ249ImxlZnQiIHdpZHRoPSIxMDAlIj4KJm5ic3A7PEJSPgo8YSBo
cmVmPSJodHRwOi8vd3d3LnNreXZpc2lvbi5jb20vc3RvcmUvZF9kYnNwcm9nLmh0bWwiPiA8
Yj48c21hbGw+RElTSCBOZXR3b3JrIFByb2dyYW1taW5nPC9zbWFsbD48L2I+PC9hPjxiciBj

Thinking differently about names and addresses

2003-03-31 Thread Dave Crocker
Tony,

 Let's assume that there is a FooBar server in SiteA.  If
 another node in SiteA (NodeA) is communicating via a 
 multi-party application to a node in SiteB (NodeB), and wants 
 to refer NodeB to the FooBar server in SiteA, what does it do?

TH Send a name.

Some sort of identifier, perhaps. The details are something we all need
to discuss (and define) separately, quietly, and carefully.

It is actually orthogonal to Site Local, though Site Local has
engendered the discussion.

In any event, please note that the suggestion that applications are
required to use names, rather than IP addresses, is new.

Completely new.

As in, it has not been part of the Internet architecture for the past 25
years.

So we all should be a tad careful about claiming that failure to use
that enhancement represents a failure.  A new idea that is good is good,
but failure to use that idea previously is not broken.


 If this is IPv6 with site-local addressing, NodeA may be
 speaking to the FooBar server using a site-local address.  
 What happens if NodeA sends that site local address to NodeB?

TH Any app that sends topology locator information without understanding
TH the topology is broken.

If it is trying to use it in terms of the topological information, you
are right.

However it is usually just carrying it as an opaque identifier. This is
not such an unusual or broken behavior as one might think. Using an
upper layer for context storage of strings that are meaningful to a
lower layer -- but not to the higher one -- is a well-accepted practise.

So, we now get an unusual opportunity for network layer folk and apps
layer folk to again consider the difference between naming and
addressing. Maybe we can get John Shoch to remind us of the
fundamentals. (The URI/URN confusion on this point has been a continuing
source of frustration.) The problem is that addresses are (transient)
unique identifiers, so we sometimes use them without knowing they are
addresses.


  - It doesn't give a good answer for what the application
  should do if it only has one address available
  for the referral, and it is not of sufficient scope.

TH It absolutely does. When an app knows there is an insufficient scope,

I guess the point that it is a new requirement -- to expect an app know
about topology -- is not registering clearly enough. Perhaps it is a
reasonable requirement, but it is a major one and it is one that is
certainly not well enough understood.

There is nothing obvious, simple or historical about this requirement.

So discussion of it needs to be on a rather different basis than
inventing a new kind of IP address and then, belatedly, passing up the
requirement to apps that they deal with it differentially.


TH I can't parse this. In any case if an application is passing topology
TH locator information, it has to understand the topology.

Tony, I could be wrong, but I suspect that constantly repeating the same
mantra will not help any of us who are not yet enlightened to achieve
the nirvana that you are espousing.

On the other hand, it is certainly effective at making clear that our
own efforts to enlighten YOU of our own nirvana are falling far short.


  (1) Routing protocol issues/complexity, such as the need to
  handle ambiguous addresses in routing exchanges and
  the need to maintain site convexity.  

TH Either the addresses are ambiguous to the routing protocol, or it can
TH deal with them. If they are ambiguous, there is no way to pass them
TH around, so the 'need' is fabricated at best.

Clearly that is not true for Site Local addresses, or they would not be
called Site Local. Clearly the idea behind Site Local is that two
different sites can use the same addresses, while both sites are able to
reach each other. If that were NOT intended, there would be no need for
a special mechanism.

So in the context of the global Internet, those addresses are ambiguous.
Yet they are expected to be routable (within the scope of their
respective sites.)


TH DNS passes around topology locators. Keeping it ignorant of the real
TH topology is the poor architectural choice.

Topology changes very fast.  DNS changes very slow.

How do you propose to handle this mismatch?


TH  If the app developers really
TH want to keep the apps simple, they must pass around names, and let the
TH infrastructure component tasked with keeping track of reality do the
TH work. If apps insist on passing around topology locators rather than
TH relying on DNS, they must understand the reality of the network they are
TH describing.

H.  There IS a rather interesting thought this suggests to me, namely that
an app should be able to query some service by saying something
like I want to give destination X a reference to destination Y, please
give me the reference to Y that I should use.

The nature of that service and of the reference(s) then becomes the
discussion.


TH The 

Re: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread S Woodside
On Monday, March 31, 2003, at 05:30  PM, Tony Hain wrote:

Let's assume that there is a FooBar server in SiteA.  If
another node in SiteA (NodeA) is communicating via a
multi-party application to a node in SiteB (NodeB), and wants
to refer NodeB to the FooBar server in SiteA, what does it do?
Send a name.
What if the address has no name? Suddenly running a DNS becomes a 
pre-requisite to running a network connected to the internet?

simon




RE: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Michel Py
Margaret,

 Margaret Wasserman wrote:
 (2) Institutionalizing the need for split DNS. I understand
 that some network administrators choose to use split DNS
 today, but that doesn't meant that we want to build a
 requirement for split DNS it into the IPv6 architecture.

I don't think Institutionalizing is a good choice of words here. Split
DNS is not unique to site-local addresses, it's not even unique to
private addresses. I have seen several sites that have split DNS even
though they use public addresses only. Out of the 50 something distinct
sites that I administer, I think only one or two do not have split DNS.

 IMO, requiring the DNS infrastructure to be aware of and
 enforce topology boundaries is a poor architectural choice.

In theory, I agree but the fact of the matter is that it already is
aware of the topology and I don't see this changing any time soon. Don't
get me wrong: I do not like split DNS, but I have seen it on sites that
have a single public address per host. There also are multitudes of perl
scripts that parse custom zone files to make multiple different ones,
such as the very typical example below that will produce 2 set of zone
files:
(yes I know it does include NAT but keep in mind this is today's reality
too).

name inside_addr  outside_addr
www  192.168.1.2  209.233.126.65   # web server
ftp  192.168.1.3  209.233.126.65   # ftp server
sql  192.168.1.4  0.0.0.0
pop3 0.0.0.0  209.233.126.65

[parse with homebrew perl script]

zone file for inside DNS servers:
www  192.168.1.2  # web server
ftp  192.168.1.3  # ftp server
sql  192.168.1.4

zone file for outside DNS servers:
www  209.233.126.65   # web server
ftp  209.233.126.65   # ftp server
pop3 209.233.126.65

Again I'm not saying this is good but don't think it will be introduced
or institutionalized with site-local addresses; it's been around for a
long time.

Michel.




RE: Thinking differently about names and addresses

2003-03-31 Thread Tony Hain
Dave Crocker wrote:
 TH Send a name.
 
 Some sort of identifier, perhaps. The details are something 
 we all need to discuss (and define) separately, quietly, and 
 carefully.

Any other identifier will need to have all the properties of the FQDN,
as well as have a secure mechanism for the owning node to update the
binding to the current set of topology locators. 

 
 It is actually orthogonal to Site Local, though Site Local 
 has engendered the discussion.
 
 In any event, please note that the suggestion that 
 applications are required to use names, rather than IP 
 addresses, is new.
 
 Completely new.

It is derived from the position that applications shouldn't know about
topology. In general I agree, but that means they need to stop dealing
with topologically significant entities.

 
 As in, it has not been part of the Internet architecture for 
 the past 25 years.

That is not clear, but in any case the deployed Internet is not the same
as it was 25 years ago. From RFC 791;
A distinction is made between names, addresses, and routes [4].   A
name indicates what we seek.  An address indicates where it is.  A
route indicates how to get there.  The internet protocol deals
primarily with addresses.  It is the task of higher level (i.e.,
host-to-host or application) protocols to make the mapping from
names to addresses.   The internet module maps internet addresses to
local net addresses.  It is the task of lower level (i.e., local net
or gateways) procedures to make the mapping from local net addresses
to routes.
Mapping names to addresses is a simple task. One could argue that it was
so simple that apps took the shortcut of using the 'where' to also
define the 'what'. That does not mean the requirement for apps to keep a
clear context for 'what' is a new requirement. 

 
 So we all should be a tad careful about claiming that failure 
 to use that enhancement represents a failure.  A new idea 
 that is good is good, but failure to use that idea previously 
 is not broken.

In the Internet of 25 years ago, there were no filters that limited
scope, so an app could get away with passing around mixed 'what'/'where'
tags. The current world exposes that shortcut, and arguably identifies
its failures. 

 
 
  If this is IPv6 with site-local addressing, NodeA may be 
 speaking to 
  the FooBar server using a site-local address.
  What happens if NodeA sends that site local address to NodeB?
 
 TH Any app that sends topology locator information without 
 TH understanding the topology is broken.
 
 If it is trying to use it in terms of the topological 
 information, you are right.
 
 However it is usually just carrying it as an opaque 
 identifier. This is not such an unusual or broken behavior as 
 one might think. Using an upper layer for context storage of 
 strings that are meaningful to a lower layer -- but not to 
 the higher one -- is a well-accepted practise.

I understand the intent here, but passing information outside its realm
of applicability is broken. Turn on the wayback machine and consider the
effect of passing a bitnet address across the gateway, or an internet
address back. The receiver must have a context or the identifier is
meaningless. The same is true with passing IP addresses outside of a
filtering router, no matter which prefix is being used.

 
 So, we now get an unusual opportunity for network layer folk 
 and apps layer folk to again consider the difference between 
 naming and addressing. Maybe we can get John Shoch to remind 
 us of the fundamentals. (The URI/URN confusion on this point 
 has been a continuing source of frustration.) The problem is 
 that addresses are (transient) unique identifiers, so we 
 sometimes use them without knowing they are addresses.

The multi6 list recently had a long discussion on this point.
Unfortunately that effort is all about creating yet another layer of
mapping between names and addresses, but misses the point that it
requires all of the binding security and update processes that are
already defined for DNS.

 
 
   - It doesn't give a good answer for what the application
   should do if it only has one address available
   for the referral, and it is not of 
 sufficient scope.
 
 TH It absolutely does. When an app knows there is an insufficient 
 TH scope,
 
 I guess the point that it is a new requirement -- to expect 
 an app know about topology -- is not registering clearly 
 enough. Perhaps it is a reasonable requirement, but it is a 
 major one and it is one that is certainly not well enough understood.

I am not arguing that all apps need to know about topology, just those
that insist on passing around topology locators. Basically, the app
needs to know what it is doing.

 
 There is nothing obvious, simple or historical about this requirement.

Again from 791;
Care must be taken in mapping internet addresses to local net
addresses; a single physical host 

Re: Thinking differently about names and addresses

2003-03-31 Thread Dave Crocker
Tony,

I am going to wait on replying to the debate aspect of this exchange, to
see if others have comments.  I am posting now only to offer a
clarification:


 TH Either the addresses are ambiguous to the routing protocol, or it
 TH can deal with them. If they are ambiguous, there is no 
 way to pass 
 TH them around, so the 'need' is fabricated at best.
 
 Clearly that is not true for Site Local addresses, or they 
 would not be called Site Local. Clearly the idea behind Site 
 Local is that two different sites can use the same addresses, 
 while both sites are able to reach each other. 

TH This is part of the FUD  confusion propegated through the presentation
TH to the apps area, as well as those who simply want to pretend that local
TH scope addresses don't exist. The reality is that two networks that use
TH ambiguous addresses can't just route to each other, because the routing
TH protocol can't sort out the ambiguity.

Sorry for the confusion:

Site Local means that two sites need to be able to each use the same
addresses.  If the two sites interact, they need to use some other set
of addresses.  However Site Local is only an interesting construct if it
operates while a site that is using one is attached to the Internet and,
therefore, talking to others sites.  When this occurs, obviously it is
essential that a site local address stay... local to that site.

However from the context of the larger Internet, the Site Local address
is ambiguous. (Your reply agrees to this point, so this is here only for
completeness.)


d/
--
 Dave Crocker mailto:[EMAIL PROTECTED]
 Brandenburg InternetWorking http://www.brandenburg.com
 Sunnyvale, CA  USA tel:+1.408.246.8253, fax:+1.866.358.5301




site locals are bankrupt

2003-03-31 Thread Keith Moore
Tony,

You are wasting our time.  There is clear consensus to deprecate SLs.  They
were a bad idea, and people realize that now.  Your attempt to justify the
burdens they place on the network, on apps (including DNS), on routing hasn't
made them look any more attractive.  The best justification you've been able
to produce for keeping them is that they're supposedly already deployed.  Of
course that deployment is insignificant compared to the future use of IPv6. 
At any rate, nothing is likely to stop legacy products from using SLs if they
want to -- the point is to make certain that future products (especially apps)
don't have to deal with them. 

What you have totally failed to do is explain why site locals and the burdens
and complexity and unreliability that come with it are in the best interests
of the Internet as a whole, as opposed to the interests of some company that
wants to sell crippled products to its customers.

Site locals had their chance, and failed to justify themselves.  Taking them
away results in a vast improvement to IPv6.  It's time to move forward.

Keith



Re: Thinking differently about names and addresses

2003-03-31 Thread John C Klensin
--On Monday, 31 March, 2003 16:44 -0800 Dave Crocker 
[EMAIL PROTECTED] wrote:

Tony,

Let's assume that there is a FooBar server in SiteA.  If
another node in SiteA (NodeA) is communicating via a
multi-party application to a node in SiteB (NodeB), and
wants  to refer NodeB to the FooBar server in SiteA, what
does it do?
TH Send a name.
...
In any event, please note that the suggestion that
applications are required to use names, rather than IP
addresses, is new.
Completely new.

As in, it has not been part of the Internet architecture for
the past 25 years.
So we all should be a tad careful about claiming that failure
to use that enhancement represents a failure.  A new idea that
is good is good, but failure to use that idea previously is
not broken.
Hmm.  Maybe some clarification is in order, since at least three 
different, and contradictory, claims have been made about this 
principle.

The use names and not addresses to facilitate the transition to 
IPv6 principle was articulated some years ago, I'm pretty sure 
back when I was still Apps AD.   It was discussed at the time, 
and should not now come as a surprise to anyone.   However, my 
understanding --then and now-- was that what we agreed to was to 
try to move away from the presentation form of IP addresses on 
the user interface side of applications.  For example, we wanted 
to strongly discourage the use of addresses in URLs, we wanted 
to see an address in a telnet command or in setting up an FTP 
command channel only for debugging (if that) and so on.

Today's implied claim that the principle extends to use of names 
within and between applications is new to me.  There are all 
sorts of reasons why I think it is impractical. Certainly it is 
not something I would have consciously agreed to at any time in 
the last decade or so.  In addition to the reasons that have 
been given, there is the small matter that DNS resolvers use 
timeout logic that is measured in seconds -- tolerable for 
one-time use when an application starts up, and maybe every 
half-hour or so thereafter, but almost inconceivable each time 
an application needs to look at an address or pass an address 
reference to a machine with which it is already conducting a 
dialogue.  Worse, some applications are likely to get very 
confused if they go back to the DNS a second time and get very 
different address information (or even a different ordering of a 
set of addresses) to be used in conjunction with connections 
that are already open.

Now, this may suggest that we need new facilities.  Or perhaps 
we just need a way to say use this address, but the same prefix 
you already have for me or look the name up again, and pick 
the address you get back that matches the prefix you see for 
me.  I don't know.  I am pretty sure that no one has discussed 
those issues with the applications area at any time since IPv6 
started to gell.

I'm equally concerned about statements like:

TH Any app that sends topology locator information without 
understanding
TH the topology is broken.

and

That is not clear, but in any case the deployed Internet is
not the same as it was 25 years ago. From RFC 791;

A distinction is made between names, addresses, and
routes [4].   A name indicates what we seek.  An address
indicates where it is.  A route indicates how to get
there.  The internet protocol deals primarily with
addresses.  It is the task of higher level (i.e.,
host-to-host or application) protocols to make the
mapping from names to addresses.   The internet module
maps internet addresses to local net addresses.  It is
the task of lower level (i.e., local net or gateways)
procedures to make the mapping from local net addresses
to routes.

Mapping names to addresses is a simple task. One could argue
that it was so simple that apps took the shortcut of using the
'where' to also define the 'what'. That does not mean the
requirement for apps to keep a clear context for 'what' is a
new requirement.
Tony, I agree with the first statement.  I'd almost suggest that 
it is self-evidently true, which may be the point you are trying 
to make. But we get different meanings from the RFC 791 quote, 
and that may be a lot of the difference in perspective here.  At 
the time 791 was written, addresses were not routes, or bound to 
routes.  Consequently, it would have been inappropriate to refer 
to them as topology locators.  They were just addresses. 
Routes, and hence topology and topology locators, were 
invisible, not only to the applications, but even to TCP.  An 
application that uses addresses in the 791 sense isn't involved 
with topology at all and has no clue about network topology. 
Even the here and not here implied by testing whether an 
address was on the same network was, and remains, invisible to 
most applications.

When we introduced subnetting and then CIDR and, more 
specifically, route aggregation, we 

RE: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Tony Hain
Margaret Wasserman wrote:
 Of course, in the case of site-local addresses, you don't 
 know for sure that you reached the _correct_ peer, unless you 
 know for sure that the node you want to reach is in your 
 site.  

Since the address block is ambiguous, routing will assure that if you
reach a node it is the correct one. This FUD needs to stop!

 So, when working from a list of addresses that 
 includes a site-local, an explicit refusal from the node that 
 you reach at the site-local address (i.e. connection reset, 
 port unreachable, or an application-level refusal) might not 
 be a reason to stop working down the list.

Your argument applies to global scope addresses, not ambiguous SL as
currently defined.

 
 This is one case where the ambiguity of site-local addresses 
 causes problems that would not be caused by using addresses 
 that are globally unique, but unreachable.

It does not, routing explicitly breaks in the presence of ambiguous
addresses. That is the feature of ambiguity that many network managers
want. What others want and we haven't provided is a stable address block
that is unambiguous and unrelated to any providers they may be attached
to. 

 
 I understand that a collision of site-local addresses will be 
 rare in autoconfigured networks.  But, in non-autoconfigured 
 networks, I'd still expect some proliferation of subnet == 1, 
 IID == 1.

This is not a problem, it is seen by many as a feature since it prevents
unintended exchange of routing information.

Tony 





Re: Thinking differently about the site local problem (was: RE:site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Eliot Lear
Tony Hain wrote:
Margaret Wasserman wrote:

Of course, in the case of site-local addresses, you don't 
know for sure that you reached the _correct_ peer, unless you 
know for sure that the node you want to reach is in your 
site.  


Since the address block is ambiguous, routing will assure that if you
reach a node it is the correct one. This FUD needs to stop!


Right up till the point where two companies start communicating with one 
another directly with site-locals.  Even if there is a router frob to 
keep the scopes scoped, you can bet it won't be used until someone 
realizes that the above problem occurred.

Eliot




Re: Thinking differently about the site local problem (was: RE:site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Måns Nilsson


--On Monday, March 31, 2003 12:17:44 -0800 Eliot Lear [EMAIL PROTECTED]
wrote:

 Since the address block is ambiguous, routing will assure that if you
 reach a node it is the correct one. This FUD needs to stop!
 
 
 Right up till the point where two companies start communicating with one
 another directly with site-locals.  Even if there is a router frob to
 keep the scopes scoped, you can bet it won't be used until someone
 realizes that the above problem occurred.

In every network (well, larger than a single subnet behind a firewall, that
is) I've seen, where there were RFC1918 addresses routed on the inside,
these things happened, although in v4-land. 

It is madness. It must stop. With v6, we can make it stop. So, SL must go
away, for it is an invitation to madness. 

All things SL is claimed to solve are solveable with unique addresses too,
as long as you've got enough of them. The rest is just simple (perhaps
tedious) work that every operations-aware person I know of would prefer to
madness. 

-- 
Måns Nilssonhttp://vvv.besserwisser.org

pgp0.pgp
Description: PGP signature


Re: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Stephen Sprunk
Thus spake Eliot Lear [EMAIL PROTECTED]
 Right up till the point where two companies start communicating with
 one another directly with site-locals.  Even if there is a router frob to
 keep the scopes scoped, you can bet it won't be used until someone
 realizes that the above problem occurred.

I've dealt with many companies interconnecting where both use RFC1918
space -- NAT is the first thing discussed.  You forget, these people are
connecting for a _business reason_ and there is real money to be lost if
they mess up.  It's a totally different engineering model than the public
Internet.

S

Stephen Sprunk God does not play dice.  --Albert Einstein
CCIE #3723 God is an inveterate gambler, and He throws the
K5SSSdice at every possible opportunity. --Stephen Hawking




RE: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Jeroen Massar
Keith Moore wrote:

   Well, that is emphatically *NOT* what application developers 
   do. They do not just observe that it does not work, they try
   to work around, e.g. routing messages to a different address,
   at a different time, through a third party, or through a
   different protocol. 
  
  Indeed, correctly coded applications will use a getaddrinfo()
  and then a connect() in a loop until succesful. 
 
 it's perfectly reasonable to connect to an address without first
 doing a DNS lookup.

I think nobody can't help you if you are using hardcoded IP's.
The only case you have an IP without DNS is when you get it
passed from another layer/entity (eg in a FTP from the server).
In any other way if you have multiple targets you can also
try all of those in a loop similar to getaddrinfo().

 even when you need to do a DNS lookup,
 getaddrinfo() doesn't always do what you need.

Can you identify those so that getaddrinfo() can be expanded
to fix these cases?

Greets,
 Jeroen




Re: Thinking differently about the site local problem (was: RE:site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Keith Moore

   Indeed, correctly coded applications will use a getaddrinfo()
   and then a connect() in a loop until succesful. 
  
  it's perfectly reasonable to connect to an address without first
  doing a DNS lookup.
 
 I think nobody can't help you if you are using hardcoded IP's.
 The only case you have an IP without DNS is when you get it
 passed from another layer/entity (eg in a FTP from the server).

uh, no.   you can get IP addresses from any number of sources other than
DNS, including from other processes that exist on other nodes.  It's a
perfectly reasonable thing to do.

 Can you identify those so that getaddrinfo() can be expanded
 to fix these cases?

getaddrinfo() cannot be fixed.  it's major premise - that the host has
the knowledge to make decisions about which of several addresses is best
to use - is fundamentally flawed, except in a few corner cases.



Re: Thinking differently about the site local problem (was: RE:site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Keith Moore
On Mon, 31 Mar 2003 15:43:38 -0600
Matt Crawford [EMAIL PROTECTED] wrote:

  All things SL is claimed to solve are solveable with unique
  addresses too, as long as you've got enough of them. The rest is
  just simple (perhaps tedious) work that every operations-aware
  person I know of would prefer to madness.
 
 All right, how do you make internal site communications completely
 oblivious to a change in your externally-visible routing prefix?

You declare that any app that keeps connections around for more than
some time period T (say for 30 days) have a mechanism for
detecting and recovering from prefix changes. That solves the
problem for all apps, not just for local apps. 



Re: Thinking differently about the site local problem (was: RE:site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Keith Moore
On Mon, 31 Mar 2003 15:49:03 -0600
Matt Crawford [EMAIL PROTECTED] wrote:

  Let's assume that there is a FooBar server in SiteA.  If another
  node in SiteA (NodeA) is communicating via a multi-party application
  to a node in SiteB (NodeB), and wants to refer NodeB to the FooBar
  server in SiteA, what does it do?
 
 I thought we agreed, completely outside of IPv6 concerns, that
 shipping addresses in application data was bad. 

what's this we stuff?  some individuals may have thought this was bad,
but there's never been widespread agreement.  actually it's bad to force
all apps to use DNS names - which are often less reliable, slower, less
correct, and more ambiguous than IP addresses.





Re: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Matt Crawford
  All right, how do you make internal site communications completely
  oblivious to a change in your externally-visible routing prefix?
 
 You declare that any app that keeps connections around for more than
 some time period T (say for 30 days) have a mechanism for
 detecting and recovering from prefix changes. That solves the
 problem for all apps, not just for local apps. 

Ah, well, if we're allowed to solve problems by fiat, let's just
declare that everyone do the right thing about site-local
addresses, automatically drop unauthorized packets, end hunger and
violence, and brush their teeth.



RE: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Jeroen Massar
Keith Moore [mailto:[EMAIL PROTECTED] wrote:

Indeed, correctly coded applications will use a getaddrinfo()
and then a connect() in a loop until succesful. 
   
   it's perfectly reasonable to connect to an address without first
   doing a DNS lookup.
  
  I think nobody can't help you if you are using hardcoded IP's.
  The only case you have an IP without DNS is when you get it
  passed from another layer/entity (eg in a FTP from the server).
 
 uh, no.   you can get IP addresses from any number of sources 
 other than DNS, including from other processes that exist on
 other nodes.  It's a perfectly reasonable thing to do.

Note the line about other layer/entity :)
Which is also one of the reasons why multi-faced dns isn't
the solution to this problem.

  Can you identify those so that getaddrinfo() can be expanded
  to fix these cases?
 
 getaddrinfo() cannot be fixed.  it's major premise - that the host has
 the knowledge to make decisions about which of several 
 addresses is best to use - is fundamentally flawed, except in a
 few corner cases.

Effectively this could be resolved by having one globally
unique identifier per node. The underlying protocols should
then take care that messages are delivered to the host
described by the unique locator. The underlying protocols
could then, in case of your so called corner cases, or routing
troubles, based on all kinds of external information change
the underlying protocols so that the connection stays active
and messages can still be sent from A to B. Enter SCTP and
multihoming ? :)

This has nothing to do with sitelocal but more with the
fact that a host can have multiple paths from A to B: internet ;)

Greets,
 Jeroen




Re: Thinking differently about the site local problem (was: RE:site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Keith Moore
On Mon, 31 Mar 2003 16:12:51 -0600
Matt Crawford [EMAIL PROTECTED] wrote:

   All right, how do you make internal site communications completely
   oblivious to a change in your externally-visible routing prefix?
  
  You declare that any app that keeps connections around for more than
  some time period T (say for 30 days) have a mechanism for
  detecting and recovering from prefix changes. That solves the
  problem for all apps, not just for local apps. 
 
 Ah, well, if we're allowed to solve problems by fiat, let's just
 declare that everyone do the right thing about site-local
 addresses, automatically drop unauthorized packets, end hunger and
 violence, and brush their teeth.

well, it's about like declaring by fiat that all apps should always use
DNS names, that apps should never use IP addresses, and that DNS should
be aware of network topology -- without bothering to consult with apps
writers to see whether this will actually work.

look, we've basically got three choices for address stability.  either 

(a) sites never renumber, 
(b) they renumber occasionally, or
(c) they NAT.  

we haven't figure out how to make (a) work and allow routing to scale,
or to allow enterprise networks to split or merge, etc.  we have tried
very hard to work around the problems with (c) and failed miserably. 
(b) is the only remaining option.  so it's not so much a matter
of declaring 'by fiat' that apps need to be able to survive renumbering,
as setting expectations for which apps need to be able to survive
renumbering while they're running.  and it appears feasible to set
expectations in such a way that most apps need not worry about it.

Keith



Re: Thinking differently about the site local problem (was: RE:site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Keith Moore

 This has nothing to do with sitelocal but more with the
 fact that a host can have multiple paths from A to B: internet ;)

multiple paths does not imply multiple addresses.



RE: Thinking differently about the site local problem (was: RE: site local addresses (was Re: Fw: Welcome to the InterNAT...))

2003-03-31 Thread Christian Huitema
  Applications will have to deal with that, yet there is no hint
  unless we provide a well-known flag.
 
 applications cannot be expected to deal with filters in any way other
than
 to report that the communication is prohibited.  the well known flag
 exists and is called ICMP.

Well, that is emphatically *NOT* what application developers do. They do
not just observe that it does not work, they try to work around, e.g.
routing messages to a different address, at a different time, through a
third party, or through a different protocol. 

Silently dropping packets is certainly not the right way to get an
application to stop trying. ICMP messages won't achieve that either:
since ICMP is insecure, it is routinely ignored.

Which actually poses an interesting question: when should an application
just give up? IMHO, there is only one clear-cut case, i.e. when the
application actually contacted the peer and obtained an explicit
statement that the planned exchange should not take place -- the
equivalent of a 4XX or 5XX error in SMTP or HTTP. 

-- Christian Huitema