In the IPv6 protocol, the zone ID for link-local addresses is typically the interface index from the display of the netsh interface ipv6 show interface command. The interface index is defined locally on each IPv6 host. Because of this, the interface index used by Host A to reach Host B might not be the same as the interface index used by Host B to reach Host A.
When using site-local addresses, it is possible to be connected to multiple sites. In this case, each site is assigned a site identifier. To define the area of the network for which the destination is intended, the zone ID is used to indicate the site identifier. In the IPv6 protocol, the zone ID is the Zone ID for Site from the display of the netsh interface ipv6 show interface level=verbose command. If you are connected only to a single site, the default site identifier is 1 and the zone ID does not have to be specified. The site identifier is defined locally on each IPv6 host. Because of this, the site identifier used by Host A to reach Host B might not be the same as the site identifier used by Host B to reach Host A.
For example, host A has two interfaces which automatically receive link-local addresses when activated (per RFC 2462): fe80::1/64 and fe80::2/64, only one of which is connected to the same physical network as host B which has address fe80::3/64, if host A attempts to contact fe80::3 how does it know which interface (fe80::1 or fe80::2) to use?
The solution defined by RFC 4007 is the addition of a unique zone index for the local interface, represented textually in the form <address>%<zone_id>, for example: http://[fe80::1122:33ff:fe11:2233%e th0]:80/ - this however may cause its own problems due to clashing with the percent-encoding used with URIs. [1]
Microsoft Windows IPv6 stack uses numeric zone IDs: fe80::3%1
BSD applications typically use the interface name as a zone ID: fe80::3%pcn0
Linux applications also typically use the interface name as a zone ID: fe80::3%eth0, although Linux ifconfig as of version 1.42 (part of net-tools 1.60) does not display zone IDs.
Relatively few IPv6-capable applications understand zone ID syntax (with the notable exception of OpenSSH), thus rendering link-local addresses unusable within them if multiple interfaces use link-local addresses.
Answered by
Nagendra
at
8:05 AM on November 03, 2008