我只是在了解ARP。我有点糊涂。我的困惑在一个场景中得到更好的解释。
主机A与主机B通信。主机A知道主机B的IP地址,但不知道主机的MAC地址。因此,它向LAN和主机B发送一个ARP请求,并给出其Mac地址。因此,主机A现在知道主机B的Mac地址,并可以在ARP表中输入主机B的Mac地址。
我对ARP表的问题
**问题2只适用于问题1的回答是“每个主机保留各自的ARP表”。
发布于 2019-02-17 19:48:47
实际上,设备中的每个接口都有自己的ARP表。一个主机可以有几个ARP表(每个接口都有一个)。ARP表在主机之间甚至在同一主机上的接口之间都不共享,但是主机可以在网络上听到ARP通信量,并更新听到ARP通信量的接口的ARP表。
发布于 2019-02-17 20:44:23
以另一种方式回答这个问题:有哪些机制可以共享ARP表?这是IP over以太网(和任何类似的第2层网络)的基本原理之一。如果一个设备试图与另一个设备共享ARP信息,那么它必须做一些事情,比如广播ARP表的条目,知道什么时候在设备启动时得到更新等等:所有这些都比ARP的工作方式复杂得多,即给定的设备负责告诉别人关于自己的信息,当设备想知道另一个设备时,广播查询。
发布于 2019-02-17 23:39:35
让我们具体地研究每一个问题,并扩展您的问题,以帮助您更好地理解可能发生的情况。
1.主机A是在更新自己的ARP表,还是在整个LAN中更新共享的ARP表?
不,ARP表不是在整个LAN之间共享的。每个设备都有自己的ARP表。设备负责管理自己的ARP表,包括与条目关联的本地接口。
2.如果不能在所有局域网之间共享ARP能力,如果其他主机还没有这一信息,是否会让同一局域网上的其他主机知道A主机刚刚收到的这一新信息?
简单地说,切换环境的答案是不。如果您查看ARP包的格式,您将看到数据包包括发送方硬件MAC地址和IP。当从请求设备发送ARP请求分组时,分组被发送到广播地址,并由交换机转发到LAN上的所有接口(设备)。这允许具有请求IP地址的设备对请求它的设备的特定IP和MAC地址进行应答并将应答包作为目标。网络交换机负责维护MAC地址表,仅将数据包转发到分组中特定设备的交换机上的接口。下面是一个从10.0.0.1搜索10.0.0.2的传出ARP数据包的示例。
15:00:37.395072 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.0.0.2 tell 10.0.0.1, length 46尽管如此,设备发送一个免费的ARP回复包公告是可能的,因为它们有特定的IP地址。免费的ARP应答包将被发送到广播地址,再次被转发到局域网上的所有设备。在这种情况下,每个接收该数据包的设备都必须选择如何处理该数据包。如果他们在ARP表中没有地址,他们通常会忽略它。但是,如果它们的ARP表中确实有该地址,则应该更新任何更改的信息。下面是10.0.0.2向LAN宣布的一个示例数据包:
15:00:38.462135 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.0.0.2 (ff:ff:ff:ff:ff:ff) tell 10.0.0.2, length 46上面详细描述的所有行为都可以防止设备将处理周期浪费在它们不需要的数据包上,防止将内存浪费在它们不需要的表条目上。
https://networkengineering.stackexchange.com/questions/57023
复制相似问题