因为关于代理ARP的实验仍有些续疑问,同时路由重定向实验又想到了一个小实验,故本文用来解决一部分上述实验中所留下的问题。

1.关于一个广播的ARP应答

在代理ARP实验中,抓到了一个广播的ARP应答包,一直比较怀疑其用途,在接下来做的其他一些实验中,有抓到过这样的ARP包,但是目前仍无法指出其作用。

首先说明一下环境,在接口为配置好的情况下,本人就预先对各接口进行了抓包的设置,然后,路由器是一台台的配的,然后抓到了该ARP包,如图1

 

1  R1上的广播ARP应答包

代理ARP实验(续一)_休闲  

如图所示,R1R2R3每台路由器在接口no shutdown后都发送了这个广播的ARP应答包,很类似于无故ARP的性质,但是路由器却没有更新自己的CAM表,如图2,这与无故ARP的作用不符,故现在仍无法确定这种广播的ARP应答是哪一类,做何用。

 

2  R1 CAM

 

代理ARP实验(续一)_职场_02  

同时,在开启ARP debug信息后,又得到了如下信息,如图34

 

3  R1 clear arp-cache后的debug信息

 

代理ARP实验(续一)_代理ARP_03

4  R2ARPdebug信息

 

代理ARP实验(续一)_休闲_04  

    从图3上可以看出,在清除ARP缓存之后,发出了一条广播的应答,然后收到了这条应答,但从图4中可以看出,R2 却收到了两条应答,同时对比两条消息的时间差,R1发收的时间差明显大与R2收两条的时间差,所以可以推断这个ARP信息是在网络中“绕”了一圈之后才回来的。如果这么看得话,再加上R2R3都没有更新自己的ARP表,联想反向ARP的作用,因此我猜测这条广播ARP应答是为了告诉路由器它自己的MAC地址是什么。但是问题又来了,R1只发了一条出去,但是R2R3都收到了两条,谁第二次向网络中的所有设备发送了这条广播?我没想出来,继续留疑。

2.主机的无故ARP包,及主机将网关指向自己时的ping实验

在卷一的代理ARP那一节中,书中讲不配网关的主机会发去往不同网段的ARP查询,经验证这句话是错误的;在其下一节ICMP中,又讲到主机将网关指向自己,会发出ARP查询,可以避免路由重定向。随后在用路由器模拟的主机上进行的实验都失败了,偶然间想到可以用虚拟机来进行实验(本人使用的是vista系统,不敢装wincap这个东西,故无法在vista下进行抓包),故在虚拟机中对其网口进行了抓包,抓到了主机的无故ARP包,如图5

 

5  虚拟机无故ARP抓包

代理ARP实验(续一)_职场_05

6  主机将网关指向自己的ARP查询抓包

代理ARP实验(续一)_职场_06

 

 

    如图5,这是个广播的ARP,是一个ARP请求,源/目地址都是192.168.240.128,与书中对无故ARP的描述一致。

 

下面,我们将虚拟机的网关指向自己,然后再ping一下其他网段,结果如图6

由图6,可知虚拟机对与自己不在同一网段内的IP地址进行了ARP查询,只是未收到应答。如果这台主机接在网关路由器上,并且路由器开启了代理ARP功能,那么这台主机将是可以上网的,同时这也验证了ICMP一节中“主机将网关指向自己可避免路由重定向”是正确的。

3.代理ARP与负载实验

3.1实验目的

在上一个ICMP路由重定向实验的最后一部分,一个解决重定向的方案实验中,突然又构想了另一个实验,就是模拟主机的R1不配网关,而与之相连的R2R3到指定网段又具有相同的度量,那么R1将会接受谁的代理ARP,因此设计拓扑进行实验。

3.2实验设计

1.         R1模拟主机,不指网关。

2.         R2R3具有到达同R6环回6.6.6.6/24的路由,且度量相同。

3.         R2R3R4R5R6运行eigrp协议。

3.3实验拓扑

 

代理ARP实验(续一)_职场_07

3.4实验结果

仍然省略相关配置。

首先,在R6ping R1,多ping几次,直至ping通。我们在R1上开启debug信息,结果如图7R1ARP表如图8所示。

 

7  R1上信息

 

代理ARP实验(续一)_职场_08

8  R1 ARP

 

代理ARP实验(续一)_休闲_09  

可看出,当R6使用命令ping 123.1.1.1时,R1发出了ARP查询,多ping几次之后就通了。但是由图7中可看出,目的地址都是56.1.1.6,即说明ping的来源都是56.1.1.6。图8验证了这一点,因为R1只拿到了56.1.1.6ARP地址(当然是被代理的),由抓包也可以看出,R6只使用自己的56.1.1.6接口去往123.1.1.0/24网段。

但是这就又出现了一个问题,首先看R6的路由表,如图9

 

9  R6路由表

 

代理ARP实验(续一)_职场_10  

由图9可看出,去往123.1.1.0/24网段是负载均衡的,也就是说,两条链路会交替使用的,但是当用简易的ping的时候,只使用了一条。这点我还不清楚,也许和默认的模块有关。

简易的ping或许不能负载均衡,下面来进行拓展的ping,将源地址设为6.6.6.6。结果仍然是R6使用了s1/0接口进行了转发。这个可以通过抓R6两个接口的包看出来,图我就不发了,因为只发一个图,没法证明些什么,有怀疑的还是自己敲敲实验吧。

下面在R1ping 6.6.6.6。如果上述的拓展ping做通了,需清一下R1上的ARP表,结果如图10

 

10  R1debug信息

 

代理ARP实验(续一)_休闲_11  

因为R2R3均有到达6.6.6.6的路由,由debug信息也可以看到,R2R3均给R1做出了代理ARP的应答,但是R2的代理ARP来的要晚一些,因此R1使用R2为自己进行ARP代理。

因此,在这种情况下,主机将会使用ARP应答较晚的路由器为其进行代理。

下面,再看一个有趣的现象,在R6上用拓展pingping 123.1.1.2,结果如图11

11  R2debug信息

 

代理ARP实验(续一)_休闲_12

 

debug信息可知,数据来源均是由F0/0接口来的,应答ping的时候全是由S1/1口走的,也就是说R6没有使用负载均衡,而且数据在网络中不是按原路返回,走了另一条路径回去,也就是说此种网络架构产生了不对称流量。

 

12  R6debug信息

 

代理ARP实验(续一)_休闲_13

 

下面把开启R1的路由功能,运行eigrp,看看负载均衡是否会进行。结过很不幸,仍是没有,所以我怀疑这是不是拓扑的问题,过模拟器的问题,于是我将R1R2R3之间都换成了串线。同样还是没看到什么负载均衡,反而还看到了不对称流量,如图12。可能是模拟器原因,也可能配置上有失误,这问题也留待解决吧,等将来更新了设备,又或是开到eigrp的负载均衡,再考虑此问题。

3.5总结

1.         主机将网关指向自己,会发出不同网段的ARP查询。

2.         ARP缓存会被更新,储存接收到的最晚的ARP信息。

3.6存疑点

1.         eigrp的负载均衡问题。

2.         广播ARP应答的类型及作用,以及图4中第二条ARP信息由何而来