> I translate this as: "I don't know how to make a solution. Please tell me how."

That would be a mistranslation. Try "I can't tell what you're referring to, or if you know what you're talking about." We already have a solution to running out of IP space - it's called IPv6.

> As for VM's, it's true what you say. But at some point if you are connecting to a global network (internet), there is a physical machine that has to connect. And that machine needs an address which cannot be "faked up". Indeed, you some sort of authority to make sure people are not using the same addresses.

The IP addresses for the VMs can't be "faked up" either. They need to be publicly visible.

> But people have come up with all sorts of complicated schemes to try to allow nodes to find each other in a decentralized way, namely DHT type stuff and progeny of DHT type thinking.

DHT is irrelevant.

> But who says you have to mess with (replace) the existing infrastructure? Maybe you can just build on top of it. Maybe the exiting infrastructure is a bootstrap. The buzzword is overlay. Old hat, right? Well, almost nothing is truly new. And still, the overlay approaches people know about are often mindlessly complicated. We can do better. Some have done better.

Ok, this is where some specifics would be useful. What "better" approaches have you got in mind?

> NAT doesn't try to replace the existing framework. It just deals with it.

> It isn't pretty, but this is how we are all connecting, in spite of all the IPv4 policy nonsense. NAT solved a problem. (And created a new one, arguably.) Whatever. It works.

Except when it doesn't. That's the point. NAT is just broken for a lot of use cases.

> Once that's done, once we're connected directly, we can forget about overblown global routing tables, brittle BGP, DHT and IPv6 dreaming. We can use plain ole Ethernet, we can keep our own small arp and IP routing tables, we can use private address space (or whatever numbers we want - it's our private network) and MAC's. We can run our own DNS. We can keep things simple and secure. Because we can have small private networks. We can manage them ourselves.

s/can/have to/g. Sure, you can "solve" the problem by balkanising everything. Most people would regard that as a huge step backwards, to be avoided at all costs.

> The global network was means to an end: finding each other and conecting directly. It was a bootstrap. If it runs on crusty ole IPv4 and depends on NAT and swollen routing tables, so be it. That's not my network. It is just a means to an end.

So you'd foist complexity on the rest of the world because your use cases don't match everyone else's? Nice. You say you want simplicity? Ethernet-over-UDP between asymmetrically NATted private networks, relying on some unspecified entity resolution protocol and UDP hole-punching, is precisely the opposite. It comes with the added bonus that you've made establishing a connection in the first place ludicrously expensive. You're arguing against a bigger, global network which supports all the use cases you're talking about and fixes the problems we're running into with IPv4, in favour of a hideously inefficient scheme which breaks things people want to do today.

> I want to connect to my friends and family, not random strangers.

And yet here you are, communicating with a random stranger on a random website, which is only possible right now because of a flat global public IP space.