为什么路由器可以让不同子网的两台PC互相访问?

网络工程 路由器 网络 子网
2021-08-01 13:13:34

案例1:PC A:192.168.1.2 / 24,连接到路由器A的LAN port1 PC B:192.168.2.3 / 24,连接到路由器A的LAN port2 上面我们知道A和B不能通话由于不同的子网相互

案例二:PC A:192.168.1.2 / 24,接路由器A的LAN口1 PC B:192.168.2.3 / 24,接路由器B的LAN口1 路由器A:WAN口接路由器B的LAN端口 2,路由器 B 已配置为将 PC A 的数据包路由到路由器 A

我的问题:在情况 2 中,数据包将在路径 PC B -> 路由器 B -> 路由器 A -> PC A 中成功移动,但是我想知道,因为数据包的源 IP 仍为 192.168.2.3,目标 IP 为 192.168 .1.2 属于不同子网,当 PC A 收到数据包时,它仍然会检查数据包的源 IP 为 255.255.255.0 以获取 PC B 的子网,这将与情况 1 中的 PC A 不同,这应该再次阻止数据包到达 PC A。路由器做了什么使数据包成功到达?

非常感谢!

1个回答

我想知道由于数据包的源IP仍然为192.168.2.3,目标IP为192.168.1.2,它们属于不同的子网,当PC A收到数据包时,它仍然会使用255.255.255.0检查数据包的源IP以获取PC B的子网将与 PC A 不同,就像在案例 1 中的情况一样,这将再次阻止数据包到达 PC A。

不是。接收IP包的主机只关心目的IP地址是它的IP地址。为了接受数据包,它并不关心源地址是什么。

正如在这个答案中所解释的,同一数据链路网络上的两个不同网络层网络的问题是,如果网络层目标地址用于不同的网络层,则源主机将不会向目标主机发送帧网络。

源将发往不同网络层网络的数据包的数据链路帧发送到其配置的网关(路由器),而不是目标主机数据链路地址,因此同一数据链路网络上的目标主机但在不同的网络上-层网络永远不会得到带有 IP 地址的帧。


网桥(包括交换机)在同一数据链路网络上传送数据链路帧,但源主机不会将数据链路地址用于不同网络层网络上的主机。路由器在不同的网络层网络之间路由网络层数据包,因此每个路由器接口在不同的网络层网络中都有一个地址。