同一 LAN 上的两个主机之间的连接(物理上)

同一 LAN 上的两个主机之间的连接(物理上)

抱歉,我有一个关于网络的基本问题。假设我们有 2 台主机,每台主机在不同的网络上都有不同的 IP,如下图所示。

Switch + 不同网络上的 2 台 PC

问题是:他们能否互相 ping 通?如果答案是否定的,为什么会发生这种情况?

谢谢大家。

答案1

假设交换机是非托管交换机,并且没有任何 VLAN,您需要做的就是添加直接的两个主机上到“其他”主机/网络的路由(无论哪一个适合您的需要)。

直接路由意味着路由由目标主机/网络地址(带子网掩码/前缀长度)和网络接口组成,没有下一跳/网关地址(因为没有路由器/网关会参与通信,而只有在 L2 广播域内工作的交换机和 ARP)。

尽管如此,在广播域中使用多个 IP 子网还是有点不寻常,而且可能毫无意义。

答案2

默认情况下,不行。从物理上来说,他们可以,但他们不知道这一点——他们的 /24 子网掩码告诉他们相反的地址在子网之外。(换句话说,他们只有自己的 /24 路由​​,而没有任何其他地址的路由。)由于没有与相反地址匹配的路由(假设未配置默认网关),最有可能的结果是“网络不可达”或“没有到主机的路由”错误。

可以添加自定义路由,将相反的 /24 定义为“在链路上”,以通知操作系统可以将数据包直接发送到另一个地址:

HostA# ip route add 192.168.2.0/24 dev eth0

HostB# ip route add 192.168.1.0/24 dev eth0

(在某些其他操作系统中,可以通过指定源主机自己的地址作为网关来添加这种“直接”路由。)

答案3

两个主机属于不同的 IP 网络,因此(根据当前方案)它们无法互相看到。您需要一个可以遍历并将数据包从一个网络“翻译”到另一个网络的设备。这通常是路由器。

另一种可能的方法(不使用路由器)是通过网络接口向另一个网络添加静态路由,这样您就可以让主机互相看到。

答案4

在这种情况下,答案是否定的,PC 无法互相 ping 通。它们位于不同的子网中,因此没有默认网关路由器或配置直接路由 PC只能成功 ping 通 IP 地址在 192.168.1.1 范围内的设备。.1-254/24。

ICMP(该协议ping使用)是一个OSI 模型第 3 层(网络层) 协议(Internet 层的一部分TCP/IP),而交换机只能转发第 2 层流量(数据链路层) 使用MAC 地址

NIC 将根据系统的路由表发送数据包。具体会发生什么取决于 IP 地址的配置方式。这里 PC1 正在 ping PC2。

  1. 如果未设置默认网关,NIC 将确定接收方不在同一子网中,并且没有下一跳网关可以发送数据包。它将丢弃 ICMP 回显请求(ping 请求)而不进行转发。

  2. 如果按照以下最佳实践设置 DGW:

    • 在此示例中,PC1 的 IP 地址为 192.168.1.1,PC2 的 IP 地址为 192.168.2.1,DGW 分别配置为 .1.254 和 .2.254

    a. PC1 不知道到 DGW 的路由,因此它将发送一个地址解析协议请求广播 MAC 地址 (FFFF-FFFF-FFFF-FFFF)。数据包中的 IP 地址是 PC1 IP,接收者的 IP 是 DGW。

    b. 交换机接收数据包。由于这是广播数据包,因此它会将其从每个连接的端口泛洪出去

    c. PC2 收到广播数据包。它会确定接收者的 IP 地址不是自己的,因此会丢弃该数据包而不做出响应。

路由器使用 L3 地址(IP 地址)转发流量。它们用于在子网之间转发流量(子网是第 3 层概念,与一般的 IP 寻址一样)。在 Windows 世界中,此路由器称为默认网关,在 *nix 设备中,它是默认路由。在没有路由器的情况下,有方法可以使通信正常工作,如 Tom Yan 和 Romeo Ninov 所述,但这些并不是网络设计中的常见做法。它们是特定情况下使用的特殊情况。

由于示例 1,DGW IP 地址必须与 PC 接口位于同一子网。因此,在这种情况下,DGW 必须在 192.168.1.0/24 网络中有一个接口,在 192.168.2.0/24 中有一个接口。当 DGW 正确设置并存在时,流量为:

  • PC1 发送 ARP 到广播 MAC 来查找 DGW
  • 交换机泛洪 ARP
  • DGW 收到 ARP 数据包,由于它有接收方 IP,因此它会做出响应
  • 交换机将转发响应给 PC1
  • PC1 将发送 ICMP 回显请求,以 PC2 的 IP 地址作为接收者
  • 交换机将收到回显请求并将其转发给路由器
  • 路由器将转发流量至 PC2
  • PC2 将收到回显请求,并且由于它是预期的接收者,因此会将回显回复发送到其自己的 DGW
  • 路由器将收到回复并将其转发给 PC1
  • PC1 将收到数据包

为了学习网络,我建议你安装免费的思科数据包追踪器。它是 Cisco Net Academy 官方的 Cisco 网络考试学习工具。它允许您使用各种设备构建不同类型的网络并研究不同类型的流量。当您运行模拟时,您可以在每个数据包通过路由上的每个接口时分别分析它。Youtube 上有多个视频教您如何使用它来创建实验室,从基础到高级 Cisco 考试。

相关内容