一、概念
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。
二、为什么需要ARP协议
OSI模型中,发送方的数据包装好后,往下传递到第三层需要知道源ip和目的ip,二层需要知道源mac地址和目的mac地址, 因为以太网基于mac地址转发。有了源目ip和mac地址这4个参数,数据包才能正常发送出去。
源ip和源mac可以通过接口获取到,目的ip是人为告知的,只有目的mac地址未知,这就是ARP的作用,根据目的ip找到对应的mac地址
三、做个实验
R1是交换机,R2、R3模拟电脑客户端,R2 f0/0 10.1.1.2/24,R3 f0/0 10.1.1.3/24
![](https://img.haomeiwen.com/i7129154/ac5dd8cbf361c8fb.png)
在R2上 ping 10.1.1.3,ARP请求包如下:
![](https://img.haomeiwen.com/i7129154/174383cd14a456c1.png)
二层发送的是广播包询问哪个客户端的ip是10.1.1.3,其他所有客户端都能收到,如果ip不是10.1.1.3丢弃,是10.1.1.3就发送ARP响应包,这样R2就能知道R3 f0/0的mac地址,数据包才能正常发送,如下:
![](https://img.haomeiwen.com/i7129154/650ef57651412ac0.png)
从图中看出处于OSI模型第三层,第三层协议不一定是IP协议,比如这里的ARP协议
查看R2客户端上的arp表,显示了ip和mac地址对应关系
Age表示信息已存在时间,默认4h后重新发arp获取mac地址,-表示永久(因为是本机接口)。
R2#show arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 10.1.1.2 - c002.18b0.0000 ARPA FastEthernet0/0
Internet 10.1.1.3 98 c003.0f54.0000 ARPA FastEthernet0/0
交换机上的mac地址表是如何形成的
R2发送ARP的请求包中有源mac地址,经过交换机时R1 f1/0接口时,交换机将自己接口f1/0和R2 mac地址绑定。R3发送响应ARP包中也包含源mac地址,经过交换机R1 f1/1接口时,交换机将接口f1/1和R3 mac地址绑定。
使用这种方式形成了交换机中接口和mac地址的对应关系,当ping数据包发送过来后,通过该数据库查询目的mac对应的接口把数据包转发出去。功能类似路由器中的路由表。
R1#show mac-address-table
Destination Address Address Type VLAN Destination Port
------------------- ------------ ---- --------------------
c001.184c.0000 Self 1 Vlan1
c002.18b0.0000 Dynamic 1 FastEthernet1/0
c003.0f54.0000 Dynamic 1 FastEthernet1/1
查看发送的数据包
![](https://img.haomeiwen.com/i7129154/d14f44ae6afe3141.png)
从图中看出处于OSI模型第四层,第四层协议不一定是TCP、UDP,比如这里的ICMP协议。
网友评论