IPv4 is running out of addresses, IPv6 is the successor to IPv4 with a much larger 128-bit address space, IPv6 includes fixes for IPv4 limitations and other enhancements, with increasing internet population, limited IPv4 address space, issues with NAT and the IoT, the time has come to begin the transition to IPv6
Both IPv4 and IPv6 will coexist in the near future and the transition will take several years, IETF has created various protocols and tools to help network administrators migrate their networks to IPv6 (dual stack, tunneling, translation)
Network Address Translation 64 (NAT64) allows IPv6-enabled devices to communicate with IPv4-enabled devices using a translation technique similar to NAT for IPv4
Tunneling and translation are for transitioning to native IPv6 and should only be used where needed, the goal should be native IPv6 communications from source to destination
IPv6 addresses are 128 bits in length and written in hexadecimal, not case-sensitive, preferred format is x:x:x:x:x:x:x:x with each "x" consisting of four hexadecimal values, a hextet is the unofficial term used to refer to a segment of 16 bits, or four hexadecimal values
The first rule to help reduce the notation of IPv6 addresses is to omit any leading 0s (zeros), this rule only applies to leading 0s, NOT to trailing 0s
A double colon (::) can replace any single, contiguous string of one or more 16-bit hextets consisting of all zeros, the double colon (::) can only be used once within an address, otherwise there would be more than one possible resulting address
There are three broad categories of IPv6 addresses: unicast (uniquely identifies an interface on an IPv6-enabled device), multicast (used to send a single IPv6 packet to multiple destinations), anycast (any IPv6 unicast address that can be assigned to multiple devices, a packet sent to an anycast address is routed to the nearest device having that address)
Prefix length is represented in slash notation and is used to indicate the network portion of an IPv6 address, the IPv6 prefix length can range from 0 to 128, the recommended IPv6 prefix length for LANs and most other types of networks is /64
IPv6 devices typically have two unicast addresses: global unicast address (GUA, similar to a public IPv4 address, globally unique and internet-routable) and link-local address (LLA, required for every IPv6-enabled device, used to communicate with other devices on the same local link, not routable and confined to a single link)
IPv6 unique local addresses (range fc00::/7 to fdff::/7) have some similarity to RFC 1918 private addresses for IPv4, but are used for local addressing within a site or between a limited number of sites, are not globally routed or translated to a global IPv6 address
Global routing prefix (prefix/network portion assigned by provider), subnet ID (used by organization to identify subnets), interface ID (equivalent to host portion, recommended to use /64 subnets)
Enables a device to communicate with other IPv6-enabled devices on the same link and only on that link, packets with a source or destination LLA cannot be routed, every IPv6-enabled network interface must have an LLA, if not configured manually it will be automatically created, in the fe80::/10 range
Devices obtain GUA addresses dynamically through ICMPv6 messages, router solicitation (RS) messages from hosts to discover routers, router advertisement (RA) messages from routers to inform hosts on how to obtain GUA and provide network information