ARP路由式代理详解-如何给路由器设置代理
一、什么是ARP代理
ARP原理是在同一网段下,发送广播请求单播回应,实现通信,在不同网段的时候,通常需要请求网关查询目标MAC地址从而实现通信。所以,就会出现占用网关资源表的问题。从而降低转发效率。在这种情况下,让两台主机之间中介成为ARP代理,避免这一问题
二、ARP代理的条件
1. 路由器上有到达对方的条目
2. 华为设备开启ARP代理功能
三、如何实现ARP代理
以主机A请求主机B为例:
1、主机A发送arp广播报文,请求主机B MAC地址。
2、PE1收到广播请求后,首先判断自己是不是目标MAC地址(发现不是,则查找到达目标MAC的路径)
3、如果发现有到达目标MAC的路由,则查询是否开启ARP代理:如果发现开启了ARP代理,则将自己接口的MAC地址发送给主机A;如果发现没有开启,则丢弃该报文。
4、如果没有收到主机B的路由,则丢弃报文。
5、收到报文后,单播回应给主机A。
(一)路由ARP代理(下文将详细讲述ARP路由式代理)
(二)同一VLAN下的ARP代理
实现同一网段同个vlan间的三层访问。当我们访问同一网段主机时,是不会向网关发出请求的,而是先通过广播arp包来寻找对方的mac地址,然后再根据mac地址来进行二层的访问只有访问不同网段主机时,才会请求网关,接着网关网关查找自己的路由表,如果发现有到达目的网路的路由,则用自己的mac地址做回应,因为二层流量在三层里面是被隔离的。
(三)不同VLAN下的ARP代理
1. HostA (VLAN3)希望与另一主机HostB (VLAN2)之间通信,HostA直接发送了 ARP请求,请求内容包括:源IP、源MAC、VLANtag标签、目的IP ;
2. 运行代理ARP的装置收到ARP请求后,查找本地ARP缓存列表,如果找到对应的表项(包括HostB的IP、MAC)则代理ARP立即回应HostA关于去目的HostB的相关信息;如果没找到对应的表项,代理ARP会预先将不同VLAN间的不同网段缓存至列表中;
3. 当收到源地址去往某个网段的帧时查找代理ARP缓存列表中的网段,然后将此数据包在对应的VLAN区域内广播(避免全网广播导致全网效率降低,加快请求回应速率);
4. HostB在收到广播后,回应ARP响应,通告自己的MAC地址,代理ARP装置收到ARP请求后向HostA通告HostB的MAC。
四、路由式ARP代理实验
(一)实验拓扑
(二)实验要求
PC1和PC2属于同一网段,需要PC1可以与PC2互通,
(三)实验过程
1、配置IP地址,检验直连的连通性
[R1-GigabitEthernet0/0/0]ip add 10.1.10.3 24
[R1-GigabitEthernet0/0/1]ip add 10.1.20.3 24
PC1不能ping通PC2,抓包发现PC1没有去往PC2的路径,进行ARP广播
2、在R1的接口上开启ARP代理
[R1-GigabitEthernet0/0/0]arp-proxy enable
[R1-GigabitEthernet0/0/1]arp-proxy enable
3、在PC1上ping PC2进行验证
(四)实验分析
在PC1上 ping PC2,发现跟自己的同一网段,PC会通过IGMP发送一个回显请求给对方,进行二层封装,发现不知道 PC2的mac地址,查找本地ARP缓存表,发现为空,于是发起ARP请求。
但是由于PC1跟PC2属于同一网段,不同广播域,路由器是不会转发广播包的,所以PC2是收不到该ARP请求的,所以就不能进行互访,这样就可以在路由器上配置ARP代理,当路由器收到ARP请求之后,会将自己接收端口的MAC地址发送给PC1,让PC1误认为路由器接口的mac地址就是PC2的mac地址,之后的所有封装都会以此MAC作为目的MAC进行封装,这样路由器就可以识别了。
Hardware address 的值就是接口的Mac地址
发现与上图中ARP应答的Mac地址相同
路由器收到该比特流后,进行逐层阶层,解封二层数据帧,发现目的MAC为自己,接收。继续解封三层数据包,发现目的ip不是自己,然后路由器根据目的IP进行查表。根据到达目的IP下一跳的出接口进行转发,三层封装不变,并将源MAC地址封装为该出接口的MAC地址,但是发现不知道目的IP的MAC,无法进行二层封装,于是对IP 10.1.20.2发起ARP请求。
得到MAC地址之后,将重新封装好的数据发送给PC 2
G0/0/1的Mac地址为00e0-fc91-429e
PC2收到ICMP回显请求之后,会回复一个回显应答给PC1
源MAC为自己,目的MAC路由器接口MAC
五、路由式ARP代理特点
1. proxy ARP部署在网关上,网络中的主机不必做任何改动
2. Proxy ARP可以隐藏物理网络细节,使两个物理网络可以使用同一个网络号
3. Proxy ARP只影响主机的ARP表,对网关的ARP表和路由表没有影响