您的位置 首页 > 数码极客

如何让路由器转发ARP设置——arp在路由器中如何转发…

学过计算机网络,提起ARP协议,都知道是根据IP地址获取物理地址的一个TCP/IP协议。纯理论研究ARP显得非常枯燥,而且,往往难以真正理解它的作用。

我们从真实的环境中,分析1个最简单的场景来看看,ARP到底是怎么工作的呢。

图1 测试场景

我们来做一个最简单的操作,如图1所示,在192.168.1.1这台主机上去ping一下192.168.1.3这台主机。我们知道,主机在本地有一个ARP缓存,这个缓存存放的是IP和物理地址的映射关系。在发起ping命令前,我们在192.168.1.1这台主机上查看ARP缓存。

图2 192.168.1.1 ARP缓存

在图2中可以看到,192.168.1.1这台主机上没有任何的ARP缓存消息。此时,我们发起一个ping请求。ping命令使用的是ICMP协议,发起ICMP请求前,由于192.168.1.1这台主机只知道目的端的IP地址(192.168.1.3),并不清楚这台主机的物理地址是多少,这时,我们的ARP就登场了。192.168.1.1这台主机为了知道192.168.1.3这台主机的物理地址,发起了一个ARP请求。

图3 ARP请求报文

请求的报文内容如图3所示。可以看到,发起的ARP请求报文中0001.4341.BA4A是192.168.1.1的物理地址,而192.168.1.3由于不知道物理地址,设定为FFFF.FFFF.FFFF,代表这是一个广播ARP请求,也就是说在这个交换机下,所有的主机都会收到这个报文请求。

图4 ARP请求广播

在图4中,192.168.1.2,192.168.1.3这两台主机,都收到了192.168.1.1发起的ARP请求,主机将ARP请求包中的内容解开,查看目的的IP(192.168.1.3)是否和本机的IP一致,不一致则丢弃,一致则发起一个ARP应答请求。可以看到,192.168.1.2丢弃了这个ARP请求报文,192.168.1.3接收了这个报文。

图5 192.168.1.3接收ARP请求后缓存

于此同时,192.168.1.3在接收到这个ARP请求时,在本地缓存了192.168.1.1的物理地址。并发起了一个ARP应答请求。

图6 ARP应答报文

报文内容如图6所示,0060.2F2A.CCB2为192.168.1.3的物理地址,作为源物理地址和源IP地址,并填入我们接收到的192.168.1.1对应的物理地址0001.434A.BA4A。此时的ARP应答请求会直接通过路由器转发到我们的192.168.1.1主机上。


图7 192.168.1.1接收到ARP应答请求

192.168.1.1接收到ARP请求后,解开包获取到192.168.1.3的物理地址,并将其缓存到本地,从缓存列表中,可以看到192.168.1.3对应的物理地址。

图8 192.168.1.1缓存ARP消息

终于192.168.1.1这台主机知道了192.168.1.3的物理地址,可以发起ping命令了,实际上是一个 ICMP请求报文。192.168.1.3在接收到192.168.1.1 ICMP请求报文后,发起一个ICMP回显报文,最终被192.168.1.1接收,在命令行最终看到了我们熟知的 " Reply from 192.168.1.3"

图9 ping命令返回

反过来,当192.168.1.3发起一个ping 192.168.1.1命令请求时,由于在本地ARP缓存中已经有了192.168.1.1的物理地址,此时不再需要发起ARP查询请求,直接发起ICMP请求报文,并最终收到192.168.1.1返回的ICMP响应报文。

回过头来,再看这句话,ARP协议根据IP地址获取物理地址的一个TCP/IP协议,确确实实,当我们需要知道IP对应的物理地址时,我们的ARP就登场了:)。

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“如何让路由器转发ARP设置,arp在路由器中如何转发,路由器为何不转发arp请求,路由器不转发ARP请求”边界阅读