IPv6 Quick Reference Card

This quick reference guide provides essential IPv6 information at your fingertips, including address formats, special addresses, common commands for different operating systems, and troubleshooting tools. Whether you're a network administrator, developer, or simply curious about IPv6, this cheat sheet covers the fundamentals you need to work with IPv6 effectively.

Address Format and Notation

Basic Format

IPv6 addresses are 128 bits long, written as eight groups of four hexadecimal digits, separated by colons:

xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx

Example (full notation):

2001:0db8:85a3:0000:0000:8a2e:0370:7334

Address Compression Rules

Rule 1: Omit leading zeros

2001:0db8:0000:000b:02aa:00ff:fe28:9c5a
2001:db8:0:b:2aa:ff:fe28:9c5a

Rule 2: Use :: for consecutive zero segments (only once per address)

Full:       2001:0db8:0000:0000:0000:0000:0000:0001
Compressed: 2001:db8::1

Combined example:

Original:         fe80:0000:0000:0000:0202:b3ff:fe1e:8329
Compressed:       fe80::202:b3ff:fe1e:8329

Prefix Notation

IPv6 uses CIDR notation for network prefixes:

2001:db8:85a3::/64

The number after the slash indicates the prefix length (network portion).

Common prefix lengths:

IPv6 in URLs

IPv6 addresses in URLs must be enclosed in square brackets:

Wrong:  http://2001:db8::1:80/
Right:  http://[2001:db8::1]:80/

HTTPS examples:
https://[2001:db8:85a3::8a2e:370:7334]/path
https://[2001:db8::1]:8443/api/endpoint

Why brackets? The colons in IPv6 addresses would conflict with the port separator (:) without brackets.

Special IPv6 Addresses

Reserved and Special Purpose

Address Compressed Purpose IPv4 Equivalent
::1/128 ::1 Loopback address (localhost) 127.0.0.1
::/128 :: Unspecified address (no address) 0.0.0.0
fe80::/10 fe80::... Link-local addresses (local network only) 169.254.0.0/16
fc00::/7 fc00::... or fd00::... Unique local addresses (private) 10.0.0.0/8, 192.168.0.0/16
2000::/3 2xxx:... or 3xxx:... Global unicast (public addresses) Public IPv4
ff00::/8 ff... Multicast addresses 224.0.0.0/4
2001:db8::/32 2001:db8::... Documentation/examples only 192.0.2.0/24

Important Multicast Addresses

Address Purpose
ff02::1 All nodes on link-local (replaces IPv4 broadcast)
ff02::2 All routers on link-local
ff02::5 All OSPFv3 routers
ff02::6 All OSPFv3 designated routers
ff02::9 All RIP routers
ff02::a All EIGRP routers
ff02::1:2 All DHCP servers and relay agents

Address Type Identification

Quick identification by prefix:

First Hex Digits Type
::1 Loopback
fe80 Link-local
fc or fd Unique local (private)
2 or 3 Global unicast (public)
ff Multicast
2001:db8 Documentation (do not route)

Address Structure Breakdown

2001:0db8:85a3:0000:0000:8a2e:0370:7334
└────┬────┘ └─┬─┘ └──────┬──────┘
  Global     Subnet    Interface
  Routing    ID        Identifier
  Prefix               (IID)
  (48 bits)  (16 bits) (64 bits)

Typical division:

Commands by Operating System

Windows Commands

View IPv6 configuration:

ipconfig /all

IPv6-specific routes:

netsh interface ipv6 show route

IPv6 neighbors (ARP equivalent):

netsh interface ipv6 show neighbors

Ping IPv6 address:

ping <ipv6-address>
ping 2001:4860:4860::8888
ping -6 google.com

IPv6 traceroute:

tracert -6 <hostname>
tracert -6 google.com

DNS lookup for AAAA records:

nslookup -type=AAAA google.com

Enable/disable IPv6 on interface:

netsh interface ipv6 set interface "Ethernet" forwarding=enabled
netsh interface ipv6 set interface "Ethernet" forwarding=disabled

Reset IPv6 configuration:

netsh int ipv6 reset
ipconfig /flushdns

Check IPv6 privacy extensions:

netsh interface ipv6 show privacy

Disable IPv6 privacy extensions:

netsh interface ipv6 set privacy state=disabled

macOS Commands

View IPv6 addresses:

ifconfig en0 | grep inet6

All network interfaces with IPv6:

ifconfig | grep inet6

IPv6 routing table:

netstat -rn -f inet6

Find IPv6 default gateway:

netstat -rn inet6 | grep default

Ping IPv6 address:

ping6 <ipv6-address>
ping6 2001:4860:4860::8888
ping6 google.com

IPv6 traceroute:

traceroute6 google.com

DNS lookup for AAAA records:

dig AAAA google.com
host -t AAAA google.com
nslookup -type=AAAA google.com

View neighbor discovery cache:

ndp -a

Flush neighbor discovery cache:

sudo ndp -c

Flush DNS cache:

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Configure IPv6 (Network Preferences):

System Preferences → Network → Advanced → TCP/IP
Configure IPv6: Automatically / Manually / Link-local only / Off

Linux Commands

View IPv6 addresses:

ip -6 addr show
ifconfig -a | grep inet6

IPv6 routing table:

ip -6 route show
netstat -rn -A inet6

Find default IPv6 route:

ip -6 route | grep default

Ping IPv6 address:

ping6 <ipv6-address>
ping6 2001:4860:4860::8888
ping6 google.com

IPv6 traceroute:

traceroute6 google.com
tracepath6 google.com

DNS lookup for AAAA records:

dig AAAA google.com
host -t AAAA google.com
nslookup -type=AAAA google.com

View neighbor discovery cache:

ip -6 neigh show

Flush neighbor discovery cache:

sudo ip -6 neigh flush all

Check if IPv6 is disabled:

cat /proc/sys/net/ipv6/conf/all/disable_ipv6

Returns 0 (enabled) or 1 (disabled)

Enable IPv6 (temporary):

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0

Disable IPv6 (temporary):

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1

Enable/disable IPv6 on specific interface:

sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6=0  # enable
sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6=1  # disable

View IPv6 firewall rules (ip6tables):

sudo ip6tables -L -n -v

Diagnostic and Troubleshooting Commands

Testing Connectivity

Test IPv6-enabled public DNS servers:

Google DNS:      2001:4860:4860::8888, 2001:4860:4860::8844
Cloudflare DNS:  2606:4700:4700::1111, 2606:4700:4700::1001

Ping test examples:

# Windows
ping 2001:4860:4860::8888

# macOS/Linux
ping6 2001:4860:4860::8888

Common Diagnostic Workflow

1. Check if you have an IPv6 address:

# Windows
ipconfig | findstr "IPv6"

# macOS
ifconfig en0 | grep inet6

# Linux
ip -6 addr show | grep inet6

2. Check default gateway:

# Windows
netsh interface ipv6 show route | findstr "::/0"

# macOS
netstat -rn inet6 | grep default

# Linux
ip -6 route | grep default

3. Test DNS resolution:

# All platforms
nslookup -type=AAAA test-ipv6.run

4. Test connectivity to known IPv6 server:

# Windows
ping 2001:4860:4860::8888

# macOS/Linux
ping6 2001:4860:4860::8888

5. Trace route to identify where packets fail:

# Windows
tracert -6 google.com

# macOS/Linux
traceroute6 google.com

Troubleshooting [ICMPv6](icmpv6-usage)

ICMPv6 is essential for IPv6 operation (unlike ICMP in IPv4). Never block all ICMPv6!

Critical ICMPv6 types:

Test ICMPv6:

# Windows (requires admin/elevated prompt)
netsh advfirewall firewall show rule name=all | findstr ICMPv6

# Linux
sudo ip6tables -L | grep icmpv6

Protocol Comparison: IPv4 vs IPv6

Feature Comparison

Feature IPv4 IPv6
Address size 32 bits 128 bits
Address format Decimal (192.168.1.1) Hexadecimal (2001:db8::1)
Total addresses ~4.3 billion ~340 undecillion
Header size Variable (20-60 bytes) Fixed (40 bytes)
Fragmentation Routers and hosts Only sending host
Checksums In header None (handled by upper layers)
Broadcast Yes No (replaced by multicast)
Configuration DHCP or manual SLAAC, DHCPv6, or manual
IPSec Optional Built-in (though not mandatory)
ARP Yes (separate protocol) No (NDP via ICMPv6)

Command Equivalents

Task IPv4 Command IPv6 Command
Ping ping <address> ping6 <address> (Unix)
ping -6 <address> (Windows)
Traceroute traceroute <host> traceroute6 <host> (Unix)
tracert -6 <host> (Windows)
DNS lookup nslookup -type=A <host> nslookup -type=AAAA <host>
Show routes route print -4 (Windows)
ip -4 route (Linux)
netsh interface ipv6 show route (Windows)
ip -6 route (Linux)
Show neighbors arp -a netsh interface ipv6 show neighbors (Windows)
ip -6 neigh (Linux)
ndp -a (macOS)

DNS Record Types

Protocol DNS Record Example
IPv4 A record example.com A 192.0.2.1
IPv6 AAAA record (quad-A) example.com AAAA 2001:db8::1

Port Numbers

Good news: Port numbers work identically in IPv4 and IPv6!

Examples:

IPv4: http://192.0.2.1:8080/
IPv6: http://[2001:db8::1]:8080/

Network Configuration Quick Reference

Stateless Address Autoconfiguration ([SLAAC](slaac-explained))

Hosts can configure themselves automatically without DHCP:

  1. Generate link-local address (fe80::/10)
  2. Send Router Solicitation to ff02::2 (all routers)
  3. Receive Router Advertisement with prefix
  4. Generate global address using prefix + interface ID
  5. Test for duplicates using Neighbor Discovery

[DHCPv6](configure-dhcpv6)

IPv6 DHCP provides stateful address assignment:

Privacy Extensions (RFC 4941)

Generates temporary, random interface identifiers to prevent tracking:

Stable:    2001:db8:85a3::8a2e:370:7334  (based on MAC)
Temporary: 2001:db8:85a3::e4f2:1a33:92b5  (random, changes periodically)

Testing Your IPv6 Connectivity

Online Testing Tools

Test your IPv6 readiness at test-ipv6.run

The site performs comprehensive tests including:

Score interpretation:

Manual Testing Steps

1. Check for IPv6 address:

# Look for global unicast address (starts with 2xxx: or 3xxx:)
ipconfig /all          # Windows
ifconfig | grep inet6  # macOS/Linux

2. Verify default gateway:

# Should see fe80:: address of router
netstat -rn            # All platforms
ip -6 route | grep default  # Linux

3. Test DNS resolution:

nslookup -type=AAAA google.com
# Should return IPv6 addresses

4. Test connectivity:

# Windows
ping 2001:4860:4860::8888

# macOS/Linux
ping6 2001:4860:4860::8888

5. Compare latency:

# Test IPv4
ping 8.8.8.8

# Test IPv6
ping6 2001:4860:4860::8888

Quick Troubleshooting Checklist

When IPv6 isn't working, check in this order:

Common Mistakes to Avoid

Address Notation Errors

❌ Wrong:

Multiple :: in address:     2001::85a3::7334
No brackets in URL:         http://2001:db8::1:80/
Uppercase/lowercase mix:    (acceptable but inconsistent)

✅ Right:

Single :: only:             2001::85a3:0:7334
Brackets in URL:            http://[2001:db8::1]:80/
Consistent case:            2001:db8::1 (lowercase preferred)

Configuration Errors

❌ Don't:

✅ Do:

Essential Resources

RFCs (Standards Documents)

Public IPv6 DNS Servers

Google Public DNS:

2001:4860:4860::8888
2001:4860:4860::8844

Cloudflare DNS:

2606:4700:4700::1111
2606:4700:4700::1001

OpenDNS:

2620:119:35::35
2620:119:53::53

Testing Sites

Summary

This quick reference covers the essential IPv6 knowledge you need for daily operations:

Whether you're troubleshooting connectivity issues, configuring networks, or developing IPv6-compatible applications, this reference provides the core information you need at your fingertips. For deeper understanding of specific topics, refer to the relevant RFCs or visit test-ipv6.run to verify your IPv6 configuration is working correctly.