子网如何在这里工作?

网络工程 子网 局域网
2022-02-14 14:04:24

我想知道以下情况是如何发生的。

我有四台台式电脑和一台连接到交换机的服务器。

  • comp1 IP: 10.4.2.8
  • comp2 IP: 10.4.11.4
  • comp3 IP: 10.4.24.4
  • comp4 IP: 10.4.2.102
  • 服务器IP:10.4.2.251
  • 服务器子网掩码:255.0.0.0

为什么服务器可以ping通所有四台计算机?不是与服务器位于不同子网上的所有计算机(comp4 除外)吗?

另一个问题是,保持一切不变,但将服务器的 IP 更改为 10.4.24.251,我可以 ping comp2 和 comp3,但不能 ping comp1 或 comp4。为什么是这样?

谢谢!

3个回答

问题 1- 服务器可以 ping 所有其他计算机的原因是因为使用该子网掩码(255.0.0.0 或 /8),您对计算机说第一个八位字节(这是您的 IP 地址八位字节的第一部分。 octet.octet.octet 你知道像 10.4.11.4,10 在第一个八位位组中)是地址的网络部分,其余的只是地址的主机部分。所以对于服务器来说,它们都在同一个网络上,网络 10。

问题 2-这取决于您的其他计算机具有的子网掩码将决定他们可以和谁不能交谈。

我在这里对子网有更好的解释当我们说单个主机可以有多个 IP 地址时是什么意思

我应该只是复制和粘贴。

1.) 简化:掩码 255.0.0.0 意味着 L3 设备在路由消息时只关心 IP 地址的第一个八位字节(至少在确定 IP 地址使用哪个网络 ID 时),因为只有第一个八位字节子网具有价值,并且已被最大化(255 是每个八位字节可能的最大数字)。

更深入:这可以通过二进制 ANDing 计算(尽管在这种情况下没有必要,并且有一种更简单的计算方法,称为“幻数”)。

但是使用 ANDing,您可以将子网转换为二进制,在本例中为:
255.0.0.0 = 11111111.00000000.00000000.00000000

然后将IP地址转换为二进制,本例中服务器为:
10.4.2.251 = 00001010.00000100.00000010.11111011

接下来你和两个二进制数(意思是如果'1'上有一个'1',你把'1'向下移动。如果'1'上没有'1',那么你写一个'0' '。

所以:

00001010.00000100.00000010.11111011 和

11111111.00000000.00000000.00000000 =

00001010.00000000.00000000.00000000

最后,将此二进制数转换回 IP 地址:10.0.0.0

这证明子网掩码 255.0.0.0 意味着在确定 IP 地址所在的网络时仅考虑第一个八位字节。

2.)话虽如此,我认为您应该做的第一件事是检查以确保所有端点都使用相同的子网掩码(255.0.0.0,如果您希望列出的所有地址都能够通信,则可以使用. 255.255.0.0 也适用于您提供的地址。您甚至可以使用 255.255.128.0 或 255.255.192.0 或 255.255.224.0)。

您需要将服务器上的子网掩码更改为 255.255.255.128,以便与其他列出的计算机位于不同的网络上,尽管其他列出的计算机所在的网络也很重要,具体取决于它们的 IP 地址和子网掩码.

当子网掩码为 255.0.0.0 时,您的网络为 10.0.0.0/8,其中包括所有列出的计算机。如果您的子网掩码是 255.255.0.0,那么您也将与所有其他计算机位于同一网络上,因为该网络将是 10.4.0.0。同样,如果您的服务器子网掩码是 255.255.255.0,那么您将与 comp1 和 comp4 位于同一网络上,即 10.4.2.0。

至于第二个问题,comp1 和 comp4 上的子网掩码必须与服务器上的子网掩码不同。