Home » Questions » Computers [ Ask a new question ]

Why is there a percent sign '%' in the IPv6 address?

Why is there a percent sign '%' in the IPv6 address?

I am using the .NET Framework classes to get the IP addresses for my machine.

Asked by: Guest | Views: 105
Total answers/comments: 1
Guest [Entry]

"The number after the '%' is the scope ID.

IPv6 defines at least three reachability scopes for addresses:

Globally addressable. This is an IPv6 address given to you by your ISP. It is available to use on the public Internet.
Link-local. This is similar to the 169.254.X.X range. It is an address that a computer assigns itself in order to facilitate local communications. These addresses don't get routed around on the public Internet because they're not globally unique.
Node-local. This is an address that identifies the local interface, similar to 127.0.0.1. Basically, this is the address ::1.

Microsoft has published this article describing IPv6 addressing, which is the least-confusing article I found. The article indicates that the presence of a scope ID in your address means it is a link-local address. You can also tell it is link-local because the address begins with fe80.

Clear, simply-understood information on this topic seems to be rare, so I'm putting the rest of this together based on my best understanding of RFC 4007 and the other information out there.

A computer can have multiple link-local addresses, each with a different scope. The scope ID indicates which scope the address is for. For example, imagine the scenario of a computer with two NICs, each with a link-local address on different networks. If you try to send something to another address beginning with fe80, how will the computer know which NIC to send out on? The scope ID appears to be the solution for this."