研究IPv6寻址我还不了解IPv6可凝集的全球单播地址,我的意思是在RFC 4291上有一个通用方案:

|         n bits         |   m bits  |       128-n-m bits         |
+------------------------+-----------+----------------------------+
| global routing prefix  | subnet ID |       interface ID         |
+------------------------+-----------+----------------------------+


,但是寻找使用的格式我的书(Halsall)使用的格式是:

|  3  | 5  |  8   |    32          |       16      |          64                    |
+-----+----+------+----------------+---------------+--------------------------------+
| 010 | reg| TLA  |  NLA           |  SLA          |  interface ID                  |
+-----+----+------+----------------+---------------+--------------------------------+


在网络上,例如在Microsoft网站上,使用的格式是:

|  3  |     13    |     8    |       24      |    16     |      64                  |
+-----+----+------+----------+---------------+-----------+--------------------------+
| 001 |    TLA    | reserved |    NLA        |    SLA    |        interface ID      |
+-----+----+------+----------+---------------+-----------+--------------------------+


我的问题是:


为什么可聚合的全球单播地址的格式不止一种?
还有其他格式吗?还是只有这2个定义了?

谢谢。

#1 楼

IPv6地址的TLA / NLA结构

2003年8月的RFC 3587中已弃用TLA / NLA分配结构:


2.使TLA / NLA具有历史意义

TLA / NLA计划已由区域互联网注册管理机构[RIP] [IPV6RIR]定义的协调分配策略所取代。

部分动机淘汰TLA / NLA结构是技术性的;例如,在当前IPv6部署阶段,TLA / NLA并不是技术上最好的方法。
此外,IPv6地址的分配与策略有关,
与RIR一直为IPv4管理的IP地址空间和路由表大小的管理。
RIR的政策可能会随着IPv6部署的发展而发展。

IETF已为RIR提供了技术投入(例如,
[RFC3177]),在定义
其地址分配策略时已考虑到RIR。

RFC 2374是格式前缀001(br:2000 /:/ 3)的地址定义。通过本文档具有历史意义。即使
,虽然IANA仅授权了2000 :: / 3,但实现也不应该对2000 :: / 3做任何特殊假设。将来,也可能出于全球单播的目的,将IANA定向到IPv6地址空间的当前未分配的委托


子网本地聚合器(SLA) )在RFC 2374中的字段保留在
函数中,但在[ARCH]中具有不同的名称。它的新名称是
“子网ID”。


如上段所示,SLA幸免于这三个,现在称为子网ID。

我认为他们应该已经淘汰了RFC 2450和RFC 3587中的RFC2374。这已经没有意义了,但它仍然只是提供信息。

全球单播前缀书的前缀肯定是错误的。 010的位前缀意味着4000::/3的地址空间,它的确是RFC 4291的Global Unicast,但不能标识整个Global Unicast范围,甚至也不是IANA当前分配的地址范围,即2000::/3(即地址位以001开头)。

实际上,除未指定的地址fc00::/128和回送地址::以外,几乎所有在::1之前的地址(开始唯一本地单播地址范围)都是全局单播的。从000位开始有一些特殊范围,例如::ffff:0:0/96(IPv4映射的IPv6地址)或64:ff9b::/96(有关IPv4 / IPv6地址转换,请参阅RFC 6052)。它们允许使用少于64位的接口标识符。但是所有以001开头的地址都有一个64位接口标识符(请参见RFC 4291,第2.5.4节,从您引用的位置开始)。

我可以看到,RFC中地址结构的定义最新的是4291。有3个RFC更新4291(RFC 5952,RFC 6052,RFC 7136),但是它们都没有改变此结构。

请注意,[IPV6RIR]参考指向IPv6注册表策略,当前正在成熟的589,它是“通过APNIC,ARIN和RIPE社区之间的共同讨论而开发的。”

#2 楼

RFC 2450-提议的TLA和NLA分配规则

Microsoft符合提议的IETF RFC2450。由于仍在提议中,因此尚未定稿,但它可能是最终格式。