ARP路由式代理详解-如何给路由器设置代理

小编:霸主 更新时间:2022-08-03

一、什么是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路由式代理)

ARP路由式代理详解-如何给路由器设置代理

(二)同一VLAN下的ARP代理

实现同一网段同个vlan间的三层访问。当我们访问同一网段主机时,是不会向网关发出请求的,而是先通过广播arp包来寻找对方的mac地址,然后再根据mac地址来进行二层的访问只有访问不同网段主机时,才会请求网关,接着网关网关查找自己的路由表,如果发现有到达目的网路的路由,则用自己的mac地址做回应,因为二层流量在三层里面是被隔离的。

ARP路由式代理详解-如何给路由器设置代理

(三)不同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路由式代理详解-如何给路由器设置代理

四、路由式ARP代理实验

(一)实验拓扑

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


ARP路由式代理详解-如何给路由器设置代理ARP路由式代理详解-如何给路由器设置代理

PC1不能ping通PC2,抓包发现PC1没有去往PC2的路径,进行ARP广播

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请求。

ARP路由式代理详解-如何给路由器设置代理

但是由于PC1跟PC2属于同一网段,不同广播域,路由器是不会转发广播包的,所以PC2是收不到该ARP请求的,所以就不能进行互访,这样就可以在路由器上配置ARP代理,当路由器收到ARP请求之后,会将自己接收端口的MAC地址发送给PC1,让PC1误认为路由器接口的mac地址就是PC2的mac地址,之后的所有封装都会以此MAC作为目的MAC进行封装,这样路由器就可以识别了。

ARP路由式代理详解-如何给路由器设置代理

Hardware address 的值就是接口的Mac地址

发现与上图中ARP应答的Mac地址相同


路由器收到该比特流后,进行逐层阶层,解封二层数据帧,发现目的MAC为自己,接收。继续解封三层数据包,发现目的ip不是自己,然后路由器根据目的IP进行查表。根据到达目的IP下一跳的出接口进行转发,三层封装不变,并将源MAC地址封装为该出接口的MAC地址,但是发现不知道目的IP的MAC,无法进行二层封装,于是对IP 10.1.20.2发起ARP请求。

ARP路由式代理详解-如何给路由器设置代理

得到MAC地址之后,将重新封装好的数据发送给PC 2

ARP路由式代理详解-如何给路由器设置代理


ARP路由式代理详解-如何给路由器设置代理

G0/0/1的Mac地址为00e0-fc91-429e

PC2收到ICMP回显请求之后,会回复一个回显应答给PC1

ARP路由式代理详解-如何给路由器设置代理

源MAC为自己,目的MAC路由器接口MAC


五、路由式ARP代理特点

1. proxy ARP部署在网关上,网络中的主机不必做任何改动

2. Proxy ARP可以隐藏物理网络细节,使两个物理网络可以使用同一个网络号

3. Proxy ARP只影响主机的ARP表,对网关的ARP表和路由表没有影响