使用 10.0.0.0/8 地址空间的私有网络内的主机如何知道彼此的 IP?

使用 10.0.0.0/8 地址空间的私有网络内的主机如何知道彼此的 IP?

通常情况下,获取 IP 地址需要使用 DNS,但是在这种情况下 DNS 不起作用,那么他们如何找到同一网络内另一台主机的 IP 地址呢?

答案1

它们不会。主机不会只是寻找或访问其他主机1。计算机会按照您的指示执行操作。想要访问https://google.com?您可以在浏览器中输入。想要访问http://192.168.2.1?您也可以输入。

DNS 并不是您了解主机 IP 地址的唯一方式。有人设置了网络。他们会知道并可以口头或书面告知您……在 SOHO 路由器上,默认 IP 地址通常在手册中。

尽管如此,在企业网络中,DNS 仍然经常被使用,因为它具有可扩展性。但是,请记住:你也无法神奇地发现网址。它们是被提供给你的,你可以在搜索引擎/目录服务中找到它们……


1:从技术上讲,计算机实际上确实一直在网络上寻找东西,使用链路本地发现机制,所有这些机制都使用广播消息。

答案2

您的假设有缺陷。DNS 有很多用途 - 包括将域名转换为 IP 地址 - 但不能查找 IP 地址。

简单一点 - 您可能知道,家庭网络中的大多数计算机都使用 DHCP 获取 IP 地址。DHCP 客户端向网络接口发送请求,询问所有将监听的程序“您能否提供我接入网络所需的信息”。此请求中包含与网卡关联的唯一地址(称为 MAC 地址)。DHCP 服务器向发出请求的 MAC 地址提供必要的详细信息。此请求中包含以下内容:

  1. 设备应使用的 IP 地址。
  2. 网络掩码对于本地网络。
  3. 设备应使用的任何 DNS 服务器。
  4. 路由器的地址
  5. 可能还有其他细节我们不需要担心,而且可能包含或不包含附加功能。

重要的是,IP 地址与网络掩码结合后,会告诉计算机哪些计算机与它位于同一 LAN 上。它还知道使用路由器获取不在 LAN 上的任何 IP 地址。

假设 IP 地址为 10.1.1.1,网络掩码为 255.255.255.0。此网络掩码允许计算机知道任何去往 10.1.1.x 的流量都在 LAN 上。

当需要与 LAN 上的另一台计算机通信时,计算机会发出广播 (ARP) 请求,说“LAN 上的哪台计算机有此 IP 地址?” 有此 IP 地址的计算机会说“我知道”,并提供与 IP 地址关联的 MAC 地址。然后,计算机将数据包发送到 LAN,将其寻址到与 IP 地址关联的 MAC 地址。您可以通过查看 ARP 表来查看您的计算机“最近”尝试与之通信的 LAN 上的 IP 地址列表 - 可能是通过打开 cmd/powershell/bash 提示符并输入“arp -a”

TLDR - 以太网上的设备具有称为 MAC 地址的唯一地址。这些 MAC 地址映射到 IP 地址,计算机通过这些 MAC 地址相互广播流量。交换机还会了解哪些 MAC 地址与哪些端口相关联(这就是它们与集线器的区别)

相关内容