IP 地址中的网络掩码实际上告诉您什么?

IP 地址中的网络掩码实际上告诉您什么?

一些 问题 出去 那里问一下 CIDR 网络掩码是什么,如何计算。但是读完所有热门答案后,我仍然想知道,网络掩码如何让我们区分两个 IP 地址?

例如,如果我给你地址:

  • 25.47.130.1 /32
  • 25.47.130.1 /8

我不明白为什么只因为您在一个地址中添加了一个更具体的“子组”,这两个地址就成了不同的地址。它们是(或似乎是)相同的 IP 地址!

对我来说,这似乎相当于提供两种描述“鲍勃之家”的方式,但声称它们是不同的地点,例如

  • 鲍勃之家 / 纽约市
  • 鲍勃之家 / 布鲁克林

两个地址完全相同。它们都指同一所房子。在其中一个“掩码”中,你将其缩小到较小的子位置,这无关紧要。

我希望有人能理解我所困惑的内容,并且不会将此标记为重复。我还没有找到解决这一令人困惑的方面的类似问题或答案。

答案1

您可以使用更小的掩码将网络聚合为一个。它仅用于路由或防火墙规则。例如:

25.0.0.0/8 - 纽约

25.47.0.0/16 - 布鲁克林

25.47.130.0/24 - Bob 的家或校园

25.47.130.1/32——鲍勃。

这在实际网络中并不使用。例如,Bob 在 25.47.130.0/24 网络中获得了 25.47.130.1/24 IP 地址。它可以直接(无需路由)连接到此网络中的任何 IP 地址。但它无法直接连接到 25.47.131.1/8,因为此 IP 地址不是来自 Bob 的网络 25.47.130.0/24。这就是为什么 Bob 的计算机将通过网关主机(路由器)将数据包发送到 25.47.131.1/8。

答案2

网络掩码如何让我们区分两个 IP 地址?

不是的。它让我们或设备区分它所连接的网络的范围。

我不明白为什么你给其中一个地址添加了一个更具体的“子组”,这两个地址就不一样了。它们是(或似乎是)同一个 IP 地址!

它们是同一个地址。您所指的范围发生了变化。一般来说,当您看到引用 /32 时,您指的是单个主机。当您使用较小的网络掩码(例如示例中的 /8)时,您正在定义该主机所连接的(子)网络的大小。

虽然您以点分十进制格式读取 IP 地址,但计算机/网络设备使用的地址是二进制的。它是 32 个二进制 1 和 0 的字符串。掩码只是区分了该 32 个字符的二进制字符串的哪一部分用于指定网络,哪一部分可用于指定主机。

除了我上面的一般性陈述之外,当您指的是网络而不是特定主机时,地址的主机位全部设置为 0。如果一个或多个主机位设置为 1,则这通常表示指定大小的网络内的特定主机。因此,当您在上面包含 25.47.130.1/8 时,这往往表示 25.0.0.0/8 的 /8 网络中的特定主机。

两个地址完全相同。它们都指向同一栋房子。在其中一个“掩码”中,你将其缩小到较小的子位置,这无关紧要。

扩展您的示例,这将从网络中移除。是的,它们都是同一栋房子,但这并不意味着面具“无关紧要”。这对鲍勃来说实际上是一条非常重要的信息。

Bob 用数值 (25.47.130.1/32) 来标识,他住在一个城镇 (表示为 25.47.130.0/24)。Bob 有一个老式邮局,里面有单独的邮箱,一个邮箱用于本地邮件 (即城镇中的其他人),另一个邮箱用于所有其他邮件。

这样,本地邮件就可以更直接地投递到目的地(使投递速度更快,对环境更有利)。其他邮箱中的邮件在被发送到目的地之前,都会被发送到地区分类/处理邮局。

Bob 有两封信要发送,一封发往 25.47.130.2,一封发往 35.57.1​​40.2。Bob 知道他的城镇是 25.47.130.0/24,因此确定发往 25.47.130.2 的信是本地的,因此将其放入本地邮箱中。然而 35.57.1​​40.2 不在他的城镇,因此将其放入所有其他邮箱中。

您甚至可以进一步扩展这一点,假设 Bob 知道他的城镇位于某个州 (25.47.0.0/16),而该州属于一个更大的国家 (25.0.0.0/8)。Bob 现在知道他寄往 35.57.1​​40.2 的信件是跨州寄往国外的 (这可能还有其他要求,例如额外邮资)。

但是,通常大多数网络端点 (Bobs) 不需要知道或关心除了流量 (邮件) 是否是本地流量之外的任何其他信息。换句话说,流量是直接发送到本地目的地还是被转交给另一台设备以将其路由到正确的目的地。

答案3

网络掩码不是部分地址。它定义了你的社区有多大,就像 Mikhail Khirgiy 的例子一样。使用 /8 掩码,Bob 认识纽约的每个人。他可以亲自将信件交给城市中的任何人,而无需任何帮助。使用 /16 掩码,Bob 只认识布鲁克林的人(假设 Bob 本人住在布鲁克林)。如果他想给皇后区的某人送信,他需要把信带到邮局(这将是他的网关地址)。使用 /24 掩码,Bob 只认识他公寓楼里的人。要发送给外面的任何人(甚至是布鲁克林的其他人),他需要通过他的网关(在本例中可能是驻地经理)发送。简而言之,网关是等式的一部分。掩码用于确定他可以在没有任何帮助的情况下发送到多少其他地址。如果他无法联系目的地,他会将其发送到他的网关。

答案4

分配给系统的 IP 的网络掩码用于计算将添加到该 IP 的本地系统路由表的条目。

每当设置数据包时,都会查询本地路由表。如果目的地位于本地子网上,您的计算机将使用本地介质(可能是以太网)直接与目的地通信。如果目的地不在本地,您的数据包将被转发到路由表中第一个匹配路由的路由器,或者如果您没有任何特定路由,则转发到“默认”路由器/网关。在路由表中,首先检查本地路由,然后从最具体到最不具体处理路由。

相关内容