【问题标题】:Why my routing tables stores a mac address?为什么我的路由表存储一个mac地址?
【发布时间】:2022-01-13 09:32:52
【问题描述】:

我是一名学习计算机网络的学生。

这是我的网络的样子:

   Router(NAT)
  /         \
My PC     My iPad

我查看了我电脑的路由表,它显示如下:

$ netstat -r
Routing tables

Internet:
Destination        Gateway            Flags           Netif Expire
default            172.22.128.1       UGScg             en0
127.0.0.1          127.0.0.1          UH                lo0
172.22.128.1       0:74:9c:96:72:55   UHLWIir           en0   1200
172.22.161.13      ba:2e:b1:6f:69:39  UHLWI             en0    740

我确认ip172.22.161.13的网关ba:2e:b1:6f:69:39是我iPad的MAC地址。

我有几个疑问:

  1. 路由表不应该记录下一跳的ip地址吗?它如何存储 MAC 地址?
  2. 如果命令 netstat -r 也查找 arp 表,它应该如何在不通过路由器的情况下将数据包发送到我的 iPad?

【问题讨论】:

    标签: networking ip router


    【解决方案1】:

    这里的问题是了解网络中第 2 层和第 3 层的功能。

    将数据包转发到位于同一子网的设备和位于不同子网的设备是不同的。

    我认为没有比可以通过第 2 层协议相互通信的设备更好的子网定义了。路由器用于在不同子网的设备之间转发数据包,即同一子网中的两个设备不通过路由器进行通信,至少不通过路由器的“路由器”部分。

    位于同一子网中的设备应分配相同的 IP 前缀(即,网络掩码覆盖的位相同)。 “应该”表示如果不是这样,那么你的网络配置错误,可能无法正常工作。这样,您的 PC 和您的 iPad 可以确定它们在同一个子网中,并且不需要通过它们的默认网关。

    由于您的 PC 和 iPad 在同一个子网中,它们将使用第 2 层相互通信。根据您的配置,我不确定有多少接口实际上是无线的。如果两个接口都是无线的,它们实际上可能能够直接通话(我不确定 AP 模式下的 wifi 协议是否允许,我认为可以)。如果您的 PC 通过以太网连接,那么您的路由器还充当交换机/网桥(这是第 2 层设备)并根据以太网规范转发数据包。您可以通过谷歌搜索 MAC 学习来了解它。

    这应该回答第二个问题,现在回答第一个问题。

    实际上,我想知道为什么该表存储了 IP 地址。转发时不使用下一跳的 IP 地址。首先,请注意,从第 3 层(即路由器)的角度来看,距离为两跳的设备之间的通信使用第 2 层进行。当设备做出路由决策时,in 从 IP 标头中获取目标地址并查找下一跳,在哪里设备需要的是 a) 出接口 b) 如何使用接口的第 2 层协议到达下一跳。然后设备构造一个适当的第 2 层标头并将数据包发送到下一跳设备,这或多或少是相同的。因此,实际上您的 PC 需要路由器接口的 MAC 地址,以便将数据包发送到子网之外的某个位置。

    【讨论】:

    • 我意识到,在我的潜意识里,我把“下一跳”等同于“记录路由器的IP”。事实上,它应该记录MAC地址和接口。谢谢你的回答,这真的很有帮助。
    • 不客气。如果您需要在某个时候通过考试,还有两个注意事项:(1) IP 地址没有分配给设备,而是分配给网络接口。路由器的每个接口都有不同的IP地址。路由器的管理接口上可能有另一个 IP,但对于下一跳的目的,第一项就是这种情况。 (2) 下一跳可以使用不同的第 2 层技术,并不是所有这些技术在理论上都使用 MAC 地址(实际上我们现在拥有的大部分是以太网/wifi 并且具有 MAC 地址)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多