泰克实验室塑造 发表于 2014-4-18 14:40:00

【R&S知识点总结 1】代理ARP和静态路由要点

宗旨:积极交流学习心得,如果大家有发现写错的地方,多多指正!也希望大家早日拿到自己的IE号!

---------------------------------华丽分割线------------------------------------------

拓扑如下:

http://bbs.tech-lab.cn/data/attachment/album/201204/21/172134s0zb7mmae66m96c5.png

配置:      
      ○ R2有一条静态路由ip route 10.1.2.0 255.255.255.0 f1/0
      ○ R4有一条静态路由ip route 0.0.0.0 0.0.0.0 10.1.2.3
      ○ 其他标准配置

问题:

                ①. 在R1 ping R4的f1/0 。有什么现象,该现象说明什么?

                ②. 关闭R3的f1/0接口的代理ARP功能。
                        i. R1 ping R4的f1/0 的现象是什么?为什么?
                        ii. R2 ping R4的f1/0的现象是什么?为什么?
                        iii. 要R2 ping 通R4 需要修改什么配置?

问题解析:
①. 在R1没有到R4的路由,但仍然能够ping通。为什么呢?因为R1上配的IP地址的掩码是16位的,这意味着在R1上看来10.1.2.0/24是与自己直连的。然后R1向10.1.2.0/24发送数据包时直接在本网段广播请求目标二层链路地址,这时R3收到,又因为R3能够到达10.1.2.0/24,并且开启了代理ARP(代理ARP是这个问题的关键),所以R3能将自己接口的二层链路地址回复给R1(这一步其实就是欺骗了R1)最终R1将去网10.1.2.0/24的数据包封装为R3的二层链路地址,从而将数据包交给R3处理,所以通信成功。可以通过在R1上查看ARP表,会发现去网10.1.2.4的MAC地址是R3的f1/0接口!
②. 关闭R3的f1/0的代理ARP功能后
i. R1 ping R4不能ping通,因为R1认为目标与自己直连,所以会请求目标的二层链路地址,但这时R3关闭了代理ARP功能,即使自己与该目标地址可达,但不会使用自己的MAC地址去回复R1(可以理解这个骗子消失了),造成R1无法获得任何目标的MAC地址。可以在R1上查看ARP,会发现表中10.1.2.4的记录为Incomplete。最后导致通信失败
ii. R2 ping R4 是不通的。为什么有静态路由还不通呢?因为静态路由配置是指出接口,这意味着在R2会认为10.1.2.4/24与自己的f1/0接口直连。所以通信失败的原因与上小题R1 ping不通R4的情况相同。
iii. 在R2的静态路由配置指出接口改成指下一跳,ip route 10.1.2.0 255.255.255.0 10.1.1.3。为什么该了指下一跳就能通信成功呢?因为R2的静态路由改为下一跳10.1.1.3(R3)所以R2并不认为10.1.2.0/24是自己的直连网段,因此需要与10.1.2.0/24通信时,会请求下一条地址10.1.1.3的二层链路地址,最终将数据包交给10.1.1.3(R3)处理,通信成功。

      总结:以上实验可以看出,如果要配置静态路由时,指出接口和指下一跳是有区别的,指出接口可能因为下一跳路由关闭了代理ARP而造成通信失败,但静态路由指下一跳地址时,通信不会受到影响。这实验还可以加深对代理ARP的理解和配置静态路由指出接口和指下一跳地址的区别。

Nicholas_Hong 发表于 2014-9-29 13:47:24

路过学习一下。

phil 发表于 2014-12-23 10:39:29

Thanks for your information.

初学者16 发表于 2015-11-27 19:41:53

{:6_290:}
页: [1]
查看完整版本: 【R&S知识点总结 1】代理ARP和静态路由要点