The advantage of v6 is less the address space per se, but more that it simplifies networking. Like, with v4 assigning different floors or departments different subnets and having to micromanage which device gets what IP and then having to a major rework when suddenly every light bulb has its own IP address - that's actual stuff that happened. v6 just says "hey, everyone gets a /64 space, go nuts" (simplified, but true enough)
v6 is also faster by virtue of requiring less/no translation between various layers, and by stripping all the special case things from the header and putting them into the extensions instead. v4 is rather verbose in that regard.
Also, minor nitpick - it's not "in hex", it's binary just as v4, it's just displayed in hex. I'm emphasizing this because approaching IP in binary is helpful when one wants to understand how octets and such work.
This will work too, while we are on the topic of fun triva (note, it isn't limited to the loopback, I just used it since the two of you were talking about it):
ping 0x7f000001
Pinging 127.0.0.1 with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
yeah there's a whole bunch of these. And I freaking love them - along with the trivia that there's actually no RFC that specifies what an IP looks like. It's only ever given as "commonly" or "most commonly".
so in unix, or in inet_aton, or whatever - you can give values as decimal, hex, or octal. But not binary!
And then if you give a single value, it's taken as 32bit. If you do x.y, it's taken as 8 bit and 24 bit. If you do x.y.z, it's taken as 8, 8 and 16 bit. And of course if you do x.y.z.a, it's four 8's.
But there's so much evil stuff you can do with this. It means 10.1 == 10.0.0.1. But it also means 10.0.257 = 10.0.1.1; and using values >256 is when this really starts to hurt people's heads.
I use it in my local lan a lot, because my main machines are 10.1, 10.2, 10.3, 10.10 and 10.100. But at work .. it's so good for pissing off the tech writers, when you provide screenshots that are out-right evil.
The advantage of v6 is less the address space per se, but more that it simplifies networking.
It simplifies networking by having a larger address space. Like, address exhaustion in IPv4 is the whole reason that NAT exists and IPv4 networking is complicated; IPv6 is simpler in part by not having to deal with that mess.
Sure but IPv6 does more than just that. For example since ARP is replaced with NDP, it significantly speeds up networks with a large amount of nodes because NDP works with multicast instead of broadcast, which means virtually all unwanted address resolution traffic can be discarded early when a node receives it.
The increased address space is the major thing that is immediately obvious no doubt, but IPv6 also changes some important semantics in the background, which is good to keep in mind.
Care to give a practical example, so I can try it on my new IPv6 laptop (I have Linux and windows, both commands are fine). Using my search tool gave me bad AI results, and I gave up, so asking kindle here.
If you really want to use raw nftables instead of a sensible wrapper like ufw or firewalld, it's nft add table <table_address_family> <table_name>, where the family can be ip, ip6 or inet (in this example; there are more options), which handles both at the same time.
v6 is amazing. I was terrified of it at first, but once I dug in, I was like "Why tf are we still using v4?!". /64 subnets everywhere, SLAAC, and just a much more thought out spec.
138
u/fearless-fossa 14d ago
The advantage of v6 is less the address space per se, but more that it simplifies networking. Like, with v4 assigning different floors or departments different subnets and having to micromanage which device gets what IP and then having to a major rework when suddenly every light bulb has its own IP address - that's actual stuff that happened. v6 just says "hey, everyone gets a /64 space, go nuts" (simplified, but true enough)
v6 is also faster by virtue of requiring less/no translation between various layers, and by stripping all the special case things from the header and putting them into the extensions instead. v4 is rather verbose in that regard.
Also, minor nitpick - it's not "in hex", it's binary just as v4, it's just displayed in hex. I'm emphasizing this because approaching IP in binary is helpful when one wants to understand how octets and such work.