| |

LFCE 12 ๐Ÿง IPv6 โ€” Address Types and Structure

โฑ๏ธ Estimated read: 13 min | |

IPv6 addresses are 128-bit identifiers, four times the length of their IPv4 counterparts. That length is not merely a larger number; it is the space in which the protocol’s addressing architecture is carved. Every IPv6 address belongs to one of three typesโ€”unicast, anycast, or multicastโ€”and within those types, specific prefixes define scope and purpose. Unlike IPv4, there is no broadcast address in IPv6; its function is superseded by multicast . For the LFCE candidate configuring routing on Linux, understanding the address structure is not optional. The kernel assigns link-local addresses automatically, routers advertise prefixes via SLAAC, and the routing table distinguishes between global and link-local destinations. Misidentifying an address type leads to routes that appear correct but silently drop packets.

Key point: The three IPv6 address types are unicast (one interface), anycast (nearest of a group), and multicast (all of a group). Broadcast does not exist. The address structure is a 128-bit value conventionally divided into a 64-bit network prefix and a 64-bit interface identifier, though the boundary is defined by the prefix length, not the address itself. Link-local addresses (fe80::/10) are mandatory on every interface and are never forwarded by routers.


Why IPv6 addresses are structured this way

The interface-scope problem.

IPv6 addresses are assigned to interfaces, not to nodes . A single interface may carry multiple addresses of different types and scopes simultaneously: a link-local address for neighbor discovery, a global unicast address for internet reachability, and membership in several multicast groups. This model differs from the IPv4 habit of thinking in terms of “the host’s address.” A Linux router with three interfaces has at least three link-local addresses, one per interface, plus any global addresses configured. The structure reflects this: each address identifies a specific interface’s presence on a specific link or in a specific global scope.

The autoconfiguration problem.

IPv6 was designed for networks that could not rely on a DHCP server for every device. Stateless Address Autoconfiguration requires that a host be able to construct a complete address from two pieces: a network prefix learned from a router advertisement, and an interface identifier generated locally . The conventional split at 64 bits exists because the interface identifier was historically derived from the 48-bit MAC address expanded to 64 bits via EUI-64, and the prefix length was standardized at /64 to accommodate it. While privacy extensions now generate random interface identifiers rather than MAC-derived ones, the /64 boundary remains the operational convention for SLAAC networks .

The hierarchy problem.

IPv6’s 128-bit space allows for aggregation that IPv4 could not achieve. The global unicast space is 2000::/3, and within it, the five Regional Internet Registries receive /12 allocations: APNIC 2400::/12, ARIN 2600::/12, AfriNIC 2C00::/12, LACNIC 2800::/12, and RIPE NCC 2A00::/12 . A service provider receives a /32 from its RIR, allocates /48s to customers, and each customer uses /64s for subnets. This hierarchy allows the global routing table to carry aggregates rather than individual customer prefixes.


a. Unicast addresses โ€” global, link-local, and unique local

Unicast addresses identify a single interface. A packet sent to a unicast address is delivered to the interface identified by that address . IPv6 defines several unicast scopes, each with a distinct prefix.

Global unicast addresses are the publicly routable addresses. The prefix is 2000::/3, covering the range from 2000:: through 3fff:ffff:... . These addresses are allocated hierarchically from IANA through the RIRs to ISPs and end sites. A global unicast address is globally unique and can be routed across the internet.

# Assign a global unicast address to an interface
# The /64 prefix is the standard subnet size for SLAAC compatibility
ip -6 addr add 2001:db8:1::1/64 dev eth0

# The address is globally scoped
# Routers forward packets to and from this address

Link-local addresses are confined to a single link. The prefix is fe80::/10, and every interface is required to have at least one . A router must not forward packets with link-local source or destination addresses. These addresses are used for neighbor discovery, router advertisement processing, and communication between devices on the same segment when no global address is configured.

# Link-local addresses are generated automatically when IPv6 is enabled
# They are not configured manually in normal operation
ip -6 addr show dev eth0 | grep fe80
# Output: inet6 fe80::a00:27ff:fe4e:66a1/64 scope link

# The scope link designation confirms this address is link-local
# A ping to a link-local address must specify the interface
ping -6 -I eth0 fe80::a00:27ff:fe4e:66a1

Unique local addresses occupy fc00::/7 and serve as the IPv6 equivalent of IPv4 private addressing . They are not routable on the global internet, but they are unique within an organization or set of organizations. Unlike the deprecated site-local addresses (fec0::/10), unique local addresses are not intended to be automatically configured; they are assigned administratively for internal networks that need stable addressing without global reachability.


b. Multicast and anycast addresses

Multicast addresses identify a group of interfaces. A packet sent to a multicast address is delivered to all interfaces that have joined that group . The prefix is ff00::/8. Multicast replaces broadcast entirely: there is no address that reaches every device on a link by default. Instead, specific multicast groups serve specific purposes.

# The all-nodes multicast address ff02::1 reaches every IPv6 device on the link
ping -6 -c 2 ff02::1%eth0
# The %eth0 is required because multicast addresses have link scope

# The all-routers multicast address ff02::2 reaches every router on the link
# Routers join this group automatically when IPv6 forwarding is enabled

Every interface joins the solicited-node multicast group for each unicast address it possesses. The solicited-node address is formed from the prefix ff02::1:ff00:0/104 and the last 24 bits of the unicast address . Neighbor Discovery uses this group to reach a specific device without disturbing every device on the link.

Anycast addresses identify a group of interfaces, but a packet sent to an anycast address is delivered to only one member: the nearest according to the routing protocol’s metric . Anycast is not a separate address format; it is a use of a unicast address assigned to multiple interfaces. The Linux kernel does not implement anycast address configuration directly, though anycast routing can be achieved through other mechanisms . The root DNS servers are the most prominent example of anycast deployment.


c. The address structure and notation

An IPv6 address is written as eight groups of four hexadecimal digits, separated by colons. Each group represents 16 bits.

# Full notation: eight groups of four hex digits
2001:0db8:0000:0000:0000:0000:0000:0001

# Leading zeros within each group are optional
2001:db8:0:0:0:0:0:1

# A single run of zero groups is compressed with ::
2001:db8::1

# The loopback address is ::1
# The unspecified address is ::

The :: compression can appear only once in an address because its position would otherwise be ambiguous . The loopback address ::1/128 is assigned to the loopback interface and is never forwarded. The unspecified address ::/128 indicates the absence of an address and is used only as a source address during autoconfiguration before the host has learned its own address .

The structure within a global unicast address is conventionally divided at the /64 boundary:

# A global unicast address with /64 prefix
# 2001:db8:1::1/64
# โ”œโ”€ Global routing prefix: 2001:db8:1::/48 (assigned by ISP)
# โ”œโ”€ Subnet ID: 0 (the 16 bits between /48 and /64)
# โ””โ”€ Interface ID: ::1 (the low 64 bits)

# The /64 boundary is the standard for SLAAC
# The interface ID can be MAC-derived, random, or manually assigned

The subnet ID occupies up to 16 bits between the /48 site prefix and the /64 interface identifier. This gives each site 65,536 possible subnets, each with 2^64 possible interface identifiers . The interface ID identifies a specific interface within the subnet and must be unique within that subnet.


Complete Example Session

# ============================================
# PART 1: EXAMINE ALL ADDRESSES ON AN INTERFACE
# ============================================
# Every interface has at least one link-local address
# It may also have a global address and multicast memberships
ip -6 addr show dev eth0
# Output includes:
#   inet6 2001:db8:1::1/64 scope global
#   inet6 fe80::a00:27ff:fe4e:66a1/64 scope link
#   inet6 ff02::1:ff4e:66a1/128 scope link (solicited-node multicast)

# ============================================
# PART 2: IDENTIFY ADDRESS TYPES BY PREFIX
# ============================================
# 2001:db8:1::1/64       โ†’ global unicast (2000::/3)
# fe80::.../64           โ†’ link-local (fe80::/10)
# ff02::.../128          โ†’ multicast (ff00::/8)
# ::1/128                โ†’ loopback
# ::/128                 โ†’ unspecified

# ============================================
# PART 3: TEST LINK-LOCAL CONNECTIVITY
# ============================================
# Link-local addresses require an interface specifier
# The %eth0 tells the kernel which link to use
ping -6 -c 2 fe80::a00:27ff:fe4e:66a1%eth0

# ============================================
# PART 4: TEST GLOBAL CONNECTIVITY
# ============================================
# Global addresses do not require an interface specifier
ping -6 -c 2 2001:db8:1::2

# ============================================
# PART 5: EXAMINE MULTICAST GROUP MEMBERSHIP
# ============================================
# The kernel joins multicast groups automatically
ip -6 maddr show dev eth0
# Output includes ff02::1 (all-nodes) and ff02::1:ff4e:66a1
# (solicited-node for the link-local address)

# ============================================
# PART 6: CALCULATE THE SOLICITED-NODE ADDRESS
# ============================================
# The solicited-node address is ff02::1:ff00:0/104
# plus the last 24 bits of the unicast address
# Link-local: fe80::a00:27ff:fe4e:66a1
# Last 24 bits: 4e:66a1 โ†’ 4e66a1
# Solicited-node: ff02::1:ff4e:66a1
# This matches the kernel's multicast membership

# ============================================
# PART 7: CONFIGURE A UNIQUE LOCAL ADDRESS
# ============================================
# Unique local addresses use fc00::/7
# They are not globally routable but are unique within an organization
ip -6 addr add fd00:1::1/64 dev eth1
# fd00::/8 is the locally assigned portion of fc00::/7

# ============================================
# PART 8: VERIFY ADDRESS SCOPES
# ============================================
# The scope of an address determines where it can be used
# link scope: confined to the local link
# global scope: routable across the internet
ip -6 addr show | grep -E "scope (link|global)"

# ============================================
# PART 9: CHECK ROUTING FOR DIFFERENT SCOPES
# ============================================
# A route to a link-local address uses the interface directly
ip -6 route get fe80::1%eth0
# Output: fe80::1 dev eth0  (no gateway; on-link)

# A route to a global address uses the default gateway
ip -6 route get 2001:db8:2::1
# Output: 2001:db8:2::1 via 2001:db8:1::ffff dev eth0

# ============================================
# PART 10: DISABLE IPv6 ON A SINGLE INTERFACE
# ============================================
# The kernel parameter controls IPv6 per interface
sysctl -w net.ipv6.conf.eth1.disable_ipv6=1
# This removes all IPv6 addresses from eth1, including link-local
# The interface still functions for IPv4

The ten parts demonstrate the address types in practice: link-local addresses generated automatically, global addresses configured explicitly, multicast memberships joined by the kernel, and scopes that determine routing behavior. The solicited-node calculation in Part 6 shows how multicast addresses are derived from unicast addresses.


Quick Reference

IPv6 Address Types and Prefixes

TypePrefixScopePurpose
Global unicast2000::/3GlobalPublicly routable addressing
Link-localfe80::/10LinkNeighbor discovery, on-link communication
Unique localfc00::/7Site/OrganizationPrivate addressing (analogous to RFC 1918)
Multicastff00::/8VariousGroup communication
Loopback::1/128Local hostLocal testing
Unspecified::/128NoneSource address before autoconfiguration
IPv4-mapped::ffff:0:0/96โ€”Represent IPv4 addresses in IPv6 format

Special Multicast Addresses

AddressGroupPurpose
ff02::1All-nodesEvery IPv6 device on the link
ff02::2All-routersEvery IPv6 router on the link
ff02::1:ff00:0/104Solicited-nodeNeighbor Discovery reachability

Address Structure at /64

FieldBitsPurpose
Global routing prefix48Assigned by ISP/RIR
Subnet ID16Local subnet allocation
Interface ID64Unique identifier within subnet

Best Practices

โœ… Do This:

# Verify link-local addresses exist before troubleshooting
ip -6 addr show | grep fe80                               # โœ…

# Use /64 for all LAN subnets to preserve SLAAC compatibility
ip -6 addr add 2001:db8:1::1/64 dev eth0                  # โœ…

# Specify the interface when pinging link-local addresses
ping -6 -I eth0 fe80::1                                   # โœ…

# Check multicast membership to verify kernel behavior
ip -6 maddr show dev eth0                                 # โœ…

# Use unique local addresses for internal-only networks
ip -6 addr add fd00:1::1/64 dev eth1                      # โœ…

# Understand that anycast is a routing concept, not a format
# The Linux kernel does not configure anycast addresses directly  # โœ…

โŒ Don’t Do This:

# Assume an interface has no IPv6 because it was not configured
# Link-local addresses are automatic                          # โŒ

# Use a prefix shorter than /64 on a SLAAC network
# SLAAC requires 64-bit interface identifiers                 # โŒ

# Ping a link-local address without an interface specifier
ping6 fe80::1    # Fails: kernel does not know which link    # โŒ

# Expect broadcast to work
# IPv6 has no broadcast; use multicast instead                # โŒ

# Configure anycast addresses on Linux
# The kernel does not support direct anycast configuration   # โŒ

# Ignore the scope of an address
# A link-local address in a route table entry is a special case # โŒ

Common Pitfalls

PitfallWhy It HappensFix
Cannot ping link-local addressNo interface specifier (%eth0)Add -I eth0 or %eth0
SLAAC fails to configure addressPrefix not /64Use /64 for LAN subnets
Route to global address failsNo default route or gateway unreachableVerify ip -6 route
Multicast ping reaches all devicesff02::1 is all-nodesUse unicast for specific hosts
Unique local address not routablefc00::/7 is not globally advertisedUse global unicast for internet
Anycast not workingLinux does not configure anycast addresses directlyUse routing protocols for anycast

Real-World Examples

1. Global unicast address

ip -6 addr add 2001:db8:1::1/64 dev eth0

2. Link-local address (automatic)

ip -6 addr show dev eth0 | grep fe80
# Output: inet6 fe80::a00:27ff:fe4e:66a1/64 scope link

3. Unique local address

ip -6 addr add fd00:1::1/64 dev eth1

4. Loopback address

ip -6 addr show dev lo
# Output: inet6 ::1/128 scope host

5. All-nodes multicast ping

ping -6 -c 2 ff02::1%eth0

6. Solicited-node multicast membership

ip -6 maddr show dev eth0 | grep ff02::1:ff

7. Check address scope

ip -6 addr show | grep "scope link"

8. Route to link-local destination

ip -6 route get fe80::1%eth0

9. IPv4-mapped address

# ::ffff:192.168.1.1 represents an IPv4 address
# Used by dual-stack sockets

10. Unspecified address as source

# ::/128 is used before autoconfiguration completes
# Not assignable to an interface

Visual

IPv6 Address Type Prefixes

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  PREFIX DETERMINES TYPE AND SCOPE                            โ”‚
โ”‚                                                              โ”‚
โ”‚  2000::/3        Global unicast                              โ”‚
โ”‚  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚
โ”‚  โ”‚ 0010 ...                                                โ”‚ โ”‚
โ”‚  โ”‚ Publicly routable; allocated by RIRs to ISPs            โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚                                                              โ”‚
โ”‚  fe80::/10       Link-local                                  โ”‚
โ”‚  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚
โ”‚  โ”‚ 1111 1110 10 ...                                        โ”‚ โ”‚
โ”‚  โ”‚ Automatically configured; never forwarded by routers    โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚                                                              โ”‚
โ”‚  fc00::/7        Unique local                                โ”‚
โ”‚  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚
โ”‚  โ”‚ 1111 110 ...                                            โ”‚ โ”‚
โ”‚  โ”‚ Private addressing; not globally routable               โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚                                                              โ”‚
โ”‚  ff00::/8        Multicast                                   โ”‚
โ”‚  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚
โ”‚  โ”‚ 1111 1111 ...                                           โ”‚ โ”‚
โ”‚  โ”‚ Group communication; replaces broadcast                 โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Global Unicast Address Structure

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  A /64 GLOBAL UNICAST ADDRESS                                โ”‚
โ”‚                                                              โ”‚
โ”‚  2001:0db8:0001:0000:0000:0000:0000:0001/64                  โ”‚
โ”‚  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚
โ”‚  โ”‚ Global       โ”‚ Subnet   โ”‚ Interface ID                  โ”‚ โ”‚
โ”‚  โ”‚ Routing      โ”‚ ID       โ”‚                               โ”‚ โ”‚
โ”‚  โ”‚ Prefix       โ”‚ (16 bits)โ”‚ (64 bits)                     โ”‚ โ”‚
โ”‚  โ”‚ (48 bits)    โ”‚          โ”‚                               โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚                                                              โ”‚
โ”‚  Global routing prefix: assigned by ISP (typically /48)      โ”‚
โ”‚  Subnet ID: local allocation within the site                 โ”‚
โ”‚  Interface ID: unique within the subnet                      โ”‚
โ”‚                                                              โ”‚
โ”‚  The /64 boundary is the SLAAC convention.                   โ”‚
โ”‚  A host combines the router-advertised /64 prefix with its   โ”‚
โ”‚  locally generated 64-bit interface ID.                      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Link-Local and Multicast Relationship

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  EVERY INTERFACE HAS LINK-LOCAL AND MULTICAST MEMBERSHIPS    โ”‚
โ”‚                                                              โ”‚
โ”‚  Interface eth0:                                             โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚ Unicast addresses:                                     โ”‚  โ”‚
โ”‚  โ”‚   fe80::a00:27ff:fe4e:66a1/64  (link-local)            โ”‚  โ”‚
โ”‚  โ”‚   2001:db8:1::1/64            (global)                 โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                                                              โ”‚
โ”‚  Multicast memberships (automatic):                          โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚ ff02::1                    (all-nodes)                 โ”‚  โ”‚
โ”‚  โ”‚ ff02::1:ff4e:66a1          (solicited-node for fe80)   โ”‚  โ”‚
โ”‚  โ”‚ ff02::1:ff00:1             (solicited-node for 2001)   โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                                                              โ”‚
โ”‚  Solicited-node = ff02::1:ff00:0/104 + last 24 bits         โ”‚
โ”‚  of the unicast address.                                    โ”‚
โ”‚                                                              โ”‚
โ”‚  Neighbor Discovery uses this group to reach one device     โ”‚
โ”‚  without disturbing every device on the link.               โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Summary

ItemValue
Address size128 bits
Address typesUnicast, anycast, multicast (no broadcast)
Global unicast prefix2000::/3
Link-local prefixfe80::/10; mandatory on every interface
Unique local prefixfc00::/7; private addressing
Multicast prefixff00::/8
Loopback::1/128
Unspecified::/128
All-nodes multicastff02::1
All-routers multicastff02::2
Solicited-node multicastff02::1:ff00:0/104
Address structure convention/64 network prefix + /64 interface ID
Anycast on LinuxNot directly configurable; routing concept

Key takeaways:

  • Three types, no broadcast. Unicast identifies one interface, anycast identifies the nearest of a group, and multicast identifies all members of a group. Broadcast does not exist in IPv6; multicast serves its function .
  • Link-local is automatic and mandatory. Every interface requires at least one fe80::/10 address. It is generated by the kernel and used for neighbor discovery and router communication. Routers never forward link-local traffic .
  • The /64 boundary is the SLAAC convention. A global unicast address is conventionally divided into a 64-bit network prefix and a 64-bit interface identifier. SLAAC requires this split to function .
  • Multicast memberships are joined automatically. The kernel joins the all-nodes group (ff02::1) and the solicited-node group for each unicast address. Neighbor Discovery uses these groups to reach specific devices without broadcasting .
  • Unique local addresses are not site-local. The deprecated fec0::/10 prefix was replaced by fc00::/7. Unique local addresses are administratively assigned and not globally routable .
  • Anycast is a routing concept, not an address format. An anycast address is a unicast address assigned to multiple interfaces. The Linux kernel does not configure anycast addresses directly; anycast routing is achieved through other mechanisms .

Remember: IPv6 addresses are not just longer IPv4 addresses. The type and scope are encoded in the prefix, and the structure reflects the protocol’s design for autoconfiguration and hierarchical routing. Link-local addresses are the foundation of neighbor discovery and are present on every interface whether you configure them or not. Global unicast addresses provide reachability and are allocated in a hierarchy that keeps the routing table manageable. Multicast replaces broadcast and is joined automatically by the kernel. When you read an IPv6 address, the first bits tell you what kind of address it is and where it can be used.


Was this helpful?


Stop using slow, ad-bloated tool sites! ๐Ÿคฎ

๐Ÿ”Ž Search “KandZ Tools” on Google to use many professional utilities for free.

KandZ.me is the ultimate minimalist hub for:
โœ… Finance (Mortgage, Interest, Inflation)
โœ… Tech (Base64, JSON, Dev Suite, IP)
โœ… Health (BMI, BMR, TDEE)
โœ… Productivity (Timer, Workspace, QR)

โšก๏ธ Fast & Private
๐Ÿ”’ No data leaves your device
๐Ÿ’Ž 100% Free

๐Ÿ”— Use it now: https://tools.kandz.me
๐Ÿ”– Bookmark itโ€”youโ€™ll need it later!