一、什么是ARP?
对于数据的传输,我们需要知道IP地址对应的MAC地址。
那么如何才能知道对端的MAC地址?这时候要用到ARP解析。
又臭又长MAC地址(比如18:3e:ef:b9:37:11),谁也记不住也不会去记。
ARP:IP→MAC地址
PC的arp表如下:
打个比方:在一个班级中,你要打电话给小明,但你不知道电话号码,这时候你直接在班上大声问小明你的电话多少?这时候整个班的同学都能听到你声音,但其他的同学不会进行回复,只有小明进行回应,电话多少xx这个过程就是类似于ARP广播。
要了解整个过程先要知道二层广播包
二层广播包ff:ff:ff:ff:ff:ff,抓包如下
交换机接收到二层广播包,对所有的接口进行泛洪操作(将这个包发送至其他所有的接口)。
二、ARP解析流程
拓扑
1.ARP查询包
第一步
PC1,ARP查询广播,发送至交换机的G0/0接口接收到
源IP:192.168.1.1
源MAC:18:3e:ef:b9:37:11
目的IP:192.168.1.2
目的MAC:ff:ff:ff:ff:ff:ff:ff
第二步
交换机收到二层广播包(ff:ff:ff:ff:ff:ff:ff)进行泛红至所有所有端口(G0/1,G0/2,G0/3)
第三步
PC2、PC3、PC4收到
源IP:192.168.1.1
源MAC:18:3e:ef:b9:37:11
目的IP:192.168.1.2
目的MAC:ff:ff:ff:ff:ff:ff:ff
2.ARP响应包
第一步
PC2发现有人要查询自己的MAC地址,这时候回应。
PC2,ARP响应
源IP:192.168.1.2
源MAC:18:3e:ef:b9:37:12
目的IP:192.168.1.1
目的MAC:18:3e:ef:b9:37:11
第二步
交换机收到ARP响应的单播包(不是FF的),这时候交换机查询MAC地址表,目的MAC:18:3e:ef:b9:37:11
MAC地址表
18:3e:ef:b9:37:11 G0/0
18:3e:ef:b9:37:12 G0/1
18:3e:ef:b9:37:13 G0/2
18:3e:ef:b9:37:14 G0/3
查询的接口为G0/0,进行转发步骤。
第三步
PC1接收到
源IP:192.168.1.2
源MAC:18:3e:ef:b9:37:12
目的IP:192.168.1.1
目的MAC:18:3e:ef:b9:37:11
这时候将192.168.1.1对应18:3e:ef:b9:37:11加入ARP表项。
至此完成ARP查询
整个查询过程没有任何安全性可言,基本都是裸奔,这种情况之下,容易进行arp攻击,如果要保证安全性的问题,建议搭配使用dai检测加强安全性。