Arp proxy

Zss 发表于:

Arp proxy

原理:

如果PC3/PC4 不停往后台(PC1/PC2)发arp request 报文,这些报文也会在无线PC3,PC4之间相互传输,在robot 现网中,会出现arp风暴导致成批机器人掉线

功能介绍:

Eg:PC3/PC4发一个arp request 报文查询PC1/PC2,这个报文被PC1/PC2收到之后,PC1/PC2会应答arp reply,这个arp reply经过A8N的时候我们会提取这个报文的源MAC和源IP,放在我们自己的ARP table里面,这个arb 条目有效时间是默认是1分钟(可配),也就是说一分钟之后这个条目会自动删除,每个radio 的最大ARP条目数默认是512(可配),当PC3,PC4 在之前添加的PC1,PC2条目没过期之前,再往外发送ARP request报文的时候,在我们A8N里面会挡掉,也就是不会再这个报文转发给PC1/PC2,他会帮助PC1/PC2应答一个arp reply 给PC3/PC4,也就是ARP代理功能。这样做的好处就是减少了很多ARP request在PC3,PC4之间传输,PC3发给PC1的ARP request报文一分钟之内最多只有一个可以转发到PC4,防止了ARP风暴的发生

环境:

准备软件:wireshark(抓包软件),Colasoft packet Builder(发包软件)。

注意:目前此功能只支持非11AC网卡。测试时vap内部隔离,vap之间的隔离全部关掉。否则测试不准确。

发ARP包方法:

  1. 安装Colasoft packet Builder。
  2. 打开软件创建arp 报文。

源MAC填你发包网卡的MAC,源IP填发包网卡的IP,目的IP填你想知道的对端的PC的IP。创建一个ARP request 报文。准备发送。

选择发包网卡。

选择改好的报文,发送。

Test case 1

PC3/PC4 接在同一个radio 的同一个vap上,enable arp proxy(default enable,no web page)

Test case 2

PC3/PC4 接在同一个radio 的不同vap上,enable arp proxy.

Test case 3

PC3/PC4 接在不同radio的不同vap上,enable arp proxy

Result:

在PC3上往PC1/PC2发多个ARP request 报文。

在PC4上往PC1/PC2发多个ARP request 报文。

在PC1,PC2 上抓包,1分分钟之内由PC3/PC4发出去的ARP request 报文不超过1个是合格的。

在PC3,PC4上抓包,每发出去一个request都有应答认为是合格的。

PC3 和PC4之间1分支之内最多收到一个对方发出的ARP request是合格的。

 

检查arp proxy是否开启的方法:

uci -c /etc/awrt/config/ show wireless | grep altai_arp_proxy

1是开启/0是关闭

串口查看功能是否开启:

iwpriv athXXX g_altai_proxyarp

打开串口调试打印命令:

echo 8 > /proc/sys/kernel/printk

打开串口打印之后,用iwpriv athXXX g_altai_proxyarp还可以查看我们创建的arp表(最后一列是该表项的创建时长,单位毫秒)。

 

 

测试结果:

Test case 1

PC3/PC4 接在同一个radio 的同一个vap上

1.PC3发包总数为无限制,相邻之间的两个数据包之间无延时,循环间隔时间为10ms

2.PC1每分钟收到一个来自PC3或者PC4的arp请求包,并回复arp响应包,时间间隔如图:

3.PC4每分钟最多接收到一个来自PC3的arp请求包,时间间隔如图:

4.每个PC3、PC4发出去的请求都有回复,如图:

 

Test case 2

PC3/PC4 接在同一个radio 的不同vap上(2.4g)

1.PC3发包总数为无限制,相邻之间的两个数据包之间无延时,循环间隔时间为10ms

2.PC1每分钟收到一个来自PC3的arp请求包,并回复arp响应包,时间间隔如图:

3.PC4每分钟最多接收到一个来自PC3的arp请求包,时间间隔如图:

4.

PC3/PC4 接在同一个radio 的不同vap上(5g)

PC1/PC4均只能每分钟获取到一个请求报文

 

Test case 3

PC3/PC4 接在不同radio的不同vap上(2.4g)

1.PC3发包总数为无限制,相邻之间的两个数据包之间无延时,循环间隔时间为10ms

2.PC1每分钟收到一个来自PC3的arp请求包,并回复arp响应包,时间间隔如图:

3.PC4每分钟最多接收到一个来自PC3的arp请求包,时间间隔如图:

PC3/PC4 接在不同radio的不同vap上(5g)

PC1/PC4均只能每分钟获取到一个请求报文