ARP代理分析
PC1和PC2仅有IP和MASK,没有GW
R1的G0/0/0上仅配置IP ADDRESS 和ARP代理
R1的G0/0/1上仅配置IP ADDRESS
以上是实验截图
PC1共PING 5次,下面将拆解每次数据流转过程。
1.1、PC1发起PING命令,目的IP 1.1.2.1,此时PC1的IP协议进行判断,本地网络号为1.1.0.0,目标IP使用本地MASK计算得出目标网络号为1.1.0.0,属于同一网络
1.2、因此PC1将查询本地ARP表,查看是否有1.1.2.1的ARP映射关系,又因为本地之前没有通信过,因此本地ARP表为空,没有1.1.2.1的映射
1.3、然后PC1将PING命令请求挂起,转而发起ARP请求,来询问1.1.2.1的MAC,此时发出的ARP包,源MAC为本地MAC(PC1 MAC),目的MAC为广播MAC(FF: FF: FF: FF: FF: FF),源IP为本地IP(PC1 IP),目的IP为1.1.2.1
1.4、R1的G0/0/0口收到数据包后,由G0/0/0口的网卡控制单元分析数据帧,发现目的MAC为广播MAC于是收下,并交由上层IPV4协议进行处理
1.5、IP协议分析数据包后,发现这是一条ARP请求数据包,本应比对该请求的目的IP和本地IP是否一致,再决定丢弃还是回复,却由于本地开启了ARP代理,因此将不再比对,直接由本地回复ARP请求,发送一条源MAC为本地MAC(R1 G0/0/0 MAC),目的MAC为ARP请求中的源MAC(PC1 MAC),源IP为ARP请求中的目的IP(1.1.2.1),目的IP为ARP请求中的源IP(PC1 IP)的单播ARP回复包
1.6、PC1在收到ARP回复后,发现目的MAC为本机MAC于是收下,并将ARP回应加入到本地的ARP映射表中,IP为ARP回应的源IP(1.1.2.1),MAC为ARP回应的源MAC(R1 G0/0/0 MAC),再将被挂起的PING命令数据包发送给回应ARP请求的MAC(R1 G0/0/0 MAC)
1.7、R1的G0/0/0口收到数据包后,由G0/0/0口的网卡控制单元分析数据帧,发现目的MAC为本地MAC于是收下,并交由上层IPV4协议进行处理
1.8、IP协议分析数据包后,发现这是一条单播的数据包,目的IP为1.1.2.1,使用本地MASK计算得出目标网络号为1.1.2.0,不属于同一网络,于是将该IP和本地路由表进行匹配,而路由器此时的路由表如下图可以发现,在将目的IP 1.1.2.1和每条路由的子网掩码相与后得到网络号,再和路由表的目标网段进行对比,匹配上了1.1.2.0/24网段的路由条目,便将该数据转交给G0/0/1口处理
1.9、G0/0/1口收到数据后,使用本地MASK计算得出目标网络号为1.1.2.0,属于同一网络,则查看本地ARP表,发现没有目的IP(1.1.2.1)的ARP映射,于是发起ARP请求,来询问1.1.2.1的MAC,源MAC为本地MAC(R1 G0/0/1 MAC),目的MAC为广播MAC(FF: FF: FF: FF: FF: FF),源IP为本地IP(R1 G0/0/1 IP),目的IP为1.1.2.1,同时将该数据请求丢弃
1.10、PC2在收到数据包后,由网卡控制单元分析数据帧,发现目的MAC为广播MAC于是收下,并交由上层IPV4协议进行处理
1.11、IP协议分析数据包后,发现这是一条ARP请求数据包,比对该请求的目的IP和本地IP,发现一致,于是回复ARP请求,发送一条源MAC为本地MAC(PC2 MAC),目的MAC为ARP请求中的源MAC(R1 G0/0/1 MAC),源IP为本地IP(PC2 IP),目的IP为ARP请求中的源IP(R1 G0/0/1 IP)的单播ARP回复包
1.12、R1的G0/0/1口收到数据包后,由G0/0/1口的网卡控制单元分析数据帧,发现目的MAC为本机MAC于是收下,并将ARP回应加入到本地的ARP映射表中,至此第一个PING包引发的一系列数据流转已经结束
2.1、PC1发起PING命令,目的IP 1.1.2.1,此时PC1的IP协议进行判断,本地网络号为1.1.0.0,目标IP使用本地MASK计算得出目标网络号为1.1.0.0,属于同一网络
2.2、因此PC1将查询本地ARP表,查看是否有1.1.2.1的ARP映射关系,发现本地存在1.1.2.1的ARP映射,因此直接将数据发送给目的MAC(R1 G0/0/0 MAC)
2.3、R1的G0/0/0口收到数据包后,由G0/0/0口的网卡控制单元分析数据帧,发现目的MAC为本机MAC于是收下,并交由上层IPV4协议进行处理
2.4、IP协议分析数据包后,发现这是一条单播的数据包,目的IP为1.1.2.1,使用本地MASK计算得出目标网络号为1.1.2.0,不属于同一网络,于是将该IP和本地路由表进行匹配,匹配过程不再赘述,最终数据交由G0/0/1口处理
2.5、G0/0/1口收到数据后,使用本地MASK计算得出目标网络号为1.1.2.0,属于同一网络,则查看本地ARP表,发现存在目的IP(1.1.2.1)的ARP映射,则将该数据发出,源MAC为本地MAC(R1 G0/0/1 MAC),目的MAC为PC2 MAC
2.6、PC2在收到数据包后,由网卡控制单元分析数据帧,发现目的MAC为本地MAC于是收下,并交由上层IPV4协议进行处理
2.7、PC2对该PING命令进行回复,发送ECHO REPLY包,源IP为本机IP(PC2 IP),目的IP为收到的ECHO包的源IP(PC1 IP),源MAC为本地MAC(PC2 MAC),目的MAC为收到的ECHO包的源MAC(R1 G0/0/1 MAC)
2.8、R1的G0/0/1口收到数据包后,由G0/0/1口的网卡控制单元分析数据帧,发现目的MAC为本机MAC于是收下,并交由上层IPV4协议进行处理
2.9、IP协议分析数据包后,发现这是一条单播的数据包,目的IP为1.1.1.1,使用本地MASK计算得出目标网络号为1.1.1.0,不属于同一网络,于是将该IP和本地路由表进行匹配,匹配过程不再赘述,最终数据交由G0/0/0口处理
2.10、G0/0/0口收到数据后,使用本地MASK计算得出目标网络号为1.1.1.0,属于同一网络,则查看本地ARP表,发现不存在目的IP(1.1.1.1)的ARP映射,于是发起ARP请求,来询问1.1.1.1的MAC,源MAC为本地MAC(R1 G0/0/0 MAC),目的MAC为广播MAC(FF: FF: FF: FF: FF: FF),源IP为本地IP(R1 G0/0/0 IP),目的IP为1.1.1.1,同时将该数据请求丢弃
2.11、PC1在收到数据包后,由网卡控制单元分析数据帧,发现目的MAC为广播MAC于是收下,并交由上层IPV4协议进行处理
2.12、IP协议分析数据包后,发现这是一条ARP请求数据包,比对该请求的目的IP和本地IP,发现一致,于是回复ARP请求,发送一条源MAC为本地MAC(PC1 MAC),目的MAC为ARP请求中的源MAC(R1 G0/0/0 MAC),源IP为本地IP(PC1 IP),目的IP为ARP请求中的源IP(R1 G0/0/0 IP)的单播ARP回复包
2.13、R1的G0/0/0口收到数据包后,由G0/0/0口的网卡控制单元分析数据帧,发现目的MAC为本机MAC于是收下,并将ARP回应加入到本地的ARP映射表中,IP为ARP回应的源IP(1.1.1.1),MAC为ARP回应的源MAC(PC1 MAC),至此第二个PING包引发的一系列数据流转已经结束
3.1、PC1发起PING命令,目的IP 1.1.2.1,此时PC1的IP协议进行判断,本地网络号为1.1.0.0,目标IP使用本地MASK计算得出目标网络号为1.1.0.0,属于同一网络
3.2、因此PC1将查询本地ARP表,查看是否有1.1.2.1的ARP映射关系,发现本地存在1.1.2.1的ARP映射,因此直接将数据发送给目的MAC(R1 G0/0/0 MAC)
3.3、R1的G0/0/0口收到数据包后,由G0/0/0口的网卡控制单元分析数据帧,发现目的MAC为本机MAC于是收下,并交由上层IPV4协议进行处理
3.4、IP协议分析数据包后,发现这是一条单播的数据包,目的IP为1.1.2.1,使用本地MASK计算得出目标网络号为1.1.2.0,不属于同一网络,于是将该IP和本地路由表进行匹配,匹配过程不再赘述,最终数据交由G0/0/1口处理
3.5、G0/0/1口收到数据后,使用本地MASK计算得出目标网络号为1.1.2.0,属于同一网络,则查看本地ARP表,发现存在目的IP(1.1.2.1)的ARP映射,则将该数据发出,源MAC为本地MAC(R1 G0/0/1 MAC),目的MAC为PC2 MAC
3.6、PC2在收到数据包后,由网卡控制单元分析数据帧,发现目的MAC为本地MAC于是收下,并交由上层IPV4协议进行处理
3.7、PC2对该PING命令进行回复,发送ECHO REPLY包,源IP为本机IP(PC2 IP),目的IP为收到的ECHO包的源IP(PC1 IP 1.1.1.1),源MAC为本地MAC(PC2 MAC),目的MAC为收到的ECHO包的源MAC(R1 G0/0/1 MAC)
3.8、R1的G0/0/1口收到数据包后,由G0/0/1口的网卡控制单元分析数据帧,发现目的MAC为本机MAC于是收下,并交由上层IPV4协议进行处理
3.9、IP协议分析数据包后,发现这是一条单播的数据包,目的IP为1.1.1.1,使用本地MASK计算得出目标网络号为1.1.1.0,不属于同一网络,于是将该IP和本地路由表进行匹配,匹配过程不再赘述,最终数据交由G0/0/0口处理
3.10、G0/0/0口收到数据后,使用本地MASK计算得出目标网络号为1.1.1.0,属于同一网络,则查看本地ARP表,发现存在目的IP(1.1.1.1)的ARP映射,则将该数据发出,源MAC为本地MAC(R1 G0/0/0 MAC),目的MAC为PC1 MAC
3.11、PC2在收到数据包后,由网卡控制单元分析数据帧,发现目的MAC为本地MAC于是收下,并交由上层IPV4协议进行处理,至此第三个PING包引发的一系列数据流转已经结束,后面的2个PING命令的数据流转和第三个PING命令一致。