实际使用的网络 0.0.0.0/8 的地址在哪里?

Raf*_*ski 9 networking ip subnet

我读到这个池:

  • 表示“这个网络”中的“这些主机”
  • 用于自我识别
  • 用于广播消息

我的问题是:

  • 在哪里可以找到这些地址?
  • 哪些协议使用它们?

Mr *_*unz 5

根据RFC 5735

0.0.0.0/8 - 此块中的地址是指“此”网络上的源主机。地址 0.0.0.0/32 可用作此网络上此主机的源地址;0.0.0.0/8 中的其他地址可用于指代此网络上的指定主机([RFC1122],第 3.2.1.3 节)。

因此,查看RFC 1122

0.0.0.0/32:

此网络上的此主机。不得发送,除非作为源地址作为初始化程序的一部分,主机通过该程序获知自己的 IP 地址。

0.0.0.0/8(即从 0.0.0.0 到 0.255.255.255 的任何 IP):

此网络上的指定主机。它不得被发送,除非作为源地址作为初始化程序的一部分,主机通过该程序获知其完整的 IP 地址。

所以@Spiff 是对的,它们专门用于获取“真实”IP 地址之前的初始化过程。

但后来 RFC 1122 指出:

有一类主机(4.2BSD Unix 及其衍生产品,但不是 4.3BSD)使用非标准广播地址形式,用 0 代替 255(如 0.0.0.0 而不是 255.255.255.255)

因此 BSD 4.2 版实际上将广播发送到0.0.0.0.

更新:

又找到了一条信息:

0.0.0.0/32 是 INADDR_ANY [snip] 0.0.0.0/8 的另一个常见用途是指定 ifIndex 编号,如 OSPF 中的“链接数据”值,以及一些 BSD-ish 接口。

在这里再次出现BSD:

imr_interface 应设置为 INADDR_ANY 以选择默认多播接口,或者如果主机是多宿主的,则选择具有多播功能的特定接口的 IP 地址。从 FreeBSD 4.4 开始,如果 imr_interface 成员在网络范围 0.0.0.0/8 内,根据 RIP 第 2 版 MIB 扩展 (RFC-1724),它将被视为系统接口 MIB 中的接口索引。

  • @rzr00:如果许多主机同时请求 IP 地址,它们通常仍然使用“0/32”很好——它们仍然可以通过它们的链路级地址(例如以太网上的 MAC 地址)来区分。 (2认同)

bar*_*lop 0

看起来它是由 IANA 保留的 - 分发 IP 地址的组织在表中看到 000/8。该表显示 000/8 到 255/8,即 0.0.0.0/8 到 255.0.0.0/8

我认为在 Windows 中,如果 ipconfig 显示它,则意味着没有分配 IP 地址,就像 ipconfig /release 可能或会导致它。

在 netstat -n 中,无论是列为“侦听”的 0.0.0.0 还是 RFC 1918 中的私有地址(如 192.168.1.0),或者如果是 127/8,它们都会告诉您谁可以连接,因此,如果 0.0.0.0,则任何人,如果 192.168.1.0,则只有它们,如果是 127/8,则只有本地主机。

至于什么协议,我只能说IP,因为它们是IP地址。但也许一些更高层协议会这样做……它不适用于广播。它不会识别任何其他 IP 地址或网络,事实上,因为网络上的计算机不应该具有该 IP 地址,所以它不会识别任何其他 IP 地址或网络。

在 Windows 中,当计算机具有该 IP 时,它并不在网络上。(更正一下,如果有有线或无线连接,它将在网络上,并且正如 grality 指出的那样,它们仍然有自己的 MAC 地址)

http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xml

前缀指定 日期 Whois 状态注释
000/8 IANA - 本地标识 1981-09 保留
001/8 APNIC 2010-01 whois.apnic.net 分配
002/8 RIPE NCC 2009-09 whois.ripe.net 分配
003/8 通用电气公司1994-05 LEGACY
004/8 Level 3 Communications, Inc. 1992-12 LEGACY
005/8 RIPE NCC 2010-11 whois.ripe.net 已分配