<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, 20 Nov 2021, 09:21 Måns Nilsson, <<a href="mailto:mansaxel@besserwisser.org">mansaxel@besserwisser.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Subject: Re: Redploying most of 127/8 as unicast public Date: Sat, Nov 20, 2021 at 10:26:33AM +0900 Quoting Masataka Ohta (<a href="mailto:mohta@necom830.hpcl.titech.ac.jp" target="_blank" rel="noreferrer">mohta@necom830.hpcl.titech.ac.jp</a>):<br>
<br>
> > We cope,<br>
> > because a lot of technical debt is amassed in corporate and ISP /<br>
> > access provider networks that won't change.<br>
> <br>
> Sounds like abstract nonsense.<br>
<br>
No, it is the real reason that we still have v4 around.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">The "real" reason we have IPv4 around is that it works. Having IPv4+IPv6 is relatively easy, but dropping IPv4 to run IPv6 only is difficult. Some examples:</div><div dir="auto"><br></div><div dir="auto">***</div><div dir="auto"><br></div><div dir="auto">1. Your power goes out. When it comes back up, your internet connection is down. You want to log in to the router... Except you can't. You don't know the address, and you won't have one until your ISP gives you one via DHCP (or similar).</div><div dir="auto"><br></div><div dir="auto">Sure, you could maybe provide the link-local address on the bottom of the router, but expecting a user to get http://[fe80:211:aaff:febb:ccdd] right (and you might even need interface scoping!) is boring to cause user frustration when an ISP tech support tries to help, and having the provided CPE using fe80::1 is probably a recipe for disaster.</div><div dir="auto"><br></div><div dir="auto">Likewise, having an mdns broadcast (ssssh, I know) for "gateway" or "router" is definitely not something standardised.</div><div dir="auto"><br></div><div dir="auto">2. Your IPv6 prefix changes. With some ISPs, it can change every time your router reboots, and if you're with my ISP, it crash-reboots about once a week! If your CPE isn't providing your WiFi (range extender, mesh, nerd etc) then the old prefix is still valid for a while. Yes, there's an RFC to deal with this, but realistically it's not out there today.</div><div dir="auto"><br></div><div dir="auto">Also, any local services are going to break if they're on static addresses... I'm not just talking enterprise AD servers etc, it's also CCTV cameras, raspberry pis, NAS units etc. DHCP registration of addresses in DNS exists, yes, but it's just not used by most of these devices.</div><div dir="auto"><br></div><div dir="auto">This could easily be fixed by having a well-known (and short/memorable!) /48 set aside that would have NAT66 (1:1, not port overload) applied at the router to the delegated prefix received from the ISP, but I'll be shouted down to hell for even mentioning that idea.</div><div dir="auto"><br></div><div dir="auto">3. IPv6 "port forwarding" isn't really an easy thing -- people are not used to each machine having a global address. Sure, on many devices you can add firewall rules to allow traffic in, but it's not like the "port forwarding" concept people have gotten used to. I genuinely have no idea whether upnp/nat-pmp has an IPv6 analogue that "just works" which things like consoles (or apps like syncthing) can take advantage of.</div><div dir="auto"><br></div><div dir="auto">***</div><div dir="auto"><br></div><div dir="auto">IPv4 works. There is no appreciable benefit to the user in enabling IPv6, but the ISP does it and it just works. The same can't be said of going IPv6 only -- you can easily provide IPv6 only with NAT64 and DNS64 or some XLAT464 fun when you're dealing with public WiFi, but this is people's homes and businesses.</div><div dir="auto"><br></div><div dir="auto">Likewise, there's so many devices that are IPv4 only, and aren't getting retired anytime soon. In fact, there's a lot of devices released in the last few years that fully support IPv6, but only when it also has an IPv4 address. I believe either the new Xbox and/or PS5 fit into that category.</div><div dir="auto"><br></div><div dir="auto">IPv4 is getting more expensive for ISPs because of addressing costs, but a 5-tuple CGNAT solution capable of saturating a 100Gb/s pipe is under $10k these days if you're doing it on the cheap. Yes, this is massively oversimplified.</div><div dir="auto"><br></div><div dir="auto">Not just that, if you have a CPE capable of doing MAP-T (RFC7599 et al) then your CGNAT doesn't even need to track state, and you can probably do it in ASIC, especially with a programmable dataplane (P4 etc).</div><div dir="auto"><br></div><div dir="auto">IPv6 only is the goal. IPv4 is going to be with us for at least a decade. Getting IPv6 up and running on a network requires a lot of effort when that network is run by the IT PFY, but it will slowly get that wide penetration desired... Turning off IPv4 for your regular residential and SME ISP connections is such a PITA fraught with support problems that it is just not practical outside of very limited conditions.</div><div dir="auto"><br></div><div dir="auto">Certainly, on the content side, you can make all your HTTP services on IPv6 only servers, and have the IPv4 go to a proxy that routes based on Host header or SNI, but you need some networking knowledge already to understand what is going on there.</div><div dir="auto"><br></div><div dir="auto">IPv4 isn't going anywhere anytime soon. Enabling IPv6 reduces IPv4 traffic levels, it does not reduce IPv4 address usage.</div><div dir="auto"><br></div><div dir="auto">Happy for someone to prove me wrong here, but don't use mobile as an example. That's a very different market... I'm talking about residential and SOHO internet access here only.</div><div dir="auto"><br></div><div dir="auto">M</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
</blockquote></div></div></div>