首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从网关(在主机网络中)向主机发送数据包(从服务器接收)?

问如何从网关(在主机网络中)向主机发送数据包(从服务器接收)?
EN

Network Engineering用户
提问于 2020-05-07 05:33:11
回答 3查看 165关注 0票数 1

如果主机从服务器接收数据包,则这些数据包具有主机的目的IP地址,并且首先由主机网络中的网关接收。现在网关检查ARP,使用主机的IP地址进行索引以查找主机的MAC地址,现在它将链路层(4层internet模型)目标地址(MAC地址)更改为从ARP表中找到的主机MAC地址。然后将帧转发到第二层交换机。但是我的问题是,它如何将帧转发到第二层交换机,因为帧有主机的目标MAC地址,而不是交换机的MAC地址。显然,网关不能将数据包直接转发到主机,因为它们没有连接,所有数据包都必须通过交换机才能到达目标主机。那我错过了什么?我是不是理解错了?

EN

回答 3

Network Engineering用户

回答已采纳

发布于 2020-05-07 06:58:26

假设路由器和主机之间的链路层确实是基于MAC的链路层,并且第2层通过交换机进行切换,那么,是的,您正确地了解了路由器如何查找IP地址,看到这个子网直接连接到它的一个接口,因此它查找ARP表并将MAC地址设置为主机的MAC地址。不过,请注意,IP地址查找是第三层逻辑,而路由器则将其传递给连接到子网的接口的网络接口卡,而第二层逻辑则为主机找到正确的MAC地址。

我认为您的混淆是因为您认为路由器需要通过将MAC地址设置为交换机的MAC地址来将MAC帧发送到交换机。不,路由器只需要知道发送MAC帧的接口,以及主机的MAC地址。当时没有额外的“路由”需要交换机的MAC地址才能使之成为“目的地”。第二层目标是主机,主机MAC地址是正确使用的地址。

然后路由器在该接口上发出第二层帧,交换机将接收到它并查看MAC地址。交换机还维护一个ARP表,将已知的MAC地址映射到端口,然后将帧从主机的正确端口传递出去。

ps。你可能会想,交换机本身的MAC地址的目的是什么?这适用于交换机本身是端点的情况,例如,交换机支持通过http接口进行配置。但这与交换机只是通过第2层帧从一个端口到达预定目的地的情况不同。

票数 2
EN

Network Engineering用户

发布于 2020-05-07 06:31:19

路由器不会改变MAC地址。它发送数据包。在接收时,它将MAC帧从包中剥离,它已经完成了它的工作(从前一跳传输数据包)。然后路由器查询其路由表,确定下一个跳地址(和接口),并将数据包传递给它。

在基于MAC的链路层上“传递数据包”需要MAC帧来封装数据包。在其他细节中,MAC帧需要一个目标MAC,它是下一跳的MAC,由ARP为IPv4确定,NDP为IPv6。下一跳可以是通往目的地的网关,如果是本地的话,也可以是目的地本身。

位于路由器和目标/下一跳之间的任何交换机对链路层都是完全透明的。交换机使用目标MAC将帧转发到其本地目的地。框架本身没有改变。

并非所有的网络都是基于MAC的。无处不在的以太网或Wi是,但例如,串行链路不是。点对点连接一般不需要这样的地址。

票数 1
EN

Network Engineering用户

发布于 2020-11-21 15:48:39

从服务器接收的数据包。服务器将将数据包发送到在服务器网络适配器属性上配置的网关ip地址。数据包将到达网关

例如,如果在路由器上配置了网关。数据包将从路由器到达路由器,数据包将进行路由表验证,如果目的地是直接连接的网络,则验证ARP表。

ARP table maps ip address ==>mac address table

进一步的数据包将从路由器到达L2交换机。在L2交换机中,对mac地址表进行了验证。

Mac address table maps mac address ==> switch ports

如果目标ip地址不是直接连接的网络。然后它将验证路由表,并按照路由表将数据包转发到下一跳。

票数 0
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/67748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档