IPv6 Address Types Explained: Why One Device Has So Many

Last Updated on: July 15, 2026

TL;DR IPv6 gives every device several addresses at once, not one. A link-local address is always present and never leaves the local network. Global addresses reach the internet, and privacy extensions rotate a temporary one roughly daily to limit tracking.

  • IPv6 has five address types: link-local, global unicast, unique local, multicast, and loopback
  • Link-local (fe80::/10) exists on every interface automatically, whether or not you have internet
  • Most devices carry a stable address and a rotating privacy address at the same time
  • Solicited-node multicast replaces ARP entirely, letting only the target device respond

Open your network settings on any IPv6-enabled device. You will probably see three, four, or five different addresses on one adapter. That is not a bug or a misconfiguration. It is how IPv6 was designed to work from the start.

This guide explains what each address type actually does. It covers why your device needs several of them at once. It ends with how privacy extensions quietly rotate one every day.

The Five IPv6 Address Types (and Why You Need More Than One)

IPv6 defines five address types: link-local, global unicast, unique local, multicast, and loopback. Each interface typically holds several of these at once, not one. Link-local exists automatically on every interface. The others get added as the device joins a network and configures itself.

IPv4 gives a device one address per interface, in almost every normal case. IPv6 throws that assumption out entirely.

The five types are Link-Local, Global Unicast, Unique Local, Multicast, and Loopback. Our IPv4 versus IPv6 comparison introduces all five in a single table. This guide goes deeper into each one, plus what that table leaves out. That includes why several coexist, how the address gets built, and what changed for finding a neighbor on the network.

Loopback, ::1, works exactly like 127.0.0.1 in IPv4 and needs no further explanation. The other four each get their own section below.

Link-Local Addresses: The One Every Interface Always Has

Every IPv6 interface generates a link-local address the moment it powers on, no router required. It always starts with fe80::, defined by RFC 4291. It works only on the local segment and never gets forwarded past your own router.

A link-local address is the one thing every IPv6-capable interface has, with or without a network to join.

The moment an interface comes up, it generates a fe80:: address for itself. That address uses a locally derived or random interface ID. No router, no DHCP server, and no internet connection are required for this to happen. It works even on an isolated cable connecting two laptops directly.

Link-local addresses are non-routable by definition, restricted to the local link. Every neighbor discovery message, router advertisement, and duplicate address check runs over link-local addresses first. That happens before a device has any other address to use.

This mirrors IPv4’s 169.254.x.x APIPA range in spirit, but the two behave very differently. APIPA only appears when DHCP fails, a sign something is wrong. IPv6 link-local addresses are present by design, all the time, whether or not anything else is wrong.

Global Unicast Addresses: Your Public IPv6 Address

A global unicast address is the IPv6 equivalent of a public IPv4 address, routable across the entire internet. It starts within 2000::/3 and gets assigned by your ISP. Most devices carry more than one global address at the same time.

A global unicast address is what makes a device reachable from anywhere on the internet. It is the direct equivalent of a public IPv4 address.

Global unicast addresses fall within 2000::/3, a huge reserved block covering the majority of usable IPv6 space. Your ISP assigns a prefix, typically a /56 or /48 for a home connection. Your router or each device fills in the rest.

Unlike IPv4, a home network usually gets exactly one public address shared through NAT. IPv6 hands out enough address space that every device can have its own global address directly. NAT becomes optional, not required, which is one of IPv6’s core design goals.

A single interface often holds more than one global address simultaneously. A stable one, and one or more temporary ones from privacy extensions, covered in detail further down.

Unique Local Addresses: IPv6’s Answer to Private IPs

Unique local addresses, or ULAs, are IPv6’s version of RFC 1918 private ranges. They start with fd00::/8 in practice and stay inside your own network. Unlike IPv4 private addresses, ULAs coexist with global addresses rather than replacing them.

Unique local addresses solve a problem IPv4’s RFC 1918 ranges already solved. How do you address a network that should never touch the public internet?

ULAs use the fc00::/7 block, defined in RFC 4193. Nearly every real deployment uses the fd00::/8 half specifically. The remaining 40 bits after fd are meant to be randomly generated per site. That keeps two independently created networks from colliding if they are ever connected.

The key difference from IPv4 private addressing is coexistence. A device on a IPv4 private network typically has only that private address until NAT translates it. A device on an IPv6 network can hold a ULA and a global address side by side. It uses the ULA for local-only services and the global address for internet traffic.

Home labs sometimes lean on ULAs for internal services that should never be reachable externally. That is similar in spirit to a VLAN-isolated network segment, just at the addressing layer instead of the switching layer.

Multicast: How IPv6 Replaced Broadcast

Multicast replaces IPv4 broadcast entirely; IPv6 has no broadcast address at all. A multicast address, starting with ff00::/8, delivers one packet to every member of a defined group. Groups can be scoped to a link, a site, or the whole internet.

IPv4 broadcast sends a packet to every device on a segment, whether they care or not. IPv6 deletes that concept entirely and replaces it with multicast, everywhere.

Multicast addresses start with ff00::/8. The next hex digit indicates scope: link-local, site-local, or global. A device only receives multicast traffic for groups it has explicitly joined. Broadcast, by contrast, forces every device to process it.

Well-Known Multicast Groups

A few multicast addresses matter more than the rest. ff02::1 reaches every node on the local link. ff02::2 reaches every router. Both replace tasks that IPv4 handled with broadcast. The router case also overlaps with what ARP requests aimed at everyone used to do.

Multicast is not just for networking infrastructure. Streaming and conferencing applications use it too, when the network supports it. One stream reaches many recipients without duplicating traffic for each one.

Why Your Device Has So Many Addresses at Once

A single interface commonly holds one link-local, one or more global addresses, and sometimes a ULA, all valid at once. That is normal, not a misconfiguration. IPv4’s one-address-per-interface habit does not carry over to IPv6 at all.

Put the previous sections together and the multiple-address behavior stops looking strange.

A typical internet-connected device holds a link-local address, always. It usually holds at least one global unicast address, sometimes two or three counting temporary ones. It may hold a ULA if the network uses one. None of these compete with each other; each does a different job.

Run a quick check on any modern laptop or phone, and this shows up immediately. Windows, macOS, and Linux all display every address on an interface by default, not just one. That surprises people expecting the single-address model IPv4 trained them on.

The practical result: do not assume a missing address means something is broken. Check which type is missing. Then work through whether that specific type should be present given your network’s setup.

EUI-64 vs Privacy Extensions: How the Interface ID Gets Built

The last 64 bits of a global or link-local address, the interface ID, can come from two very different processes. EUI-64 derives it from your device’s MAC address, staying stable and trackable. Privacy extensions generate a random one instead, rotating roughly once a day.

Two very different processes can build the last 64 bits of an address, the interface ID. Knowing which one applies explains a lot of what you see in practice.

EUI-64: Derived from Hardware

EUI-64 takes your network interface’s 48-bit MAC address and splits it in half. It inserts a fixed FFFE sequence in the middle. The result is a 64-bit identifier permanently tied to that piece of hardware. Move the device to a different network, and the same interface ID follows it every time.

That stability is also the weakness. A server logging visitor addresses can correlate the same interface ID across completely different networks and sessions. That effectively fingerprints the device without needing cookies at all.

Privacy Extensions: Randomized and Rotating

RFC 8981 defines the current fix, superseding the older RFC 4941. Instead of deriving the interface ID from hardware, the operating system generates a random one. It rotates that ID on a schedule, typically once a day.

Windows, macOS, iOS, and Android all enable privacy extensions by default today. Linux varies by distribution. The setting is worth checking explicitly on any home lab server where a stable address actually helps.

Solicited-Node Multicast: How IPv6 Replaced ARP

IPv6 has no ARP. Instead, each address gets a matching solicited-node multicast group, computed from its last 24 bits. A device asking who owns an address sends to that specific group, so only the actual owner needs to answer.

IPv4 finds a neighbor’s hardware address with ARP. It broadcasts a request to everyone and lets only the target respond. IPv6 replaces the entire mechanism with something more targeted.

Every IPv6 unicast address automatically has a matching solicited-node multicast address. It is built from the last 24 bits of that address, appended to ff02::1:ff00:0/104. A device joins this multicast group the moment it configures the address, before it can even use it.

When another device needs to find that address’s hardware address, it sends a Neighbor Solicitation to the computed solicited-node group. It does not broadcast to everyone. Only the device that owns that specific address is listening on that specific group. Only it responds.

The result functions like our ARP guide describes for IPv4, resolving an address to a hardware address. The blast radius is just narrower. On a switch that supports multicast listener discovery snooping, only the actual target device even sees the query.

How to Check Your Own IPv6 Addresses

Checking your own addresses takes one command per platform. Use ipconfig on Windows, ip -6 addr on Linux, or ifconfig on macOS. Expect to see several entries. A fe80:: address, at least one global address, and possibly a temporary one are all normal.

Confirming what addresses your own device holds takes seconds. The output is worth reading carefully instead of skimming.

  1. Windows: open an administrator Command Prompt and run ipconfig /all.
  2. macOS or Linux: run ip -6 addr on Linux, or ifconfig on macOS.
  3. Look for a fe80:: entry. That is your link-local address, and it should always be present.
  4. Look for one or more addresses starting with 2xxx or 3xxx. Those are your global unicast addresses.
  5. If you see a fd00:: entry, that is a unique local address. It likely comes from your router or a home lab setup.
  6. Note whether any global address is labeled temporary or deprecated. That is a privacy extension address doing exactly what it is designed to do.

Seeing several global addresses at once is expected behavior, not a fault to chase down. The same goes for one disappearing and a new one appearing after a day. Confirm your actual internet-facing address with our My IP Address tool. Compare it with what your interface reports locally.

Frequently Asked Questions

Quick answers to what people ask most about IPv6 addressing. That covers why one device shows several addresses and what each type actually does. It also covers how privacy extensions change what you see.

Why does my device show multiple IPv6 addresses?

This is normal, not an error. A link-local address is always present. Most devices also carry one or more global addresses, sometimes including a rotating privacy address. Some also carry a unique local address. Each serves a different purpose.

What is the difference between link-local and unique local addresses?

Link-local addresses are automatic and mandatory, present on every interface whether or not a network exists. Unique local addresses are optional and assigned deliberately, similar to RFC 1918 private ranges in IPv4. A network has to actually configure them.

What is a temporary or privacy IPv6 address?

A temporary address is a global unicast address with a randomly generated interface ID. That is instead of one derived from your MAC address. It rotates roughly once a day, defined in RFC 8981. That makes it harder for outside parties to track your device across networks and time.

Does IPv6 have a broadcast address?

No. IPv6 removed broadcast entirely and replaced it with multicast. Instead, multicast targets only devices that explicitly joined a specific group. Nothing else is forced to process the packet.

How does IPv6 resolve a neighbor’s hardware address without ARP?

It uses Neighbor Discovery Protocol and a computed solicited-node multicast address. Every IPv6 address automatically joins a matching multicast group, built from its last 24 bits. Only the device that owns the target address is listening on that specific group. Only it replies.

Should I disable IPv6 privacy extensions on a home server?

For a server you want to reach reliably, yes, disable them and keep a stable address. Privacy extensions exist to protect client devices that make outbound connections, like laptops and phones. A server that needs a predictable, reachable address works better with a stable interface ID instead.

Related Tools & Resources

These NetworkCheckr guides pair with the IPv6 concepts in this article. Check how ARP handles this same job on IPv4. See the DHCP-versus-SLAAC split that decides where your global address comes from.

References

These are the primary sources behind this article’s technical claims. They include the core IETF IPv6 addressing standards and the current privacy extensions specification. They also include the RFC that defines stateless autoconfiguration.

  • IETF — RFC 4291: IP Version 6 Addressing Architecture — rfc-editor.org
  • IETF — RFC 4193: Unique Local IPv6 Unicast Addresses — rfc-editor.org
  • IETF — RFC 4862: IPv6 Stateless Address Autoconfiguration — rfc-editor.org
  • IETF — RFC 8981: Temporary Address Extensions for SLAAC in IPv6 — rfc-editor.org
Secret Link