Simple IPv6 Global Unicast question

RFC 3587 states that out of the 128 bits in IPv6 addresses, left most three bits are must be fixed as 001. Remaining 45 bits are reserved for global routing prefix. 16 bits after that can be used for subnetting and the 64 remaning bits are the host bits.

The first fixed three bits (001) and the 45 bit global routing prefix (45+3 = 48 bits) together can be assigned to an organization as their IPv6 prefix. Since the leftmost three bits are reserved as "001" for Global unicast IPv6 addresses, the range of Global Unicast Addresses available now are from 2000 to 3FFF, as shown below.

I am a bit confused as to how the 001 bits means Global Unicast Addresses always start with a 2 or a 3.

Left most 001 are fixed, this means the left most nibble can be:

0010 = 0x2

0011 = 0x3

The 4th left most bit is not fixed.

• Thank you so much, this is the most clear answer I have read in all my time trying to understand this! May 20, 2022 at 13:06

Remember that four bits are used for each hexadecimal digit. `0010` and `0011` are the bits for the first hexadecimal digit in `/3`, and the correspond to `2` and `3` in hexadecimal. The first three bits are unchangeable for `/3`, but the fourth bit can be `0` or `1`.

The current Global IPv6 address range (IPv6 addresses use hexadecimal numbers, unlike IPv4) is assigned from `2000::/3`, so you can have the first hexadecimal digit as `2` or `3`.