在机器端完成转换后,为什么交换机需要ARP表?


12

从标题可以清楚地看出,当在机器端完成转换时,为什么交换机需要ARP表?

粗略地说,为什么在机器和交换机上有两个ARP表?交换机上的那个不够吗?


我认为此页面上的答案是正确的。我在其他页面上发现了其他评论员,说L2交换机包含ARP表。这是没有道理的。仅L3设备包含ARP表。
史蒂芬·吉本斯

Answers:


23

这是一个非常普遍的误解,或更具体地说,是一个术语问题。在第二层交换机中,没有ARP表,只有转发表。交换机将在转发表中记录入站的每个src MAC地址,并将其归因于端口,因此具有dst MAC的帧将仅发送到该MAC已知的端口。许多人都将其称为“ arp表”或“ arp缓存”,即使它们都不是。

在管理型第二层交换机中,有一个转发表和一个ARP表,但后者仅用于管理接口以与感兴趣的主机(即您用来配置该交换机的PC)进行对话。将存在一个转发表和一个ARP表,因为它需要管理接口使用,并且还存在路由器功能以在子网之间进行转发。


据我了解,您可以将交换机建模为一组(交换机)端口。端口是编号的数据包队列。交换机以任意顺序排空端口,并维护从mac到端口的映射。当数据包从端口耗尽时,src mac(地址)将映射到端口(编号)。当必须发送耗尽的数据包时,如果已知,则将其发送到dest mac的端口,如果未知,则将其广播。这意味着端口必须获取eth数据包才能进行映射。
抢夺

@Rob,您的评论中有许多不清楚的陈述,即使不是完全不正确的陈述也是如此。端口不是队列。在某些平台上可能存在一对一映射,但是它们并不相同。当接收到帧而不发送帧时,将学习MAC地址。帧按接收顺序传递到输出队列,可能与某种QoS结合使用,这不是任意的。目的地地址未知的帧将被泛洪,而不是广播。
YLearn

然后:将模型切换为编号对(以太网数据包)队列(输入,输出)。读取输入队列时,请确保该数据包的src mac映射到输入队列的端口号。该数据包必须放置在与dst mac相对应的出队列中。如果未映射端口,则数据包将排入所有队列,而不是其自身。(不确定广播/洪泛区的区别是什么,因为我假设它确实在硬件级别在所有线路上发送了相同的信号;或者它是通过端口来回轮询的?)
Rob

啊...我想我反对将交换机建模为数据包队列。与整个数据包相比,交换机可能在较小的数据块上运行。即:只要我们知道哪个端口应该获取要为其获取字节的数据包,就可以发送这些字节。例如:排队足够的字节来处理以太网头;不要容纳整个包。
罗布2015年

@Rob,泛洪帧是具有未知目的地的单播帧,该泛洪帧从接收端口以外的每个端口泛洪。广播是从接收端口以外的所有端口发出的所有目标帧,但是所有在L2广播域中接收到它的交换机将继续以这种方式对待广播。尽管对单个交换机的影响类似,但对整个网络的影响却截然不同。
YLearn

6

每个使用IP协议的设备都有一个ARP表。由于IP是L3协议,并且需要基础L2协议,因此这是设备能够将L3 IP地址转换为其对应的L2地址的要求。

无论您的设备是否正在与本地网络上的IP地址进行通信,它都必须将L2流量(为简单起见,我们不讨论广播和组播)发送到本地L2域中的特定设备。如果IP地址在本地网络上,则该地址将直接指向目标设备。如果不是,则该设备将充当本地网络的网关或路由器,该设备可以将L3流量转发到其目的地。

如果交换机根本不使用IP协议(即,它甚至不提供任何基于IP的管理,没有L3功能等),那么它就不需要ARP表。

但是,我不知道没有使用IP协议的企业交换机平台。Telnet,SSH,HTTP,HTTPS和SNMP只是需要访问IP的企业交换机普遍支持的服务的几个示例。


2

您可能已经知道,ARP表的目的是将网络层地址转换为链路层地址。从IP地址到MAC地址。

您引用的表格还不完整。第2层交换机还具有两种表:

  • ARP表,用于与作为“计算机”的交换机进行通信以与其控件进行接口。好吧,如果是托管交换机,它将具有此功能

  • 将交换机端口与MAC地址相关联的表

示例1:如果PC启动数据包,则如果IP地址是本地的(来自ARP表),它将使用MAC地址。当该数据包到达交换机时,交换机将根据MAC地址(来自交换机端口/ MAC表)将数据包移动到适当的端口。

例2:如果交换机从其管理接口启动数据包,则它的作用与PC使用其ARP表的作用相同。但是,如果交换机从其交换功能启动了一个数据包,那么它只是根据其端口/ MAC表将该数据包从一个端口移动到另一个端口。


亲爱的,谢谢。不错的示例。请不要混淆包和帧。
Mohamad-Jaafar NEHME

-2

交换机具有mac地址表。
诸如PC的端点具有arp表。


那么只有交换机具有mac地址表吗?而且只有端点具有ARP表吗?
YLearn

1
@YLearn对于实际的L2开关,是的。
纳文
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.