IPv6 Address Types: Unicast, Multicast, and Anycast
Published • 13 min read
TL;DR: IPv6 has three main types of addresses: Unicast (one-to-one), Multicast (one-to-many), and Anycast (one-to-nearest). Each type serves specific purposes in modern networks, from basic device communication to efficient content delivery and service discovery.
The three types of IPv6 addresses
Unlike IPv4, which primarily uses unicast and broadcast, IPv6 organizes addresses into three distinct categories, each optimized for different communication patterns:
- Unicast: One-to-one (like a phone call)
- Multicast: One-to-many (like a radio broadcast)
- Anycast: One-to-nearest (like GPS finding the closest gas station)
Each type has specific purposes and dedicated address ranges. Understanding when and how to use each helps you design efficient and reliable networks.
Unicast: one-to-one communication
Unicast addresses are the most common—they represent individual devices. When you send data to a unicast address, only one device receives it.
Types of IPv6 unicast addresses:
1. Global Unicast (2000::/3)
Equivalent to public IP addresses in IPv4. Globally unique on the internet, globally routable.
2001:db8:85a3::8a2e:370:7334
2606:4700::6810:85e5 (Cloudflare)
2001:4860:4860::8888 (Google DNS)
2. Link-Local (fe80::/10)
Only valid on the local network. Every IPv6 interface automatically gets a link-local address.
fe80::1%eth0
fe80::a00:27ff:fe4e:66a1
fe80::200:5eff:fe00:5301
3. Unique Local (fc00::/7)
Similar to IPv4 private addresses. Not routable on the internet, but globally unique.
fd12:3456:789a::1
fc00:dead:beef::1
4. Loopback (::1)
Equivalent to 127.0.0.1 in IPv4. The device sends packets to itself.
How are unicast addresses assigned?
IPv6 supports multiple assignment methods:
- DHCPv6: Dynamic assignment by server
- SLAAC: Stateless autoconfiguration using Router Advertisement
- Manual: Static configuration
- EUI-64: Generate interface ID from MAC address
Multicast: one-to-many communication
Multicast addresses allow one device to send data to multiple recipients simultaneously. It's efficient because routers replicate packets only where necessary.
Multicast address range: ff00::/8
All IPv6 multicast addresses start with "ff". The structure is:
Example: ff02::1
- ff = multicast
- 0 = flags (reserved)
- 2 = link-local scope
- ::1 = all nodes group
Multicast scopes:
Scope | Value | Description | Example |
---|---|---|---|
Interface-local | 1 | Same interface only | ff01::1 |
Link-local | 2 | Same network segment | ff02::1 |
Site-local | 5 | Within site/organization | ff05::1 |
Global | e | Internet | ff0e::1 |
Important multicast addresses:
- ff02::1 - All Nodes (all IPv6 devices on the link)
- ff02::2 - All Routers (all routers on the link)
- ff02::5 - All OSPF Routers (OSPF routing protocol)
- ff02::9 - All RIP Routers (RIP routing protocol)
- ff02::101 - All NTP Servers (time servers)
Multicast use cases:
1. Neighbor Discovery Protocol (NDP)
IPv6 uses multicast to find neighboring devices, replacing IPv4's ARP.
# Sends to: ff02::1:ff00:100 (solicited-node multicast)
# Only the device with that address responds
2. Video/audio streaming
A server can broadcast to multiple clients efficiently without unnecessarily duplicating traffic.
3. Routing protocols
Routers use multicast to exchange routing information without affecting other devices.
4. Service discovery
Devices can announce available services to all interested parties on the network segment.
Anycast: one-to-nearest communication
Anycast is the newest concept. Multiple devices share the same IPv6 address, but traffic is automatically routed to the "nearest" one (according to routing metrics).
How does anycast work?
Typical setup:
- Multiple servers are configured with the same anycast address
- Each server announces this address to routers
- Routers learn multiple routes to the "same" address
- When a client connects, routing automatically chooses the shortest path
- The client connects to the nearest server without knowing it
Anycast advantages:
- Improved performance: Clients automatically connect to the nearest server
- Automatic redundancy: If a server fails, traffic automatically reroutes
- Load balancing: Traffic distributes geographically
- Simplicity: Clients only need to know one address
Anycast use cases:
1. DNS (Domain Name System)
Root DNS servers use anycast. When you query a domain name, you automatically connect to the nearest DNS server.
# a.root-servers.net = 2001:503:ba3e::2:30
# But there are copies in dozens of locations worldwide
2. CDNs (Content Delivery Networks)
Services like Cloudflare use anycast to direct users to the nearest content server.
3. Critical services
Services like NTP (time) and syslog can use anycast for high availability.
4. Geographic load balancing
Web applications can use anycast to distribute load between data centers.
Anycast limitations:
- Short TCP/UDP only: Long connections may break if routing changes
- Complex configuration: Requires coordination between multiple locations
- Difficult debugging: Hard to know which server you're connecting to
- Inconsistent states: Anycast servers must be stateless or synchronize state
Identifying address types by sight
You can identify IPv6 address types by looking at their first digits:
Prefix | Type | Example | Use |
---|---|---|---|
2001::/16 | Global Unicast | 2001:db8::1 | Public internet |
fe80::/10 | Link-Local | fe80::1 | Local communication |
fd00::/8 | Unique Local | fd12::1 | Private networks |
ff00::/8 | Multicast | ff02::1 | One-to-many |
::1 | Loopback | ::1 | Local loopback |
Tools for working with address types
Useful command line tools:
ip -6 addr show
# Ping multicast all-nodes
ping6 ff02::1%eth0
# Check IPv6 neighbors (equivalent to ARP table)
ip -6 neigh show
# Trace route to an anycast address
traceroute6 2001:4860:4860::8888
On Windows:
ipconfig /all
# Ping multicast
ping -6 ff02::1%12
# View neighbor table
netsh interface ipv6 show neighbors
Practical configuration by address type
Configuring global unicast on Linux:
ip -6 addr add 2001:db8::100/64 dev eth0
# Add default route
ip -6 route add default via 2001:db8::1 dev eth0
# Enable autoconfiguration
sysctl net.ipv6.conf.eth0.autoconf=1
Configuring anycast server:
ip -6 addr add 2001:db8::dns/128 dev lo
# Announce the route (using BGP or routing protocol)
# Specific configuration depends on router/software
Listening to multicast in an application:
socat UDP6-RECV:5353,ipv6-join-group=[ff02::fb]:eth0 -
# Send to multicast group
echo "hello" | socat - UDP6-SENDTO:[ff02::1]:1234
Real-world use cases
Scenario 1: Corporate office
Requirements:
- 200 workstations
- 10 servers
- Printers and IoT devices
- Secure access from branch offices
Solution using address types:
- Global unicast: 2001:db8:1000::/48 for the entire network
- Link-local: Automatic autoconfiguration (fe80::)
- Unique local: fd12:3456:789a::/48 for internal communication
- Multicast: ff05::100 for software updates
Scenario 2: Global content provider
Requirements:
- Servers in 20 countries
- Low latency for users
- High availability
- Automatic failover
Anycast solution:
- Anycast: 2001:db8::web for main web service
- Anycast: 2001:db8::api for backend API
- Global unicast: Unique addresses per data center for management
- Multicast: For content synchronization between servers
Scenario 3: Smart IoT network
Requirements:
- 1000+ sensors
- Efficient firmware updates
- Automatic device discovery
- Local communication without internet
Multicast-focused solution:
- Unique local: fd00:iot::/32 for all devices
- Multicast: ff05::firmware for updates
- Multicast: ff05::discovery for device discovery
- Link-local: For direct neighbor communication
Troubleshooting by address type
Common unicast problems:
Symptom: "Can't connect to 2001:db8::100"
Check:
- Is the address assigned? (
ip -6 addr show
) - Is there a valid route? (
ip -6 route show
) - Does the device respond? (
ping6 2001:db8::100
) - Are there firewall rules? (
ip6tables -L
)
Common multicast problems:
Symptom: "Multicast doesn't work between VLANs"
Check:
- Does the switch support multicast snooping?
- Is MLD (Multicast Listener Discovery) enabled?
- Is there a multicast router between VLANs?
- Are multicast scopes correct?
Common anycast problems:
Symptom: "Anycast connections break randomly"
Check:
- Do routing paths change during connections?
- Are all anycast servers synchronized?
- Is the service stateless or handle handoff correctly?
- Are there routing protocol oscillations?
Best practices by address type
For unicast:
- Use global unicast for internet communication
- Use unique local for internal communication that shouldn't leak
- Always configure link-local addresses as backup
- Plan logical addressing hierarchies
For multicast:
- Choose the smallest scope that works
- Use well-known addresses when possible
- Configure MLD snooping on switches
- Monitor multicast traffic to prevent storms
For anycast:
- Only use for stateless services or those that handle handoff
- Keep identical configurations between instances
- Monitor routing metrics to detect oscillations
- Document all anycast locations
Monitoring and debugging tools
For traffic analysis:
tcpdump -i eth0 ip6
# Capture multicast only
tcpdump -i eth0 ip6 and dst net ff00::/8
# Analyze with Wireshark
wireshark -f "ipv6"
For network statistics:
cat /proc/net/snmp6
# View multicast information
cat /proc/net/igmp6
# Detailed interface statistics
ip -6 -s link show eth0
Key points to remember
- Unicast is one-to-one: The most common communication, like basic IPv4
- Multicast replaces broadcast: More efficient than sending to everyone
- Anycast is unique to IPv6: Automatically finds the nearest server
- Prefixes matter: 2xxx = global, fe80 = link-local, ffxx = multicast
- Link-local always exists: Every IPv6 interface has an fe80 address
- Multicast uses scopes: Link, site, or global based on needs
- Anycast requires care: Only for stateless or well-designed services
Your next step
To experiment with IPv6 address types:
- Explore your current setup:
ip -6 addr show
to see what types you have - Try basic multicast:
ping6 ff02::1%interface
to see all neighbors - Configure unique local: Test internal communication without internet
- Experiment with anycast: Set up two servers with the same address
- Use debugging tools: tcpdump or Wireshark to see the traffic
Once you understand the basic address types, you can explore advanced concepts like Mobile IPv6, tunneling, and multicast optimizations for specific applications.
Practice exercise
Identify the types: What type of IPv6 address is each of these?
2001:db8:85a3::8a2e:370:7334
fe80::200:5eff:fe00:5301
ff02::1
fd12:3456:789a::1
::1
Show answers
- Global Unicast - Starts with 2001, routable on internet
- Link-Local Unicast - Starts with fe80, only valid on local segment
- Multicast - Starts with ff, link-local scope (ff02)
- Unique Local Unicast - Starts with fd, like private IP but unique
- Loopback - The local loopback address, like 127.0.0.1 in IPv4
Understanding IPv6 address types is fundamental to designing efficient and secure networks. Each type has its place in modern networks, from basic communication to advanced performance optimizations.