即使是偶然的观察,您也可能已经注意到,有几个IP地址范围 特别 , 包含:

  • 10.0.0.0/8(10.0.0.0– 10.255.255.255)
  • 172.16.0.0/12(172.16.0.0– 172.31.255.255)
  • 192.168.0.0/16(192.168.0.0– 192.168.255.255)

任何人都可以将这些“私有”范围用于他们喜欢的任何东西。但是实际上还有其他一些特殊范围具有其他特殊用途。在本文中,我将解释它们的含义和服务目的。

127.0.0.0/8(127.0.0.0– 127.255.255.255)

这是“回送”范围。这些地址假定与发送数据包的设备位于同一设备上。您可能永远不会在网络上看到带有这些地址的数据包,因为它们应该由设备内部的软件处理。

通常,操作系统本身使用地址127.0.0.1,因此您可以在任何系统上PING该地址,并且它应该响应。

C:\Users\kevin>ping 127.0.0.1

Pinging 127.0.0.1 with 32  通过 tes of data:
Reply from 127.0.0.1:  通过 tes=32 time<1ms TTL=128
Reply from 127.0.0.1:  通过 tes=32 time<1ms TTL=128
Reply from 127.0.0.1:  通过 tes=32 time<1ms TTL=128

Ping statistics for 127.0.0.1:
    Packets: Sent = 3, Received = 3, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms
Control-C
^C
C:\Users\kevin>

如果它没有响应,则表明您的系统已 TCP / IP 堆栈无法正常工作。但是,除非您具有专门配置用于侦听此IP地址的应用程序,否则该范围内的其他地址(例如127.0.0.2)不应响应。

当您需要与当前连接的系统上的某些网络应用程序(例如Web服务器)进行交互时,通常会使用环回地址。

169.254.0.0/16(169.254.0.0– 169.254.255.255)

这些地址是“本地链接”,这意味着具有这些地址的数据包将发送到网络,但永远不要转发到网络的其他部分。如果设备无法使用DHCP获取地址,则通常会看到此范围内的地址。然后,它仅从该范围获取一个地址,并使用它至少尝试在本地进行通信。

AWS(亚马逊网络服务) hosts have an interesting use for link local addresses. 的 y use 169.254.169.254 for a 特别 web server that exists on every EC2 segment 和 contains locally relevant information about the instance: http://169.254.169.254/latest/meta-data/

微软Azure 允许使用相同的地址,但出于相同的目的,它定义了唯一的全局公共地址168.63.129.16。请务必注意,该地址实际上是Microsoft拥有的注册地址。应该将其视为任播地址,而不是链接本地地址。

如果您在几乎任何网段上都使用嗅探器,则在ARP查询中通常会看到169.254.xx地址。如上所述,当设备无法使用DHCP获取地址时,它可以使用链接本地地址与同一网络上的其他设备通信。但是这些地址仍然必须是唯一的-它们使用ARP查询来确定它们要使用的地址是否已被使用。因此,如果您在网络上看到很多此类数据包,则可能意味着您的DHCP服务器有问题。
192.0.0.0/24(192.0.0.0– 192.0.0.255)

这是另一个可用于私人目的的较小范围,与10.0.0.0/8和192.168.0.0/16完全相同。它很少使用,因为它只允许254个地址。但是,如果您在紧急情况下需要 特殊子网 ,这可能会有所帮助。

例如,如果您有一个小的 广域网 需要地址,但是您不想使用普通私人范围内的地址,这是一个不错的选择。

测试范围

IANA(互联网号码分配机构)定义了三个特殊范围 被指定为“测试”的标签,尽管它们实际上是为 文件资料 .

192.0.2.0/24 (192.0.2.1– 192.0.2.254) 测试网1
198.51.100.0/24 (198.51.100.1– 198.51.100.254) 测试网2
203.0.113.0/24 (203.0.113.1– 203.0.113.254) 测试网3

您可以在文档中使用这些范围。它们也可以用作网络内部的其他私有范围,但是不建议您这样做,因为它们会使人们感到困惑。

224.0.0.0/4– Multicast

从224.0.0.0到239.255.255.255的范围保留给多播。您绝不能尝试将这些地址分配给设备的接口。在网络中,组播本身就是一个复杂的话题。重要的一点是,数据包可以发送到多播目标地址,并且可以同时传递到大量下游设备。

组播协议有许多不同的用途。它们通常用于基于IP的有线电视网络上的音频和视频信号。最终用户的电视或机顶盒向网络发送一个特殊的“加入”请求,表明它希望开始接收特定的数据包流。它们还常用于股票交易应用程序,以确保所有市场参与者同时接收有关交易的信息。

但是,由于组播本质上是一对多(或几对多)的数据包流,因此不可能将响应和确认从客户端发送回服务器。因此,通常使用UDP来传递多播。如果必须按顺序交付数据包,或者如果不能将其丢弃,则应用程序需要注意这些功能。网络不会这样做。

请务必注意,公共互联网上未启用多播协议。因此,即使存在注册的“公共”和未注册的“私有”多播地址范围,除非您专门设计了网络来支持这种流量,否则您在网络上都不会看到很多多播。

有一些例外:组播地址224.0.0.1和224.0.0.2用于分别向本地网段上的所有设备和本地网段上的所有路由器发送数据包。其他多播地址用于其他常见的网络功能,例如 路由协议 。 NTP时间协议使用224.0.1.1作为一次将时间信息传递到许多设备的替代方法。

对其中一些地址执行ping操作可能很有趣,只是为了查看您的网络上是否有启用多播的设备。