请帮助我对ARP请求有一个疑问。根据我的理解,IP的子网是由它的子网掩码识别的,因此请考虑以下情况:-
假设具有IP30.129.33.225的Device1需要与IP- 30.113.220.62的Device2对话。
(I)如果Device1知道Device2 IP的子网掩码-
它计算并发现Device2位于不同的子网上,因此对于通信,It将数据报(数据包)发送到默认网关--没有ARP请求。
( ii)如果Device1不知道Device2 IP的子网掩码-
这是我的怀疑。Device1是做什么的?它是否发送广播ARP请求,认为Device2与其位于同一子网?任何网络设备如何计算子网掩码,或者如何识别IP的子网并决定是ARP还是路由到网关。
这个场景很重要,因为在我的例子中,Device1是一个网络设备发现设备,它从交换机MAC表/ARP表中获取in,然后点击这些in来确定它们是否活着/存在。对于我的知识交换机,MAC表/ARP表不包含子网掩码。只有路由表有子网掩码信息,我相信。那么,Device1是否发送一个ARP广播的形式“谁有30.113.220.62(Device2 IP)”“告诉30.129.33.225(Device1 IP)”或Device1通过某种方式计算掩码,并发现Device2在不同的网络中,从而路由到默认网关?

请引导我。谢谢
发布于 2018-05-04 16:43:25
ARP请求通常仅限于广播域=本地子网或段。本地子网之外的MAC地址是没有意义的。
唯一相关的问题是,我自己子网中的目标IP地址是本地的吗?
如果是,ARP目标地址并发送给MAC。
如果没有,从路由表中选择网关,ARP网关的IP地址并发送到该MAC。
要找出目标IP地址是否在您自己的子网中,您可以按位使用网络掩码来查找您自己的IP地址,从而得到您的子网地址。然后使用网络掩码按位和目标IP地址,并将结果与您自己的子网地址进行比较。如果两个子网地址相同,则目标是本地地址。
如果您打算发现远程设备的MAC地址(无论出于什么原因),您必须在适当的子网中找到(或安装)一个设备,该设备可以ARP IP地址并告诉您MAC地址。
发现远程设备要比本地设备难得多(只要尝试ARP,当你得到答案时,你就知道它就在那里)。您只能通过使用IP/layer 3功能来检测远程设备,因为这些功能可以路由。
您可以尝试ping一个设备(该设备可能选择不回答,或者回显请求或回复在途中被过滤),或者您可以尝试连接到某个公共端口。如果失败,您可以分析ICMP应答(设备请求可能会主动拒绝连接,或者路由器可能会告诉您那里没有人)。但是,如果你什么也得不到,你就不能确定那里什么也没有。
发布于 2018-05-04 07:50:02
设备永远不知道另一个设备的子网掩码。
设备知道它的IP地址和它自己的子网掩码,并且基于这个信息知道它驻留在哪个网络中。
当主机A向主机A发送数据包时,它仅通过查找B的IP地址来确定B是否在本地网络中。
主机A: IP 30.129.33.225 -子网掩码255.255.255.0。
-> A属于网络30.129.33.0/24。
该网络包含IP地址30.129.33.1至30.129.33.255 (广播地址)。
主机B: IP 30.113.220.62。
此IP不在同一网络中,因此如果主机A向B发送数据包,它将发送到网关。
主机A: IP 30.129.33.225 -子网掩码255.0.0.0 -> A属于网络30.129.33.0/8此网络包含IP地址30.0.0.1至30.255.255.255 (广播地址)
主机B: IP 30.113.220.62。
这个IP位于同一个网络中,所以主机A可以直接发送一个数据包到主机B,它将执行一个ARP请求来查找B的MAC地址。
备注:
发布于 2018-05-04 07:49:29
设备只知道它自己的子网掩码,它帮助设备计算它属于哪个网络。
网络之外的一切都必须通过默认网关,网络中的一切都必须使用ARP来发现。
在您的示例中,设备1具有IP 30.129.33.225。
( a)如果子网掩码为255.255.255.0,则:
网络是从30.129.33.0到30.129.33.255的。该范围以外的所有东西都会进入默认网关。
然而,
( b)如果子网掩码为255.255.0.0,则:
网络更宽(从30.129.0.0到30.129.255.255),而且这个范围之外的所有东西都会进入默认网关。
https://networkengineering.stackexchange.com/questions/50278
复制相似问题