Ultimate IPv6 Cheat Sheet: Addressing, Subnetting, and Configuration Guide

Ultimate IPv6 Cheat Sheet

I’ve spent more hours than I’d like to admit staring at hexadecimal address blocks trying to remember whether fe80:: was link-local or unique local. If you’ve ever felt the same way, this cheat sheet is the one I wish existed when I started working seriously with IPv6. I’ve packed it with the syntax, commands, tables, and troubleshooting steps I actually use day to day, so you can bookmark this page and stop Googling the same things over and over.

Why IPv6 Still Trips People Up

IPv4 exhaustion pushed IPv6 adoption, but the learning curve is real. The address space is enormous (2^128 addresses), the notation is unfamiliar, and the tooling is slightly different from what most of us grew up on. Once the fundamentals click, though, IPv6 is actually more logical than IPv4 subnetting ever was. Let’s get into it.

IPv6 Address Format Basics

An IPv6 address is 128 bits long, written as eight groups of four hexadecimal digits, separated by colons.

2001:0db8:0000:0042:0000:8a2e:0370:7334

A few compression rules make this easier to read and write:

RuleExample BeforeExample After
Leading zeros in a group can be dropped0db8db8
One consecutive run of all-zero groups can be replaced with ::2001:0db8:0000:0000:0000:0000:0000:00012001:db8::1
:: can only be used once per addressN/APrevents ambiguity

So the address above compresses to:

2001:db8:0:42:0:8a2e:370:7334

Quick Notation Cheat Sheet

NotationMeaning
::All zeros compressed (shorthand, used once max)
::1Loopback address (equivalent to IPv4’s 127.0.0.1)
::Unspecified address (equivalent to IPv4’s 0.0.0.0)
fe80::/10Link-local prefix
fc00::/7Unique local address (ULA) prefix
2000::/3Global unicast prefix range
ff00::/8Multicast prefix

IPv6 Address Types

This is the part I see confused most often, so I’ve broken it into a clean reference table.

Address TypePrefixScopeTypical Use
Global Unicast Address (GUA)2000::/3Internet-routablePublic-facing servers, WAN interfaces
Unique Local Address (ULA)fc00::/7Private, site-localInternal networks, similar to RFC1918 in IPv4
Link-Local Address (LLA)fe80::/10Single link onlyNeighbor discovery, routing protocols
Multicastff00::/8Group communicationRouter/DHCP discovery, streaming
AnycastAssigned from unicast rangeNearest node in a groupCDN nodes, DNS root servers
Loopback::1/128Local host onlyTesting, local services
Unspecified::/128PlaceholderUsed before an address is assigned

A quick note on multicast: IPv6 doesn’t use broadcast at all. Every function that ARP and broadcast handled in IPv4 (like discovering neighbors) is done through multicast and the Neighbor Discovery Protocol (NDP) instead.

IPv6 Subnetting Explained

Subnetting in IPv6 is simpler than IPv4 in one big way: you almost never have to do bit-level math for host addresses, because the host portion is fixed at 64 bits in virtually every standard deployment.

Standard Structure

| 48 bits: Global Routing Prefix | 16 bits: Subnet ID | 64 bits: Interface ID |
ComponentBitsPurpose
Global Routing PrefixTypically /48Assigned by your ISP or RIR
Subnet ID16 bitsLets you create up to 65,536 subnets
Interface ID64 bitsHost portion, often auto-generated

Common Prefix Lengths

PrefixUse Case
/48Standard allocation to a site/organization
/56Common allocation for small sites or home use (256 /64 subnets)
/64Standard subnet size for a single LAN segment
/127Point-to-point links (router-to-router)
/128Single host address

Subnetting Example

Say your ISP hands you a /48: 2001:db8:1234::/48

You want to carve out subnets for different departments:

SubnetAddress Range
Sales2001:db8:1234:0001::/64
Engineering2001:db8:1234:0002::/64
Guest Wi-Fi2001:db8:1234:0003::/64
Server VLAN2001:db8:1234:0004::/64

Since the subnet ID is 16 bits, you have 65,536 possible /64 networks to work with from a single /48. That’s not a typo — IPv6 subnetting is designed to be generous so nobody has to ration addresses the way we did with IPv4.

Quick Subnetting Math Reference

Prefix DifferenceNumber of Subnets Created
/48 to /56256 subnets
/48 to /6465,536 subnets
/56 to /64256 subnets
/64 to /127Used for point-to-point, no further subnetting practical

Configuring IPv6 on Common Platforms

Linux (using ip command)

# Assign an IPv6 address to an interface
sudo ip -6 addr add 2001:db8:1234:1::1/64 dev eth0

# Bring the interface up
sudo ip link set eth0 up

# Add a default IPv6 route
sudo ip -6 route add default via 2001:db8:1234:1::fffe

# View all IPv6 addresses
ip -6 addr show

# View the IPv6 routing table
ip -6 route show

Expected output for ip -6 addr show:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
    inet6 2001:db8:1234:1::1/64 scope global
    inet6 fe80::a00:27ff:fe4e:66a1/64 scope link

Windows (using PowerShell)

# View IPv6 configuration
Get-NetIPAddress -AddressFamily IPv6

# Assign a new IPv6 address
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 2001:db8:1234:1::1 -PrefixLength 64

# Set a default gateway
New-NetRoute -InterfaceAlias "Ethernet" -DestinationPrefix "::/0" -NextHop 2001:db8:1234:1::fffe

# Disable IPv6 temporarily on an adapter
Disable-NetAdapterBinding -Name "Ethernet" -ComponentID ms_tcpip6

Cisco IOS

interface GigabitEthernet0/1
 ipv6 address 2001:db8:1234:1::1/64
 ipv6 enable
 no shutdown

ipv6 unicast-routing
ipv6 route ::/0 2001:db8:1234:1::fffe

Verify with:

show ipv6 interface brief
show ipv6 route

macOS

# View IPv6 addresses
ifconfig en0 | grep inet6

# Manually configure an interface
sudo networksetup -setv6manual "Wi-Fi" 2001:db8:1234:1::1 64 2001:db8:1234:1::fffe

Neighbor Discovery Protocol (NDP) in Depth

NDP is the backbone of how IPv6 hosts find each other, discover routers, and detect duplicate addresses. It replaces ARP, ICMP Router Discovery, and ICMP Redirect from the IPv4 world, all rolled into ICMPv6 messages.

NDP Message TypeICMPv6 TypePurpose
Router Solicitation (RS)133Host asks for a Router Advertisement immediately, rather than waiting
Router Advertisement (RA)134Router announces itself, its prefix, and configuration options
Neighbor Solicitation (NS)135Host asks “who has this address” (like ARP request)
Neighbor Advertisement (NA)136Host responds with its Layer 2 address (like ARP reply)
Redirect137Router tells a host a better next hop exists for a destination

I think of NDP as doing three jobs at once: address autoconfiguration, address resolution, and router discovery. When something feels “off” with IPv6 connectivity and nothing else explains it, checking that these five message types are actually flowing is usually where I look first.

Duplicate Address Detection (DAD)

Before a host starts using any unicast address, it sends a Neighbor Solicitation for its own tentative address. If nobody responds, the address is considered unique and moves to a “preferred” state. If another host responds, the address is marked as a duplicate and won’t be used. This is why a misconfigured static address on two devices can cause one or both machines to lose connectivity entirely rather than just conflicting quietly the way IPv4 sometimes does.

IPv6 Routing Protocol Notes

If you’re managing routed IPv6 networks rather than just host configuration, a few protocol-specific details are worth keeping handy.

ProtocolIPv6 Support Notes
OSPFv3Built specifically for IPv6, runs over link-local addresses, still uses areas and LSAs conceptually like OSPFv2
EIGRP for IPv6Cisco-proprietary, configured per-interface with ipv6 eigrp
BGPUses separate address families (address-family ipv6 unicast) to carry IPv6 routes alongside IPv4
RIPngRIP’s IPv6 successor, still uses hop-count limits, rarely used in modern networks
IS-ISSupports IPv6 through additional TLVs, common in large service provider backbones

A quick Cisco BGP example for enabling an IPv6 address family:

router bgp 65001
 neighbor 2001:db8::2 remote-as 65002
 address-family ipv6
  neighbor 2001:db8::2 activate
 exit-address-family

SLAAC vs DHCPv6 (Know the Difference)

MethodHow It WorksProvides DNS?Common Use
SLAAC (Stateless Address Autoconfiguration)Host generates its own address from the Router Advertisement prefixOnly with RDNSS optionSimple networks, IoT devices
DHCPv6 StatefulServer assigns the full addressYesEnterprise networks needing central control
DHCPv6 StatelessHost uses SLAAC for address, DHCPv6 for extra info (DNS, NTP)YesHybrid setups

Verification and Diagnostic Commands

CommandPlatformPurpose
ping6 2001:db8::1 or ping -6 2001:db8::1Linux/WindowsTest reachability
traceroute6 2001:db8::1Linux/macOSTrace the path to a destination
tracert -6 2001:db8::1WindowsTrace the path to a destination
ip -6 neigh showLinuxView the IPv6 neighbor table (like ARP)
netsh interface ipv6 show neighborsWindowsView neighbor cache
show ipv6 neighborsCisco IOSView neighbor discovery cache
ss -6 -tulnLinuxList listening IPv6 sockets
netstat -6WindowsShow IPv6 connections

Transition Mechanisms

Most networks aren’t pure IPv6 yet, so you’ll run into these transition strategies constantly:

MechanismDescriptionWhen You’d Use It
Dual StackRun IPv4 and IPv6 simultaneously on the same interfaceMost common approach today
6to4 TunnelingEncapsulates IPv6 traffic inside IPv4 packetsLegacy transition, largely deprecated
TeredoTunnels IPv6 through NAT’d IPv4 networksWindows client fallback (mostly legacy)
NAT64/DNS64Lets IPv6-only clients reach IPv4-only serversMobile carrier networks, IPv6-only rollouts
ISATAPTunnels IPv6 over an IPv4 intranetEnterprise transition scenarios

IPv6 in Cloud Environments

Since so much of my own work happens in cloud environments these days, I think this deserves its own quick section rather than being buried in configuration commands.

ProviderIPv6 Notes
AWSVPCs support dual-stack IPv6 CIDR blocks (typically /56, subnets /64); Amazon assigns the block, you can’t bring your own by default
AzureSupports dual-stack virtual networks; IPv6 public IPs are standard SKU only
Google CloudVPC subnets can be dual-stack; external IPv6 ranges are provider-assigned /96 blocks per instance in some configurations
CloudflareFull IPv6 support at the edge by default, often the easiest way to add IPv6 reachability to a site without touching backend infrastructure

A pattern I see often: teams add IPv6 to the load balancer or CDN layer first (an easy win), while backend services stay IPv4-only for a while longer behind NAT64 or a proxy. That’s a completely reasonable way to phase in support without a big-bang migration.

Useful IPv6 Tools and Utilities

ToolPurpose
ping6 / ping -6Basic reachability testing
traceroute6 / tracert -6Path tracing
ip -6 (Linux iproute2)Address, route, and neighbor management
radvdLinux daemon for sending Router Advertisements
dibblerCross-platform DHCPv6 server/client
sipcalcCommand-line subnet calculator with IPv6 support
nmap -6Network scanning with IPv6 targets
dig AAAAQuery DNS for IPv6 address records
test-ipv6.comBrowser-based connectivity test for dual-stack setups

Example subnet calculation with sipcalc:

sipcalc 2001:db8:1234::/48 -s 64

This breaks a /48 down into /64 subnets and shows you exactly how many you get and their ranges, which saves a lot of manual hex math.

Security Tips for IPv6

I can’t stress this enough: a lot of networks accidentally leave IPv6 wide open because firewall rules were written for IPv4 only. Don’t let that be you.

  • Don’t assume IPv6 is disabled just because you didn’t configure it. Most modern OSes enable it by default, and it can bypass IPv4-only firewall rules entirely.
  • Filter ICMPv6 carefully, not entirely. Unlike ICMPv4, ICMPv6 is required for core functions like Neighbor Discovery and Path MTU Discovery. Blocking it all will break your network.
  • Enable RA Guard on switches to prevent rogue Router Advertisements from redirecting traffic or causing DoS via bogus default gateways.
  • Use DHCPv6 Guard to block unauthorized DHCPv6 servers on your LAN.
  • Watch for Privacy Extensions (RFC 4941). These randomize the interface ID for outbound connections, which helps privacy but can complicate logging and asset tracking.
  • Apply the same ACL discipline as IPv4. Every IPv6-enabled interface needs its own access control, don’t just mirror IPv4 rules and assume coverage.
  • Disable unnecessary tunneling protocols like Teredo and 6to4 unless you have a specific need — they can be used to bypass perimeter defenses.

Troubleshooting Checklist

When IPv6 connectivity breaks, I work through this order:

  1. Check the link-local address first. If fe80:: isn’t present on the interface, IPv6 isn’t even minimally functional there.
  2. Verify Router Advertisements are being received. Use ip -6 route show (Linux) or show ipv6 route (Cisco) to confirm a default route learned via RA.
  3. Confirm the global address was assigned. Check for a 2000::/3 range address via SLAAC or DHCPv6.
  4. Test with ping6 to the gateway, then to an external address. This isolates whether the issue is local or upstream.
  5. Check firewall rules for ICMPv6. A blocked Neighbor Solicitation/Advertisement will silently break connectivity.
  6. Look at the neighbor table. If ip -6 neigh show shows FAILED states, Layer 2 resolution is the problem.
  7. Verify DNS resolution for AAAA records. dig AAAA example.com confirms whether DNS is returning IPv6 records at all.

Common Error Table

SymptomLikely CauseFix
No link-local addressInterface down or IPv6 disabledBring interface up, re-enable IPv6
Address assigned but no internetMissing default route from RACheck router’s RA configuration
Intermittent connectivityDuplicate Address Detection (DAD) conflictCheck for duplicate manually-assigned addresses
DNS resolves but connection times outFirewall blocking IPv6 traffic specificallyUpdate firewall rules to include IPv6
Neighbor discovery failingICMPv6 blocked on switch/firewallAllow ICMPv6 types 133-136

Best Practices

  • Always allocate at least a /64 per subnet — anything smaller breaks SLAAC and many standard features.
  • Document your subnetting scheme before deployment; unlike IPv4, you have so much space that inconsistent allocation becomes its own management headache.
  • Use ULA (fc00::/7) for internal-only communication when you don’t need global routability.
  • Keep DNS AAAA records in sync with your address plan from day one, don’t bolt it on later.
  • Test dual-stack failover regularly; a broken IPv6 path with a working IPv4 fallback can hide problems for months.
  • Standardize on either SLAAC or DHCPv6 per network segment to avoid inconsistent host configuration.

Real-World Use Cases

  • ISPs delegating a /56 to home routers, letting each household create up to 256 subnets for smart home segmentation.
  • Enterprises running dual stack during a multi-year migration, keeping IPv4 for legacy apps while shifting new services to IPv6-first.
  • Mobile carriers using NAT64/DNS64 to run IPv6-only core networks while still letting devices reach the IPv4 internet.
  • Content delivery networks using anycast IPv6 addresses so users are routed to the nearest edge node automatically.
  • IoT deployments using SLAAC because provisioning thousands of devices with DHCP leases isn’t practical.

Common Mistakes to Avoid

  • Assuming NAT is required in IPv6 — it isn’t, and trying to force NAT thinking behavior often complicates security architecture unnecessarily.
  • Forgetting to update firewall and monitoring rules to cover IPv6 traffic, not just IPv4.
  • Using subnet sizes smaller than /64, which breaks SLAAC and many IPv6 features that assume a 64-bit host portion.
  • Confusing link-local addresses with globally routable ones during troubleshooting.
  • Leaving default Router Advertisement settings unmanaged on production networks, opening the door to rogue RA attacks.

FAQs

Does IPv6 use subnet masks like IPv4? Not in the same dotted-decimal way. IPv6 uses CIDR notation exclusively (like /64), and there’s no equivalent to IPv4’s subnet mask calculations for host counts, since the host portion is standardized at 64 bits.

Do I need NAT with IPv6? No. IPv6’s address space is large enough that NAT isn’t required for address conservation. Some organizations still use NPTv6 (Network Prefix Translation) for specific renumbering scenarios, but it’s not a security requirement the way NAT is often assumed to be in IPv4.

Can IPv6 and IPv4 coexist on the same network? Yes, this is called dual stack and it’s the most common transition strategy in use today.

What’s the difference between link-local and unique local addresses? Link-local (fe80::/10) only works on the local network segment and isn’t routable. Unique local (fc00::/7) is routable within a private network but not on the public internet, similar in spirit to RFC1918 IPv4 space.

Why does my IPv6 address change periodically? That’s likely IPv6 Privacy Extensions (RFC 4941) at work, which randomizes the interface ID to prevent long-term device tracking.

Interview Questions on IPv6

  1. Explain the structure of an IPv6 address and how compression rules work.
  2. What is the difference between SLAAC and DHCPv6?
  3. Why doesn’t IPv6 use broadcast, and what replaces it?
  4. What is Neighbor Discovery Protocol, and what ICMPv6 types does it rely on?
  5. How would you troubleshoot a host that has an IPv6 address but no internet connectivity?
  6. What’s the purpose of a Unique Local Address, and how is it different from a Global Unicast Address?
  7. Describe how NAT64/DNS64 allows IPv6-only clients to reach IPv4 resources.
  8. Why is a /64 the standard subnet size in most IPv6 deployments?
  9. What security risks are specific to IPv6 that don’t exist in IPv4, and how do you mitigate them?
  10. What’s the difference between 6to4 tunneling and dual stack?

Printable Quick-Reference Summary

CategoryKey Facts
Address length128 bits, 8 groups of hex separated by colons
Loopback::1
Link-local prefixfe80::/10
ULA prefixfc00::/7
Global unicast prefix2000::/3
Multicast prefixff00::/8
Standard subnet size/64
Point-to-point link size/127
Common ISP allocation/48 or /56
Address autoconfigSLAAC or DHCPv6
No broadcastMulticast handles all group communication
No NAT requirementAddress space large enough to avoid it

Official Documentation and Further Reading

I keep this page open in a tab whenever I’m configuring or troubleshooting IPv6, and I hope it saves you the same amount of time it’s saved me.

Total
3
Shares

Leave a Reply

Previous Post
difference between www and ww1 domain

Difference Between WWW and WW1 Domain

Next Post
Ultimate IPv4 Cheat Sheet

Ultimate IPv4 Cheat Sheet: Subnetting, Addressing, and Configuration Reference

Related Posts