====== IPv6 ====== ===== Intro ===== IPv6 is the protocol after IPv4. Here are some notes about it. This doc will assume basic IPv4 knowledge. Subnets, static routing, ARP, DNS ===== The Basics ===== IPv6 is a network addressing protocol, just like IPv4. It serves the same purpose, but achieves it in different ways. The thing almost everyone knows about IPv6 is its enlarged address space. IPv4 addresses are 32 bits, meaning it has a cap of about 4 billion addresses. IPv6 has a space of 2^128 addresses, which is larger than the number of grains of sand Earth, or something. The large address space of IPv6 is useful - it ensures all devices on the global Internet can communicate with each other without ever needing NAT, or Network Address Translation. NAT can cause a number of issues which have to be worked around by network operators and computer programs, and are in general a headache. Here's the thing a lot of people don't know: The subnet size of an IPv6 end network cannot be "smaller" than a /64 - there is no /96, /120, etc. (With some niche exceptions). So think of IPv6 as a protocol with 2^64 networks, each with more address space than will ever be needed. ===== Why so big? ===== SLAAC. Explain how the "host" portion, or IID, is a 64-bit piece of the IPv6 address that is derived from the 48-bit MAC address of a NIC. ===== How do hosts get an address? ===== * SLAAC - standard and privacy addresses * DHCPv6 - Except for Android, some benefits ===== The IPv6 Allocation Hierarchy by size ===== Explain each tier of subnet size (network prefix size, that is). * /64 for end networks * /56 for small networks, even residential * /48 for businesses * /32 for large enterprises and ISPs * /16 or /24 for large ISPs ===== IPv6 Address Allocation ===== Link to Wiki for IPv6 reserved spaces. ===== IPv6 Multicast and SLAAC ===== ===== Prefix Delegation =====