为什么Internet工程任务组(IETF)选择192.168/16
成为私有IP地址类别,而不选择其他类别?
为什么专门192.168/16
和10/8
和172.16/12
,而不是145.243/16
为例子吗?
是否有理由将这些IP地址作为所有其他可能性的专用IP地址的标准?
为什么Internet工程任务组(IETF)选择192.168/16
成为私有IP地址类别,而不选择其他类别?
为什么专门192.168/16
和10/8
和172.16/12
,而不是145.243/16
为例子吗?
是否有理由将这些IP地址作为所有其他可能性的专用IP地址的标准?
Answers:
我知道谁选择了这些地址范围。不幸的是,他死了,所以我不能确切地问他为什么选择他们,但是我可以做出一些明智的猜测。
在1990年代中期之前,互联网真正开始腾飞时,网上约会很少。Internet的存在历史主要是在定义RFC的RFC中进行的,最早可追溯到1969年的ARPANET。通过它们,您可以看到Internet从一个由几个原始大型机组成的雏形网络(由当时最杰出的头脑所设计)发展到一个我们今天无法想象的网络。
这个答案几乎完全来自那些RFC,而一小部分则来自我这个时代在Internet上的个人经验。
首先,IETF没有选择这些IP地址范围或其他任何IP地址范围。特殊用途的地址分配是当前和一贯的的工作互联网编号分配机构。
IANA始终是一个角色,而不是一个特定的组织,并且该角色只发生了一次换手。IANA 目前由ICANN持有,但从1972年到1998年去世(当时该组织成立以取代他),IANA基本上就是一个人,乔恩·波斯特尔(Jon Postel)。当然,他首先称插座编号为czar,这是他自己必须执行的任务,因为它需要完成。他结束了几乎所有可以分配的数字的沙皇:地址,协议号,端口,您可以说出它的名字,主要是因为他愿意这样做,并且在Internet 开放给公共贸易之时他已经做了20多年了。他分配了编号,然后Internet注册表(然后是SRI-NIC,后来扩展为全球范围内的分布式注册表集)发布了它们。
SRI中最后一个显示Internet地址分配列表的RFC是1990年以来的RFC1166。这是一个非常长的列表,因此将这些数据移到在线数据库中也就不足为奇了。与它的前身RFC 1117进行比较,可以看出Internet的扩展速度,甚至在向公众开放数年之前。
因此,现在我们可以更好地理解RFC 1918中的地址范围。这实际上是RFC的第二版。第一个是RFC 1597,大约在两年前的1994年3月发布。在鲜为人知的反驳RFC 1627中,提出了反对私有地址空间的现代论点。RFC 1627也恰好提到谁分配了三个地址空间。
它们是由IANA(即Jon Postel)根据RFC 1597的作者的要求分配的,并且如果可以相信RFC 1627中的投诉,他是通过反向渠道而不是通常的开放流程进行的。你可以看到,RFC 1597本身就直奔RFC状态,而不常用的前Internet草案,因此它也被通过后信道,再由普天,批准谁也当时RFC编辑器。因此,不可能永远得出结论。
现在,关于他为什么选择这三个地址范围,让我将注意力转向SRI的RFC 1166和1117,后者具有当时的IP地址范围分配。在它们两个中,您都将注意到网络10仍分配给已失效的 ARPANET,该网络已于1990年关闭。Postel以IANA的身份知道该范围已不再使用,可以重新分配。我认为Postel选择网络10是因为他知道网络10是可用的而不是在使用中。
同样,我希望Postel选择192.168,因为在他做出选择时,它是从前C类空间分配的下一个可用网络,或者几乎是下一个可用网络。这可能无法用另一种方法证明,但是RFC中显示的地址分配速度强烈表明,在进行分配时,它们大约在1993-1994年左右。(在192.159中分配的地址是1992年分配的。192.160-192.167中没有分配日期,因为这些日期在某些时候已重新分配给RIPE。)
为172.16-172.31回答这个问题更加困难。我什么都找不到建议选择此范围的原因。据我所知,以前的B级空间中的作业还没有达到那么高的水平。我只能推测,IANA将飞镖扔到了飞镖板上,掷出了骰子,或者以其他方式将数字从他的暗区中抽了出来。
最后,关于乔恩·波斯特尔的笔记。尽管在没有社群(初始)投入的情况下以完全形式形成此RFC的明显方式,但我并不是要暗示,这也不应该被解释为,乔恩·波斯特尔(Jon Postel)以某种方式差劲或不公平地执行了IANA角色。他是早期Internet上最有影响力的人之一,当您每次瞥见Internet的幕后机制时,您仍然会感到今天的影响力,但是他始终关心正确地完成工作。引用一种回忆:
执行管理和操作没有荣耀。恰恰相反。人们注意到做得不好的时候,但是做得好的时候很少赞美。行政职位的人经常成为小官僚。由于这份工作的报酬很少,所以他们人为地使其成为权力的基础。因此,它使一些听到乔恩(Jon)被称为互联网号码“ czar”的人感到困惑。他们没有意识到社区将乔恩(Jon)的头衔归功于他对基本基础设施服务的重视和深切的感激。尤其是,社区在充分了解乔恩(Jon)担任其信任而非个人权力机会的地位的情况下使用了该术语。我们一直都知道他的观点来自合法的信念,我们永远不必担心他在某种程度上考虑政治或个人利益。我们可能不同意他的观点,但我们始终知道,首先是因为担心做正确的事情。
因为当时有意义吗?:-D
请记住,当分配了专用IP地址范围时,网络工程师必须解决几个问题:当时一些功能最强大的路由器的CPU能力和RAM存储量与当今的袖珍图形计算器一样多-还有一些今天的那些路由器仍然绕着过去的路由器运行(我记得当CPU速度以千赫兹为单位而RAM存储空间以千字节为单位时,而不是今天的千兆字节!)。互联网发展迅速,IPv4地址空间是有限的,并且看起来到2000年左右将用光,等等。因此,已经分配了许多IP地址范围,并且他们不想让公司退回IP地址范围只是为了将它们重新分配给私有范围。他们还想尝试使公司尽可能轻松地与私有范围进行合作-很少有公司会合作,如果他们不得不投入大量资金使他们的网络能够应对一到二十个范围/ IP在这里和那里的地址。
这部分是我的猜测,但主要基于建立网络的逻辑和经验。.他们可能会收集所有未分配的网络编号的清单,并寻找符合所需标准的区别模式:一个类A(在网络号中具有高0xxxxxxx二进制数字的网络号是A类),16个B类(网络号10xxxxxx二进制)和256 C类(网络号110xxxx二进制)地址。B类和C类地址也应该都是连续的。(对于16和256的选择可能部分是任意的-在做了一段时间之后,您倾向于开始考虑2的幂,并且可能部分是因为可以找到可供保留的东西。)
因此,他们可能从那些可用地址中选择了最终范围,这将使路由器制造商可以对该地址进行简单的逐位测试,以确定是否路由/转发/丢弃数据包。我还看到了位模式的一些属性,这些属性也有助于构建紧凑的NAT表。10.xyz地址很明显,因为它只需匹配一个网络号。172.16.yz到172.32.yz的模式是,如果您构建一个表,其中低阶四位与高四位交叉,则整个范围将填满表的单行,而不会分成两行-即第二个八位位组始终为0001xxxx(二进制)。在192.168.yz中,168的二进制为10101000-即低三位始终为0,高5位交替为1和0。
尽管这些看起来可能是任意的,但如果您曾经进行过任何机器语言编程或微码解码,则这些模式都允许您仅测试几个位来进行私有/公开确定,而不必先解码整个IP地址。这将允许路由器快速处理此类地址,而无需在内存中维护大量的查找表。因此,路由器可以将专用网络数据包推回专用网络,而无需先对其进行完全解码,从而节省了宝贵的时钟周期,降低了路由器和网络的速度。
如果您好奇,请查看串行数据传输方式(例如UART))处理数据的每个字节:它一次只能以控制时钟的速度发送/接收一位,并且通常以附加位(例如奇偶校验和“同步”位)来构造数据。试图一次计算整个字节上的奇偶校验之类的东西太耗时,因此,它在每个时钟周期都维护一个特殊的位。该位被下一个移入/移出发送/接收寄存器的位修改。一旦发送/接收了整个字节,奇偶校验位中剩余的值就已经正确,而无需重新计算。这个概念或多或少是“在您做其他事情的同时完成工作”,对于串行芯片,它在发送/接收的同时计算奇偶校验。对于路由器/交换机,
同样,根据我从事此类工作25年的经验,这只是我的逻辑/笔试。我不知道我们能否知道最终选择的数字背后的确切原因,因为我不记得任何文件/ RFC / etc。给出完整的理由。我所看到的最接近的评论只是暗示,所选范围应该使公司以相对较少的努力/投资/重新设计就可以相对容易和有效地使用它们。
在原始Internet中,现在表示为10.0.0.0/8的网络已分配给ARPANET。到IETF和IANA分配私有地址范围时,ARPANET已经失效,其以前的地址空间可供私有使用。
除了上述的A类,另外两个范围使B类和C类网络可用于私有IP。
因为192以二进制格式的11xxxxxx开头,表示C类网络。它是以两个连续的1开头的最低数字。A类的最高位为0,B类的最高位为10。
定义私有IP范围的RFC 1918在这一点上并不清楚,因此对于为什么他们为16位块选择.168并没有明确的答案,但是我认为这是因为RFC直到1996年才发布,在已经进行了大量注册之后。因为192是C类分配中的第一个8位块,所以很可能许多地址已被占用。168可能是第一个可用的。
还请记住,其中一些选择是任意的。请注意,rfc1918 B级范围是172.16-172.31?我想不出使用172的原因,但是我很确定他们选择使用16个B类,因此他们拥有100万个连续地址的块(1048576)。
有时协议就是那样。有人必须做出选择,然后他们做出了选择。有一阵子,Linux内核被限制为每个系统最多1024个CPU,最终在一些超级计算机出现问题之后,他们不得不发布补丁。决定使用1024的人可能没有充分的理由这样做,除了他需要一个值,并且1024很好而且很圆。
这是Classful Networking的残余,其中将IPv4地址范围细分为以下类别:
此后(在1993年)我们转向无类域间路由,但是这些类仍然在各个地方都有其继承性(127网络是“家庭/环回”-127.0.0.1有人吗?192.168.X在家庭中很常见)在10个路由器中,“ 10”网络在更多的“企业”网络硬件中很常见,而多播仍然是多播。
RFC解释了为什么我们分别从“ A,B和C类”中选择三个范围的原因:已指定CIDR,但尚未广泛实施。那里有大量的设备仍然是“一流的”。
据我所记得,对特定范围的选择如下:
10/8:ARPANET刚刚关闭。我们中的一个建议这样做,乔恩认为这是对“历史”地址块的很好的重用。我们还怀疑“ net 10”在某些地方可能已经过硬编码,因此将其重新用于私有地址空间而不是在AS间路由中使用,可能会在保持这种愚蠢的本地性方面略有优势。
172.16 / 12:B类空间中最低的未分配/ 12。
192.168 / 16:C类块192/8中最低的未分配/ 16。
总结:IANA分配此空间的方式与其他目的一样。作为IANA,除非有充分的理由要进行创新,否则乔恩非常一致。
Daniel(RFC1918的合著者)