Hacker News new | ask | show | jobs
by mSparks 4506 days ago
Why not just have the first 32 bits of ipv6 as equivelent to ipv4

so the ipv6 address of 66.249.73.108 is 66.249.73.108:0

1 comments

What does that gain you over the mapped suffix, where you embed the IPv4 address at the end? (which is used by NAT64, etc.)
because as I understand routing is still done from the MSB. So you leave the IPv4 existing infrastructure in place with no modification, but all those /32 addresses now become useful and all the existing IPv4 infrastructure and routing paths still work.

Rather than having to replace every single piece of hardware, software, nameserver and routing stack that works on IPv4. I could plug my IPv6 router into any ISP that gives a v4 address and have as many v6 addresses as could ever be needed.

It makes no sense to me why you would route IPv4 addresses on v6 LSB, it completely ignores current internet infrastructure and routing.

What you propose already exists and is called Teredo,6rd or other tunneling protocols (6to4/6rd is probably the best fit with getting a /48 per IPv4 address). Except they again map the IPv4 space into the suffix of the IPv6 address (or do no mapping depending on the protocol).

But you don't want to do that forever as you are now paying for a IPv4 header PLUS some more headers instead of just one IPv6 header if you have native IPv6.

No, I'm not talking about tunneling, I'm saying natively route at the v4 level, and the header will be less, because +160bit addresses will only be used when required.

so your routing table holds "66/4 port 1" ,"* port 2"

instead of hundreds of millions of entries to get the same thing by having the "66" >64 bits deep into the address (or worse ::66:* port 1, which breaks everything - hell how is this even done now?).

My point is, if the v4 address was in the MSB as standard, IPv6 would be working in virtually every single IPv6 device already.

As it is, we are all still using workarounds (and VPNs).

> No, I'm not talking about tunneling, I'm saying natively route at the v4 level, and the header will be less, because 128bit addresses will only be used when required.

There are multiple issues with this. The first and probably most important one is that it doesn't address routing table fragmentation, which is pretty much solved with IPv6, because most ISPs will end up announcing on the order of 1 or 2 prefixes instead of dozens, which can't ever be aggregated (like is the case in the IPv4 world right now and will only get worse).

The second one is, that it doesn't gain you much in terms of deployment over IPv6 + tunnels.

> so your routing table holds "66/4 port 1" ,"* port 2" > instead of hundreds of millions of entries to get the same thing by having the "66" >64 bits deep into the address (or worse ::66:* port 1, which breaks everything - hell how is this even done now?).

Ok.. I have no idea what you are talking about here (mainly your notation is leaving me confused)..

> My point is, if the v4 address was in the MSB as standard, IPv6 would be working in virtually every single IPv6 device already.

Even in the presence of NAT?

the routing table is the same as now, just that the IPv4 address becomes the network which sub routes. IPv4 hardware doesn't need to care about sub routing.

my point is with that notation, right now we have say a google address of 66.249.73.108

How does IPv6 handle retaining all the existing work and man hours that has gone in to making packets go to the 66.249.73/24 network, as quickly as possible, from anywhere in the world.

It seems to me it expects every administrator from top to bottom to start from scratch, then everyone is scratching their heads as to why that hasn't happened.

>Even in the presence of NAT?

No, and this is a good thing, only IPv6 devices which have their own IPv4 address/network can issue IPv6 addresses on that network. This is a good thing. e.g. I get 66.249.73 to be 421D:4900:0:0 in hex.

In what universe does this need to be ditched and started from scratch, and making something:something:0042:1D49 re doing - by hand - every NS, routing table etc

Where did these hundreds of millions of higher level routing tables suddenly come from?

It keep being phrased as "what is the source address of an IPv6 host on an IPv4 network". It seems to me the answer should simply be "the first 32 bits of the IPv6 address" - and it seems stupid it's not structured like this.