![家庭局域网中的路由过程](https://linux22.com/image/1494988/%E5%AE%B6%E5%BA%AD%E5%B1%80%E5%9F%9F%E7%BD%91%E4%B8%AD%E7%9A%84%E8%B7%AF%E7%94%B1%E8%BF%87%E7%A8%8B.png)
拥有如下所示的超级简单的家庭局域网
PC1 上的路由表如下:
192.168.0.0 255.255.255.0 On-link 192.168.0.11 276
192.168.0.11 255.255.255.255 On-link 192.168.0.11 276
192.168.0.255 255.255.255.255 On-link 192.168.0.11 276
- 据我所知,“On-link”作为网关意味着同一个子网,因此不需要路由。这是否意味着当 PC1 向 PC2 发送一些数据时,调制解调器(也是路由器)的行为就像一个交换机,即它不做任何网络级别作为交换机工作(不会在其路由表中查找)?
- 我是否正确,当我在 PC1 上运行 ping 命令时,它直接与 PC2 通信 - 它将 ARP 数据报发送到 PC2 以获取其 MAC 地址?
- 当我将路由的 192.168.0.11 网关更改为 192.168.0.1 时会发生什么?我现在调制解调器将充当路由器(进行交换),在这种情况下,PC1 首先获取路由器的 MAC(然后将数据路由到 PC2),而不是像网关处于“在线”状态时那样获取 PC2,对吗?
答案1
我已经有一段时间没有研究过网络了,但我会尝试一下。
这是你在这里写的
“调制解调器将充当路由器(进行交换)”是无稽之谈,你应该称其为路由器/交换机/调制解调器”
这完全是胡说八道
您可以将设备称为路由器/交换机/调制解调器,当它充当路由器时,它就是路由;当它充当交换机时,它就是交换;当它充当调制解调器时,它就是调制解调器(不幸的是,modeming 不是一个词,尽管您可以发明它)。
您基本上是在问,对于在线链接的情况,即 PC1 PC2 同一子网,是否检查路由表。(还请记住,您显示的路由表是在 PC1 上,而不是在路由器上。此外,PC1 不是大多数人认为的路由器,因为它没有数据从一个接口进入而从另一个接口流出)。数据包将首先到达设备的交换机部分。路由器上的路由表不会有 PC2 的 IP 地址。来自 PC1 的“数据包”将首先到达交换机,然后重定向到 PC2,而不是到达路由器。PC1 将 PC2 的 MAC 地址放入其中,因为 PC1 检查了 PC2 是否在同一子网上,并且由于是,它将 PC2 的 MAC 放入“数据包”(或可以说是帧)中。如果 PC2 不在同一个子网上,那么它会将路由器的 MAC 地址放在“数据包”中(我使用引号中的术语“数据包”是指一般意义,而不是 OSI ISO 意义,因此,我指的是无论“层”如何的任何字段)。我认为它会到达路由器的情况是从 PC1 到互联网或反之亦然,或者,考虑具有多个接口的路由器,而不仅仅是“家庭/SOHO”路由器所具有的两个接口,那么如果您将数据包从一个直接连接的子网发送到另一个子网,或者数据包从互联网发送到直接连接的子网,那么数据包将经过交换机,到达路由器,例如交换机,然后到达计算机。但对于 PC1 到 PC2,不会使用路由表。设备的路由器部分将不会被使用。
你写
我是否正确,当我在 PC1 上运行 ping 命令时,它直接与 PC2 通信 - 它将 ARP 数据报发送到 PC2 以获取其 MAC 地址?
首先,请记住 ping 在 IP 上运行,而 ARP 在 IP 上运行。
因此 ping 操作有可能击中路由器。
请记住 Ping 是 ICMP。
如果没有 MAC 地址,它才会执行 ARP。
从技术上讲,ARP 广播将到达每个设备,包括路由器。因为任何具有 L3 地址(例如 IP)的东西也具有 L2 地址(例如 MAC)。但 ARP 永远不会被路由。
ARP 请求将到达交换机,因此我不会将其称为直接从 PC1 到 PC2。尽管 PC1 将使用 L3 地址和 L2 地址来寻址 PC2。因此它将直接寻址 PC2。
你写
“当我将路由的 192.168.0.11 网关更改为 192.168.0.1 时会发生什么?”
好吧,您的 PC1 有一个路由表,如您所见,netstat -rn
显示了一个像您所看到的表格。如果您将它更像路由器一样使用,那么它可以做更多的事情,让数据包进出,而不是可能只是稍微像路由器一样只让数据包出去。
192.168.0.11 是您的 PC1 的 IP。
您从 PC1 的路由表中跳过的列标题是“接口”。
例如,在我的“PC1”上(为了简单起见,略作修改,使我的网关地址与您的相同)
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.0.1 192.168.1.117 25
通常不会更改该接口 IP。但是可以更改自己的 IP,然后更新。可以更改它,但如果这样做,则会将其更改为设备的另一个直接连接接口的 IP。因此,不是网关的 IP。(网关是路由器的另一个术语。。它是 RFC 中的一个较旧的术语。)。
如果您尝试将其更改为 192.168.0.1,那将毫无意义,因为 PC1 没有这样的接口。这不是它的 IP。也不是其任何网络接口的 IP。
因此,如果您查看整个接口列,则不会获得任何与 PC1 不关联的 IP。(我看到一个 169. 地址,但有时在无法获取 IP 时会分配该地址。它仍然是与我运行命令的计算机关联的 IP netstat -rn
)
在具有两个接口的 SOHO 路由器上,除了这两个接口和本地接口 127.0.0.1 之外,你不会得到任何其他东西
添加
我看到这一行也与我的接口 192.168.1.11 相关。我会在这里展示它。第二行与你在问题中展示的那行相关
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.0.1 192.168.1.117 25
192.168.1.117 255.255.255.255 On-link 192.168.1.117 281