Short version:     The only applications I can think of which work OK
                   behind NAT and which would be easy to use with
                   IPv6 would be client-server applications, in which
                   the client may be behind NAT and the server cannot
                   be.  These are not the most challenging types
                   of applications to make work from behind NAT.

Hi patte,

>> As far as I know, CEE won't work with NAT.  That is not necessarily a
>> bad thing with IPv6, since it has long been hoped that NAT would not
>> infest IPv6.
> 
> NAT is evil, no doubt about that. But if we wouldn't have had NAT most
> likely the application people would have written more applications
> that are relying directly on IP-addresses and a migration of
> application to e.g. IPv6 would be much harder. So it is bad but there
> is something good also.

I can't think why an IPv4 application which has been made to work
from behind NAT, I guess with specific messy protocols and external
servers to trick the NAT box into allowing various things to happen,
would be easier to modify for IPv6 operation.  As far as I know,
making an application able to operate from behind NAT isn't some
special generalised independence from how each host is connected or
where, which would somehow ease rewriting the code for IPv6.

This is pretty generalised discussion.  Can you think of some
examples?  Below I consider client-server applications where the
client may be behind NAT and does all its work with a server which is
not behind NAT, using HTTP - which could be over IPv4 or IPv6.
However, other applications need communication between two or more
hosts which may be behind NAT, ideally without a server.


>>> - so actually it is not the CEE's
>>> fault that you get into trouble with these kind of applications. And a
>>> new architecture comes with a cost, not everything can be preserved as
>>> such - if everything is preserved, then it can't be a new
>>> architecture.
>>
>> Yes, but the only benefit of CEE I know of, apart from architectural
>> purity, is that it enables multihoming and perhaps mobility on a
>> scalable basis without the need to upgrade the routing system at all.
>>
>> This is impressive and interesting, but it comes at a cost, as I
>> argue in my recent message about how CES is very different from CEE:
>> more delays in establishing most communication sessions, more work
>> for hosts, more packets going back and forth between hosts, more
>> lookups by hosts into slow, less then 100% reliable global query
>> server systems (such as DNS) - and all this is made worse still for
>> any host which is on a wireless link with congestion, delay, dropped
>> packets etc.
>>
>> Then there is the fact that CEE only delivers substantial benefits to
>> adopters and to scalable routing after everyone has adopted it in
>> their hosts and after essentially all applications have been
>> rewritten to use the new CEE API in the stack.
>>
>> This is never going to happen.  The Internet is not so broken that we
>> have to rewrite the apps.
> 
> True, but NAT has done us a favor here. The application which works
> well over NAT shouldn't care what is happening on the network layer
> and most of the applications working over Internet shouldn't be a big
> issue. 

I am not sure this is true - except to the extent that if the
application simply relies on an underlying protocol, such as TCP or
HTTP, to connect to a server which is not behind NAT.  It is easy to
do client-server applications where the client is behind NAT and the
server isn't.  If the application uses HTTP as its basis, and always
tells the HTTP layer to open a session to a given URL, then I agree,
the application has nothing to do with IPv4 or IPv6, and will work
fine no matter how the HTTP system makes the session to the specified
server - assuming the URL somehow gives the HTTP layer access to its
choice of IPv4 and IPv6 server.

But this is only one subset of applications.  The real trick with NAT
is to make it possible for the behind-NAT host to receive a packet
from some other host (which itself may be behind NAT) when this host
has not previously opened up a session to the other host.  A further
trick is to make this work if the unfortunate host is behind two or
more layers of NAT.

I don't see how such necessarily messy arrangements for outsmarting a
variety of types of NAT (and the host can't easily tell which kind of
NAT it is behind, or how many levels) necessarily means that the
application can be made to work on IPv6 without much fuss.

> But then when you have a look on what is used inside an
> enterprises' Intranet it is a different story - there is quite a lot
> of applications that has been tailored for businesses and if you
> change that it will be expensive, very expensive

There's no way all these applications are going to be rewritten for
the purpose of supporting scalable routing.  They might be rewritten
if there is ever sufficient impetus to make them work with IPv6.

CES provides scalable routing much better and with more immediate
benefits to adoptors and routing scalability than CEE.  Only CEE
requires rewriting applications.


>>> So is NAT really that evil as its reputation?
>>
>> I think NAT is very evil.  The any-to-any connectivity model of the
>> Internet is an excellent thing.
> 
> It is evil, no doubt - but it is today part of the package.

Yes.

  - Robin

_______________________________________________
rrg mailing list
rrg@irtf.org
http://www.irtf.org/mailman/listinfo/rrg

Reply via email to