IPv6 Subnetting
Not really used by individual sites, but if you get a block from a RIR, this is how to subnet it.
In the US ARIN handles requests for v6 space.
Could be useful to work with NPTv6
Blessed Subnets
The easy v6 networks to subnet fall on hex digit boundaries of /4.
For these, see this chart.
/40
You’re given 3fff::/20, make some /40 networks.
A /40 is two hextets, and two hex digits worth of bits.
3fff:0:0000::/403fff:0:0100::/403fff:0:0200::/403fff:0:0300::/403fff:0:0400::/403fff:0:0500::/40
which becomes
3fff:0::/403fff:0:100::/403fff:0:200::/403fff:0:300::/403fff:0:400::/403fff:0:500::/40
/44
You’re given 3fff::/20, make some /44 networks.
A /44 is two hextets, and three hex digits worth of bits.
3fff:0:0000::/443fff:0:0010::/443fff:0:0020::/443fff:0:0030::/443fff:0:0040::/443fff:0:0050::/44
which becomes
3fff:0::/443fff:0:10::/443fff:0:20::/443fff:0:30::/443fff:0:40::/443fff:0:50::/44
/48
You’re given 3fff::/20, make some /48 networks.
A /48 is three hextets, worth of bits.
3fff:0:0::/483fff:0:1::/483fff:0:2::/483fff:0:3::/483fff:0:4::/48
Cursed Subnets
What if instead, we try and subnet, inside a hex digit?
First, we’d have to know what every hex digit is in binary.
| Hex | Binary |
|---|---|
| 0 | 0000 |
| 1 | 0001 |
| 2 | 0010 |
| 3 | 0011 |
| 4 | 0100 |
| 5 | 0101 |
| 6 | 0110 |
| 7 | 0111 |
| 8 | 1000 |
| 9 | 1001 |
| A | 1010 |
| B | 1011 |
| C | 1100 |
| D | 1101 |
| E | 1110 |
| F | 1111 |
Then we’d want to figure out where the boundaries are for bits borrowed:
| Bits Borrowed | Boundaries |
|---|---|
| 1 bit | 0, 8 |
| 2 bits | 0, 4, 8, C |
| 3 bits | 0, 2, 4, 6, 8, A, C, E |
/49
You’re given 3fff::/20, make some /49 networks.
A /49 is three hextets, plus one binary bit.
3fff:0:0:0::/493fff:0:0:8000::/493fff:0:1:0::/493fff:0:1:8000::/493fff:0:2:0000::/49
/50
You’re given 3fff::/20, make some /50 networks.
A /50 is three hextets, plus two binary bits.
3fff:0:0:0::/503fff:0:0:4000::/503fff:0:0:8000::/503fff:0:0:C000::/503fff:0:1:0000::/50
/51
You’re given 3fff::/20, make some /51 networks.
A /51 is three hextets, plus three binary bits.
3fff:0:0:0::/513fff:0:0:2000::/513fff:0:0:4000::/513fff:0:0:6000::/513fff:0:0:8000::/51