为什么本地地址是 192.168.*.*?

网络工程 ipv4
2021-07-03 13:37:03

到目前为止,我看到的标准是对本地网络上的设备使用 192.168.*.* IP 地址。

为什么是这个组合?如果是我,我会选择更简单的,比如 1.0.*.*。历史原因是什么?

3个回答

注意:除非我们能得到RFC 1918 / RFC 1597的原始作者之一或当时(1994-1996)来自 InterNIC/RIPE NCC 的人的评论,否则我们可能只能猜测,这个问题的答案是主要基于意见。*


根据RFC 1918,以下三个范围保留用于专用网络:

10.0.0.0        -   10.255.255.255  (10/8 prefix)
172.16.0.0      -   172.31.255.255  (172.16/12 prefix)
192.168.0.0     -   192.168.255.255 (192.168/16 prefix)

这就是为什么您会看到它们用于本地网络上的设备的原因。

这三个“私有”地址范围中的至少一部分背后的推理相当简单,但同样在逻辑之外,这些都是基于我多年来阅读的猜测。

首先考虑有类网络如下(来源维基百科关于有类网络的文章):

Class A
  0.  0.  0.  0 = 00000000.00000000.00000000.00000000
127.255.255.255 = 01111111.11111111.11111111.11111111
                  0nnnnnnn.HHHHHHHH.HHHHHHHH.HHHHHHHH

Class B
128.  0.  0.  0 = 10000000.00000000.00000000.00000000
191.255.255.255 = 10111111.11111111.11111111.11111111
                  10nnnnnn.nnnnnnnn.HHHHHHHH.HHHHHHHH

Class C
192.  0.  0.  0 = 11000000.00000000.00000000.00000000
223.255.255.255 = 11011111.11111111.11111111.11111111
                  110nnnnn.nnnnnnnn.nnnnnnnn.HHHHHHHH

Class D
224.  0.  0.  0 = 11100000.00000000.00000000.00000000
239.255.255.255 = 11101111.11111111.11111111.11111111
                  1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX

Class E
240.  0.  0.  0 = 11110000.00000000.00000000.00000000
255.255.255.255 = 11111111.11111111.11111111.11111111
                  1111XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX

如您所见,三个 RFC1918 范围中的每一个都从旧的“有类”网络范围之一中切出一个私有块。(在这种情况下,A 类、B 类和 C 类。)

引用邓布利多的话, “从这一点开始,我们将离开坚实的事实基础,一起穿越记忆的阴暗沼泽,进入最疯狂的猜测丛林。”

RFC 1918(1996 年 2 月)开始之前,IANA已经分配地址多年(实际上,私有范围于 19943 月RFC 1597首次提出。)例如,如果您进行查找,您可以看到级别 3 在 1992-12-01 分配了此块。whois 8.0.0.0

因此可以假设 RFC1918 的作者必须与 IANA/ Jon Postel 合作才能找到可用范围,从而为我们提供了上面列出的私有范围。

但同样,除非有人直接参与该过程*,否则这可能仍然是猜测。

*或者只是拥有比我更好的 Google-foo 的人。我无法找到此信息的良好主要来源。

正如其他人指出的那样,RFC1918定义了 3 个私有 IP 范围。1996 年,周围仍然存在不支持CIDR 的遗留设备,因此为每个类别创建了一个范围。B类地址从128.0.0.0开始,C类地址从192.0.0.0开始;选择 168 只是因为它未分配。

但这又引发了另一个问题——为什么需要 C 级范围?既然类 A、B 和 C 之间的唯一区别是网络大小,为什么不直接使用 10.0.0.0/8?根据 RFC1918:

如果能够设计出合适的子网划分方案并得到相关设备的支持,则建议使用私有地址空间的24位块(A类网络),并制定具有良好增长路径的寻址计划。如果子网划分有问题,可以使用私有地址空间的 16 位块(C 类网络)或 20 位块(B 类网络)。

我不确定作者在考虑子网划分时究竟会出现什么样的“问题”。也许由于内存限制,某些 CIDR 之前的硬件不支持 A 类网络(尽管您会认为重要的是主机数量,而不是潜在主机的数量)。

此外,C 类网络是 /24s,即使 192.168.xx 是 /16 — 所以在有类网络中 192.168.xx 实际上包含 256 个子网。这对于想要在 CIDR 之前的硬件上运行私有子网的大型组织可能很有用。

请使用 10.0.0.0 - 10.255.255.255,根据RFC 6890,第 6 页。

我曾经认为回答历史问题是个好主意,但由于糟糕的吸血鬼经历,我想避免定期这样做。在这种情况下似乎没有必要。10.0.0.0/8 已经足够简单了。