What’s that % sign after ipconfig IPv6 address?

I see a % sign after my IPv6 address?!

Zone IDs After Link-local Addresses? What the hell is that?

If that is what you see with “ipconfig” on Windows machine with IPv6 enabled, this article is for you.

IPv6 address with % sign is called Link-Local IPv6 address. IPv6 addressing is done n this way. An address exists on every computer NIC that has network part same for all computers in the world. That part is called network identifier and is written fe80:0000:0000:0000 or to be short fe80::

If you have one network card (NIC) inside your computer, everything is working fine and your computer can speak IPv6 to all others in the local network.

On the other side!

If you are one of those guys (strange networking guys who run strange labs on their big PCs), having more NICs inserted in their machine? In that case, your PC will have two or more network interfaces and every one of them will have the same network identifier fe80:0000:0000:0000. If you go back to networking fundamentals, you will remember that a host (or router) with more interfaces cannot have two of them with IP addressing from the same subnet.

Why?

If you want to ping the address fe80::5c9f:bc10:bb38:63ec from your computer and your computer has two NICs with addresses fe80::1111:1111:a000:0001 and fe80::5555:5555:5555:1111. Out of what interface will the ping exit the computer? Hm, on both? Only on random one? This is not going to work.

To resolve this issue there is Zone ID added to every NIC. This is the mysterious number after the % sign in the IPv6 Link-Local address. The number is basically an Interface ID.

In the network example here, Interfaces have Zone IDs 18, 19, 20, and 21, respectively.

IPv6 Zone ID

This number distinguishes the network segments by using a numeric zone ID following a percent sign after the IP address:

fe80:3438:7667:5c77:ce27%18

fe80::8939:7684:d84b:a5a4%19

fe80::711b:lc9:f462:7ed4%20

fe80::2112:1234:88a4:b421%21

Zone ID il locally significant and enables us to define out which interface we want to send some traffic.

If you want to ping a neighbor computer, you will need to specify the neighbor’s IPv6 Link-Local address plus the Zone ID of your computer’s network adapter that is going towards that computer.

 

UPDATE on 06 March 2019:
Few typos were corrected.
UPDATE on 30 March 2016:
Bob sent me a comment pointing out that this article has a huge number of typos. It was actually more than that. After getting through this few years old article I saw that is horribly written with terrible grammatical mistakes.

It is now completely rewritten and hopefully without any big mistake.

Thanks, Bob

8 Comments

  1. bob March 30, 2016
    • Valter Popeskic March 30, 2016
  2. Noi January 11, 2018
  3. user135711 February 5, 2018
    • Valter Popeskic February 5, 2018
  4. asdf March 4, 2019
  5. Loganathan October 9, 2020

Leave a Reply