Rocket Surgeon

  • 0 Posts
  • 5 Comments
Joined 3 months ago
cake
Cake day: February 16th, 2026

help-circle



  • When IPv6 was created, NAT technologies had not yet really developed yet. That development stretched out the utility of IPv4 and allowed it to be perfectly sufficient even today. Back then, you bought a public IP for every node on your network. Seems crazy now, because you can put an entire enterprise behind one IP.

    IPv6 was created to allow that same provisioning concept of every node having a public IP. Well, we don’t really need that anymore. So we relegate IPv6 usage to machines like cell phones, but if a human has to utilize the address, we give em an IPv4.


  • Every cell phone and a shit-ton of IoT runs on IPv6. There’s a lot of phones out there. I bet you even have one, no? You are using IPv6 right now.

    But if you really want to know why, first learn how to count in binary. It’s gonna be much harder than you expected.
    Then learn how to count in hex. Boy, that’s fun.
    Now convert them back and forth. Yay, what a good time!

    This is a byte. Starting from the right, each place doubles. No, its not backwards, it just feels that way.
    1111 1111
    128 | 64 | 32 | 16 | 8 | 4 | 2 | 1
    Add up the places. You can write any number from 0 to 255 this way.

    You’ve seen that 255 number a lot. Maybe this dotted decimal notation will look familiar.
    255.255.255.0
    For this number (a subnet mask) each of the first three positions is maxed out, and zero is … zero.

    Let’s write it in binary.
    1111 1111 . 1111 1111 . 1111 1111 . 0000 0000
    Does your head hurt yet? It will.

    Now let’s convert it to hex.
    Ya you got it. It’s base-16 integers. So you hit 10 and start counting in alpha.
    0 0
    1 1
    2 2
    3 3
    4 4
    5 5
    6 6
    7 7
    8 8
    9 9
    10 A
    11 B
    12 C
    13 D
    14 E
    15 F

    This is a nibble. It’s half a byte. Ya, that’s a little funny some nerd farted out one day.
    1 1 1 1
    8 | 4 | 2 | 1
    The max value of a nibble is … 15.
    And 15 is … F

    Split the byte into nibbles. Convert the two nibbles to hex.
    1 1 1 1 1 1 1 1
    (15) (15)
    FF

    So let’s do the whole subnet mask.
    255.255.255.0
    1111 1111 . 1111 1111 . 1111 1111 . 0000 0000
    (15) (15) . (15) (15) . (15) (15) . (0) (0)
    FF:FF:FF:00

    And that, my friend, is some of the very simplest hex math you are likely to see.
    In order to convert it from a number you understand, you have to run through binary, chop it in half, and recreate it as hex.
    It gets much more complex than this, and that’s just basic numerical manipulation.

    This is already too long, and I haven’t even written an IPv6 number yet.
    We are just managing single digits here.

    Why don’t people like IPv6? Well, its hard.