3 ms·
Embrace Extend Extinguish I vote for IPv5 protocol, which will allow to cal any IPv4 host via IPv5-IPv4 NAT transparently at nearest bridge. WHY I cannot do `
by drran 5y ago
Embrace Extend Extinguish
I vote for IPv5 protocol, which will allow to cal any IPv4 host via IPv5-IPv4 NAT transparently at nearest bridge.
WHY I cannot do `ping6 127.0.0.1`? WTF? Is IPv6 is too small for whole IPv4 address space?
- tialaramex 5y agoYou've listed a command line you'd like to run, but have you spent any time to decide what it is that you think it should actually mean? Maybe you think it should just be exactly equivalent to ping6 ::1 - your ping6 could be updated to allow this but, like, why? That's not an improvement at all. OK, so maybe it should be equivalent to ::127.0.0.1 - but that's very strange, an operating system could choose to have this do what you expect locally but it's not clear to what end and again it doesn't offer any wider improvement. IPv6 is big enough that it contains the entire IPv4 address space - in several different places in fact although ::a.b.c.d is the most transparent. But, that's completely irrelevant to the problem, which I suspect means you still haven't quite grasped what the problem even is.
- slownews45 5y agoYou're wrong here. Folks actually deploying wanted better co-existence options for folks on IPv6, and it's shown up. You basically route ipv6 as IPv6 until you hit a network border that doesn't support IPv6, then go over to IPv4 for the rest. This let's me do IPv6 only devices without giving up IPv4. As it is, they locked the upgrade cycle, because you can't do IPv6 only without losing access to IPv4 (historically). In the end folks did get work arounds going using 464XLAT https://datatracker.ietf.org/doc/html/rfc6877 https://datatracker.ietf.org/doc/html/rfc6877
- drran 5y agoI expected (20+ years ago), that IPv6 address space will be extension of IPv4 address space, so `ping6 IPv4_ADRESS` will use IPv4 protocol internally, bind6(IPv4_ADDRESS, IPv4_PORT) will use IPv4 socket internally, and so on. It's easy to implement: an_ipv6_function(address) { if (address & 0xffffffffffff0000 == 0) { // Use legacy ipv4 protocol ... } else { // Use modern ipv6 protocol ... } } Actual result: I cannot ping an ipv4 address using an ipv6 tool, or connect to an ipv4 server using an ipv6 only tool.
- cesarb 5y agoThat already exists, it's called an "IPv4-mapped address". The IPv4 address 198.51.100.15 can be represented in IPv6 as ::ffff:c633:640f (normally shown as ::ffff:198.51.100.15). See in particular at https://man7.org/linux/man-pages/man7/ipv6.7.html https://man7.org/linux/man-pages/man7/ipv6.7.html the IPV6_V6ONLY option which can be used to disable that mapping.
- drran 5y agoYes, I know about this mapping (I can read man pages too), but a) ping6 ::ffff:127.0.0.1 doesn't work too; b) it's not an IPv4 address, because the binary representation of ::ffff:127.0.0.1 != 127.0.0.1. It's the IPv4 address space mapped to an IPv6 address space (IPv4-mapped-on-IPv6). c) IPv4 addresses in IPv6 address space are deprecated: https://datatracker.ietf.org/doc/html/rfc4291#section-2.5.5.1 https://datatracker.ietf.org/doc/html/rfc4291#section-2.5.5.... . In short, IPv6 and IPv4 cannot coexist, so they must be separated, so we must keep IPv4, because it's mandatory, and we may skip IPv6, because it's optional. So, all internet providers in my area are skipping IPv6, because they can. All that problems are created by lack of backward compatibility in IPv6 protocol. Why? «Because backward compatibility with IPv4 is unnecessary. IPv6 is so much better. Everyone will jump to IPv6 till end of the next (1995) year.»
- dcow 5y agoWhy not IPv10?