如何在路由中使用 MAC/IP 地址

网络工程 路由 路由器 ipv4 MAC地址 奥西
2021-07-30 20:55:41

我必须在几周内教我关于 MAC 地址和 IP 地址的第六种形式,有些领域我不清楚,我希望你们中的一些人能够为我澄清。我有足够的知识让他们通过教学大纲,但我喜欢拥有比规范更多的知识,以便我能够以更有意义的方式解释事情是如何运作的。

因此,据我所知,当 LAN 上的设备通过 Internet 向另一个单独 LAN 上的设备发送数据包/帧时,会发生以下情况。

在发送端创建一个带有目的地和发送 IP 的数据包

第一个问题:目的IP实际上是接收设备局域网的网关IP

然后将其转换为一个帧,该帧将进入 LAN 的网关 - 这发生在数据链路层,并且该帧添加了 MAC 发送和目标地址

第一个问题:目的MAC地址——这是最终目的还是网关的目的?

然后将数据包/帧发送到 Internet 并路由(使用 IP 地址)到下一跳到达最终目的地

第二个问题:在每一跳,数据链路层是否将帧中的目的MAC地址更改为下一跳的MAC地址?

数据包/帧被路由到目标地址(网关)

第三个问题:一旦帧/数据包到达接收 LAN 的网关,交换机使用帧中的目标 MAC 地址来确保它在正确的设备上结束?这显然假设目标 MAC 地址在帧/数据包穿越互联网时未被路由器修改 - 如果它被修改,那么一旦接收网关接收到帧/数据包,它如何知道将它发送到哪里?

3个回答

MAC 地址是帧头中的第 2 层地址。第 2 层帧封装了第 3 层 IP 数据包。第 2 层帧在第 2/3 层边界处(例如路由器)被剥离。如果三层数据包需要通过另一个二层域转发,则使用新的二层域中的MAC地址创建一个新的二层帧来封装三层数据包。

从概念上讲:

到路由器:

<L2 frame><L3 packet><L4 segment>PAYLOAD DATA</L4 segment></L3 packet></L2 frame>

在路由器中:

<L3 packet><L4 segment>PAYLOAD DATA</L4 segment></L3 packet>

从路由器:

<New L2 frame><L3 packet><L4 segment>PAYLOAD DATA</L4 segment></L3 packet></New L2 frame>

原始第 2 层帧将包含发送方的源 MAC 地址和该第 2 层域中路由器接口的目标 MAC 地址。

新的二层帧将包含新二层域中路由器接口的源MAC地址,以及新二层域中下一跳的目的MAC地址。

第 3 层数据包将包含数据包发起者的第 3 层源 IP 地址,以及最终第 3 层目的地的第 3 层目的地地址。

沿路由的每个 layer2/3 边界处的第 2 层 MAC 地址被删除,以替换为新的源和目标的 MAC 地址,但第 3 层 IP 地址沿路径保持不变(NAT 等某些例外) .

只是想添加这个动画来补充接受的答案。

mac/ip

(这个很棒的 GIF 来自这里。)

第一个问题:目的MAC地址——这是最终目的还是网关的目的?

MAC 地址用于帧的第 2 层,第 2 层定义本地网络。因此,如果最终目标不在同一 LAN 上,则目标 MAC 地址是您网关的地址。

第二个问题:在每一跳,数据链路层是否将帧中的目的MAC地址更改为下一跳的MAC地址?

是的,或者最终目标的 MAC 地址(如果它在同一个 LAN 上)。

第三个问题:一旦帧/数据包到达接收 LAN 的网关,交换机使用帧中的目标 MAC 地址来确保它在正确的设备上结束?这显然假设目标 MAC 地址在帧/数据包穿越互联网时未被路由器修改 - 如果它被修改,那么一旦接收网关接收到帧/数据包,它如何知道将它发送到哪里?

有了最终目标的IP地址和他的路由(局域网地址和掩码),路由器就可以推断出数据包的目标是否在同一个局域网上。如果 IP 地址在 LAN IP 地址和掩码的范围内,则它知道最终目标是在路由器连接的 LAN 中。