writes "Subnetting IPv6 sounds very complex but all you need to do is how an address is formed and how to efficiently use CIDR notation. An IPv6 address has 8 sections seprated by coloums and each sections has carries 4 hexadecimal digits(http://anuragbhatia.com/networking/how-to-subnet-ipv6/). So an IPv6 address is something like: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx – Each x can have a hexa decimal value i.e from 0 to 9 and a to f. This turns out to be 16 + 16 + 16 + 16 + 16 + 16 + 16 + 16 bits = 128bit, which means total possible addresses in IPv6 space is 2^128.
In most of cases RIRs like ARIN/APNIC allocate a /32 IPv6 block. This means first 2 sections 16+16 bits are reserved and rest 6 sections i.e 128-32 = 96 bits are available for use. Let’s pick example of Google’s block, 2404:6800::/32 from APNIC in Asia. Since only first 32 bits are reserved, block 2404:6800::/32 goes from 2404:6800:0000:0000:0000:0000:0000:0000 to 2404:6800:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF"Link to Original Source