通过链路在不同子网之间进行 Ping

网络工程 路由 交换
2021-07-11 06:10:44

从 PC1 到 PC2 的 Ping 可以工作吗?

这 2 个设备上没有其他 L3 端口,其转发表除了由于配置的接口创建的条目之外不包含任何条目。ARP 表为空。

+---------------+                     +----------------+
|               |                     |                |
|  PC1          |                     |    PC2         |
| 10.10.10.1/24 +---------------------+ 192.168.1.1/24 |
|               |                     |                |
|               |                     |                |
+---------------+                     +----------------+
4个回答

不行,不行

让我们看看PC1:

它的 IP 地址是 10.10.10.1,它的子网掩码是 /24 或 255.255.255.0

这意味着就其而言,10.10.10.0 - 10.10.10.255 范围内的IP 地址在同一子网中。所以对于有这些地址的目的地,它可以使用ARP找到它们的MAC地址,并直接向它们发送数据包(实际上是帧)。他无法访问所有其他地址,因为没有定义网关。

PC2也是一样,地址范围是192.168.1.1-192.168.1.255

为了使两台PC能够在不添加路由器或更改IP的情况下相互ping通,您需要将网络掩码更改为0。因此PC1将是10.10.10.1/0,PC2将是192.168.1.1/0 ,使它们的子网范围相同 0.0.0.0-255.255.255.255

如果没有配置的默认路由/网关,则 ping 将失败并显示“没有到主机的路由”错误。

更详细地说,PC1 会将目标地址与其本地子网进行比较,后者是根据 IP 地址和子网掩码计算得出的。由于 PC2 的 IP 地址在本地子网之外,它将转到路由表以查找它必须用于 PC2 的路由。如果没有路由,则不会发送流量并返回错误。

如前所述,没有。

但是,如果两台主机都配置为“proxy-arp”——也就是。the-entire-internet-is-on-this-ethernet-cable 0.0.0.0/0 指向接口(不确定这在 Windows 中是否可行)——然后它将起作用。或者,可以通过静态路由告诉两台主机在线路上有哪些额外的子网。作为一般的最佳实践,应该避免这种事情。

dghfet 我们将 PC1 端口称为“p1”,将 PC2 端口称为“p2”。

转发表中只会出现直接路由。当接口配置了 IP 地址时,会创建直接路由。

PC1的转发表:

路由(带前缀) Nexthop/Interface 10.10.10.0/24 p1

PC2的转发表:

路由(带前缀) Nexthop/Interface 192.168.1.0/24 p2

当您从 PC1 对 IP 192.168.1.1 发起 ping 操作时,PC1 将首先尝试查找该 IP 192.168.1.1 的下一跳。它将对 IP 192.168.1.1 进行转发表查找。

为了与条目 10.10.10.0/24 进行比较,将执行以下步骤: 1 192.168.1.1 AND 255.255.255.0 = 192.168.1.0 (例如 X) 2 X (192.168.1.0) 不匹配 10.10;所以转发表查找会失败。