5 ms·
> There are countless threads online on forums like Hacker News, Reddit where people who never really got comfortable with idea of IPv6 It’s clumsier than ipv4
by tonymet 7mo ago
> There are countless threads online on forums like Hacker News, Reddit where people who never really got comfortable with idea of IPv6
It’s clumsier than ipv4. It’s unnecessary since NAT was invented. In practice IPv6 requires dual stack, which means twice as many firewalls, names and routes to manage — so 4x the debugging because you have 2 dimensions that can either be working or failing. Addresses are too long to remember, too clumsy to write, and after 30 years still don’t have consistent representation (how many colons and brackets?).
Look, IPv6 has some benefits, but until the usability is fixed, it will be another 30 years before it’s close to 95% adoption.
- apearson 7mo agoTo reduce doing things twice there is NAT64/646XLAT. How many v4 addresses have you memorized, I normally use DNS or mDNS.
- tonymet 7mo agothat reduces part of the scope for some of the customers
- Chu4eeno 7mo ago... and annoying casting from `sockaddr` to either `sockaddr_in` or `sockaddr_in6*` while you pass around a socklen_t. 10 years ago I was all gung-ho about IPv6, but it's annoying at every level.
- tonymet 7mo agoHaving 2 sockets for loopback or multiple interfaces is a huge pain
- BenjiWiebe 7mo agoBind to '::' and you can get v4 and v6 traffic on one socket.
- tonymet 7mo agoDoesn’t work for loopback (you have to listen externally )
- vimredo 7mo agoIt works fine for me on NixOS (Linux), with a recent kernel version and no weird config options - or at least I think so.
- IcePic 7mo agoNot on all OSes. And it's not all good to have one less socket, there are still issues with people not expecting v4 traffic on a v6-capable socket, like described here: https://radar.offseq.com/threat/ipv4-mapped-ipv6-addresses-tue-mar-17th-d7adc16f https://radar.offseq.com/threat/ipv4-mapped-ipv6-addresses-t... If you want to handle two protocols, it is not unreasonable to use two sockets.
- Dagger2 7mo agoWhy are you casting to sockaddr_in/6? The whole point of that system is that you can just pass around the sockaddr* without even needing to have a definition for sockaddr_in or sockaddr_in6. All of the socket API functions accept sockaddr*, and if you need to get the IP or port out then you use getnameinfo(), which also takes sockaddr*. There should be little reason to ever cast to either of those types in normal use. (I can think of one or two cases where you might, but they're not common.) Having to deal with the separate socklen_t is mildly annoying, but you can just make a little struct that holds both.
- throw0101c 7mo ago> It’s clumsier than ipv4. It’s unnecessary since NAT was invented. This is a privileged view of someone whose ISP has enough money (or was around early enough) to get enough IPv4 addresses to assign one to every customer's WAN interface. Not everyone is so lucky. A lot of folks get non-publicly-routable 100.64.0.0/10[1] on their WAN interface with no way to do hole punching because they're behind CG-NAT. [1] https://en.wikipedia.org/wiki/IPv4_shared_address_space https://en.wikipedia.org/wiki/IPv4_shared_address_space
- deleted 7mo ago[deleted]
- tonymet 7mo agoso ipv6 is now a social justice issue? I'll send you the $2 a month for a elastic IP .
- BenjiWiebe 7mo agoCan I have it on my home network connection for $2/month? I could do VPS+VPN, but that's another company to deal with, another bill to pay, and several more things to break. And more latency too.
- orangeboats 7mo agoWhat about you send $2 to the people in India and China who can't get a public IPv4 address then?
- tonymet 7mo agoThey don’t need one. They have CGNAT
- orangeboats 7mo agoGot it. So they are subhumans who shouldn't get a public IP anyway.
- Hikikomori 7mo agoWhy would you be typing of remembering ipv6 addresses? Representation has always been consistent, if you learn the rules, like how 1337::1/64 is a valid address.
- tonymet 7mo agothat address doesn’t even work in the address bar
- BenjiWiebe 7mo agoIt's a valid address, just not a valid _URL_.
- tonymet 7mo agoIt’s not even a valid representation of the address (you need brackets )
- vimredo 7mo agoThe brackets are only needed for URLs, scp, and a few other things, due to the fact that ports are specified with colons. Usually you don't see them in a CIDR.
- Hikikomori 7mo agoIt's a valid adress, as a network engineer I've never used brackets.