关于可能的 IPv6 链路本地地址前缀的混淆

网络工程 ip IPv6 IP地址 ip 链接本地
2022-02-11 16:57:30

我无法理解可能存在多少个替代链接本地 IPv6 地址前缀。

I know that the prefix is fe80::/10 which implies that the first 10 bits must be static as:
       |   10     |
       |  bits    |         6 bits          |          rest              |
       +----------+-------------------------+----------------------------+
       |1111111010|           ??????        |       xxx...xxx            |
       +----------+-------------------------+----------------------------+

因此,理论上接下来的 6 位无论值如何都会导致链接本地地址。

第一个应该是fe80::,第二个fe81::,最后一个应该是febf::

为了清楚起见,我考虑了 6 个额外的位来完成第一个字段(16 位)的总位数。

另一方面,我看到一些资源表明只能有四个替代前缀:(a) fe80::、fe90::、feA0:: 和 feB0:: 这对我来说很奇怪,因为该方案只考虑 2额外的位并强制第一个字段的最后 4 位静态全为 0。

为了使事情真正复杂化,规范说:

Link-Local addresses are for use on a single link.  Link-Local
   addresses have the following format:

   |   10     |
   |  bits    |         54 bits         |          64 bits           |
   +----------+-------------------------+----------------------------+
   |1111111010|           0             |       interface ID         |
   +----------+-------------------------+----------------------------+

这几乎使 fe80:: 成为唯一可能的前缀。

什么是正确的?

1个回答

只有一个 IPv6 Link-Local 前缀。fe80::/10,但接下来的 54 位是必需的0,因此所有 IPv6 Link-Local 网络都是fe80::/64.

我看到一些资源表明只能有四个替代前缀:(a) fe80::、fe90::、feA0:: 和 feB0::

这些资源是不正确的,因为这些“替代”前缀中的每一个都必须将一个或多个所需0位设置为1.

该方案仅考虑 2 个额外位,并强制第一个字段的最后 4 位静态全部为 0。

第一个字的最后六位必须是0

因此,理论上接下来的 6 位无论值如何都会导致链接本地地址。

不,第一个字的后六位必须是0.