ping 时出现奇怪的结果

网络工程 路由 ARP icmp
2022-02-05 05:35:53

我正在学习 IP 寻址和路由基础知识,但我遇到了一个我无法理解的问题,所以我有以下结构:

在此处输入图像描述

那么在这种情况下,ping from 130.190.0.16to130.190.4.30可以工作,这很明显,但结构如下:

在此处输入图像描述

我无法从130.190.0.2to ping 通130.190.4.30我知道掩蔽是不连贯的,但通常(基于我正在学习的课程),PC(130.190.0.2)在 和 之间进行逻辑与130.190.4.30255.255.0.0它发现130.190.0.0,所以它得出的结论130.190.4.30是在同一个网络中,所以它发送一个ARP请求,搜索所属的MAC@ 130.190.4.30,第二台PC响应,所以ICMP echo请求会130.190.4.30成功到达,然后后者会使用路由器发送ICMP响应130.190.0.2,为什么不ping通?PS:两台电脑的默认网关是130.190.0.1 Thanks。

4个回答

您没有提到左侧 PC-PT 上的面具,我假设 /16。

Ping 通过发送 ICMP 回显请求并期望回显响应来工作。现在,当您从 130.190.0.16/16 ping 到 130.9.4.30/24 时,回显请求会正常到达那里,但是当即将发送回复时,本地路由表指示它需要路由到目的地。在没有可行的路由器的情况下,无法发送回复数据包并被丢弃。

编辑后:按原样,路由器没用。它不在 130.19.4.0/24 内,因此从 130.190.4.30/24 遥不可及。如果您将其 IP 地址更改为 130.190.4.1,它将起作用,因为从两台 PC 的角度来看,它都位于触手可及的范围内。或者更常规地,路由器将具有两个 IP 地址,每个子网中一个。由于在这种情况下它们重叠,因此重叠内的 IP 地址可以正常工作。

结果很奇怪,因为您的地址不正确。您有两个地址范围重叠的主机。一个主机有一个 /16 掩码。另一个有 /24 掩码,但它在 /16 的范围内:

130.190.4.30 是 130.190.0.0/16 子网内的地址。

这是不正确的配置。 您的主机需要位于两个单独的子网中(即没有重叠的地址),或者它们需要位于具有相同掩码的同一子网上。

同一子网上的两台主机应该就掩码达成一致。例如,您可以将右侧的 PC 更改为具有 /16 掩码。然后,您的 PC 可以相互 ping 通。

如果您希望两台主机位于不同的子网(例如,将正确的 pc 更改为 130.191.4.30/24),那么您需要一个路由器来在两个子网之间进行路由。路由器需要在每个子网中都有一个接口。您还需要将每台 PC 上的默认网关设置为该子网中路由器接口的地址。

按照新手的观点:

130.190.0.2/16 该IP使用CIDR /16,16位表示网络ID 可用主机为65534
130.190.4.30/24 该IP使用CIDR /24,24位表示网络ID 可用主机为254

两者都可以被认为是在不同的网络中。要完成这项工作,请在路由器中为 /24 进行静态配置。

问候,拉加文德拉。

从130.90.4.30的角度来看。它认为它在网络 130.90.4.XXX 上。如果它想向 130.90.0.2(或不在 130.90.4.0/24 上的任何其他地址)发送一些东西,它需要在其网络上有一个网关,即 130.90.4.1,使用 .1 标准作为网关。