ARP地址解析详细流程(一)

一、概述

1、ARP工作原理:根据IP找MAC

2、ARP解析分为两种情况:

  • 目的IP与我在同一个网段,ARP直接请求目的IP的MAC地址

  • 目的IP与我不在同一个网段,ARP请求自己网关的MAC地址

这篇文章详细分析了第2种情况,即目的IP与我不在同一个网段时,ARP请求的具体流程。

 

二、实验验证

1、实验拓扑

此实验拓扑使用GNS3模拟器搭建的,SW1上配置了2个SVI接口,192.168.10.254和192.168.20.254作为vlan 10、vlan 20 PC的网关。

ARP地址解析详细流程(一)_第1张图片

2、实验步骤

(1)先看sw1的MAC地址表,所有SVI接口的MAC地址是一样的!!!

         ARP地址解析详细流程(一)_第2张图片

(2)先来听我分析一下PC1 ping PC3时ARP解析的流程:

  • PC1 ping PC3封装数据帧时,发现自己本地没有目的MAC,需要发送ARP请求

  • PC1、PC3不在同一个网段,所以ARP请求的是自己网关的MAC地址,PC1的ARP缓存表中没有自己网关的MAC地址,发送ARP请求报文,源MAC为PC1的MAC,目的MAC为12个F,ARP请求的数据部分:谁是192.168.10.254,把你的MAC发给我

  • SW1收到ARP请求以后,封装ARP响应报文,将自己的MAC(192.168.10.254的MAC)告诉PC1

  • PC1知道自己网关的MAC以后,重新封装二层数据帧,源MAC为PC1的MAC,目的MAC为网关的MAC,数据帧发送给SW1

  • 数据帧到达SW1以后,目的MAC是自己的,拆掉二层帧头,查看目的IP为192.168.20.1

  • SW1的ARP缓存表中没有192.168.20.1对应的MAC地址,发送ARP请求,源MAC为PC3网关的MAC(和PC1网关的MAC一致),目的MAC为12个F,ARP请求的数据部分:谁是192.168.20.1,把你的MAC发给192.168.20.254

  • PC3收到ARP请求以后,封装ARP响应报文,将自己的MAC告诉自己的网关(SW1)

  • SW1收到以后,重新封装二层数据帧,源MAC为PC3网关的MAC,目的MAC为PC3的MAC

  • 数据帧到达PC3,目的MAC是自己的,拆掉二层帧头,查看目的IP也是自己,拆掉IP头部,查看目的端口号,最后将数据扔给应用层对应的业务

(3)口说无凭,接下来我们用wireshark抓包验证我说的对不对~

    抓包分析:pc1 ping pc3时(可同时在sw1的f0/1、f0/3,pc1的f0/0,pc3的f0/0开启抓包一起分析)

  • 由于不在同一网段,pc1先请求自己网关192.168.10.254的MAC(在pc1的f0/0接口抓包)

  • 在sw1的f0/1接口抓包

  • 由于pc1发送的ARP请求是广播帧,所以sw1也会泛洪到其他接口,但不会收到ARP响应(在sw1的f0/2、f0/3接口抓包)

  • 由于sw1的ARP缓存表中也没有pc3的MAC,继续发送ARP请求pc3的MAC(在sw1的f0/3接口抓包)

  • pc3发送ARP响应报文(在pc3的f0/0接口抓包)

(4)最终sw1的ARP缓存表如下

         ARP地址解析详细流程(一)_第3张图片

 

结语:至于 “ 目的IP与我在同一个网段,ARP直接请求目的IP的MAC地址 ” 的情况,大家可以自己动手试一试。最后问大家一个问题:ARP缓存表中的条目老化时间是多少呢?MAC地址表中的条目老化时间呢?欢迎大家在评论区留言~

你可能感兴趣的:(ARP,思科,网络,网关)