上面所示地址中,百分号 % 后面的数字 14 就是 Zone ID ,它表示要通过接口索引为 14 的这个网络接口来发送数据包。因此,对于 link-local 地址来说,Zone ID 就是接口索引;如果是 site-local 地址的话,Zone ID 就是 site ID。
为什么 link-local 和 site-local 需要用 Zone ID 呢?
假如你的计算机上有两张网卡,分别连接到 A 和 B 链接(所谓链接,可以理解为 IPv4 中的子网),每块网卡都自动分配到一个 FE80:: 开头的 link-local 地址。假设有一台主机位于 B 链接,其 link-local 地址也以 FE80:: 开头,如果你的计算机要与该主机通信,那么这时该由哪张网卡发出数据包呢?所以,如上所述,只要在 IP 后面加上网络接口索引(Zone ID),那么就可以知道是通过哪张网卡发送数据包了。
同理,每一台主机也可能有多张网卡分别连接到多个站点(site),因此也需要通过 Zone ID 来区分(此时称为 Site ID)。每台主机各有自己的 Site ID,并不一定会相同,如果你的主机只连接到 1 个站点,那么 Site ID 为 1.