正文

静态路由使用下一跳和出接口的区别2009-12-03 23:03:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/xboy/50209.html

分享到:

 

    在配置静态路由时,下一跳可以使用下一路由器的IP地址,也可以使用本路由器的出站接口。在点对点的网络中,两者可能没有什么差别,但在以太网中,两者有很大差别。


在以太网中,两个相邻接口之间的通信是依靠MAC地址。相邻接口通信时,需要知道对方的MAC地址,根据MAC地址,将通信数据转换成数据帧后交付给网络,进而到对方。而对方MAC地址的获得,是通过第二层数据帧广播,由ARP协议完成的。

当静态路由中使用出站接口做为下一跳时,路由器会认为目标网络和接口处在“直连网络”中。看下图的拓扑:


在路由器R1中的静态路由为 ip route 192.168.2.0 255.255.255.0 fastethernet0/1 时,R1就认为192.168.2.0/24网络和自己直连。可以在R1中使用 show ip route 命令看出,如下图示

在以太网中,直连网络中主机间的通信是通过ARP协议广播来获取到要交付的目标主机的MAC地址的。也就是说,当R1左侧网络中的PC1要和R2右侧网络的PC2和PC3通信时,数据传递到R1时,R1看到目标网络是自己的直连网络(由于静态路由中指定下一跳为自身接口所致),于是R1就要在F0/1所处网络发出ARP请求广播,来寻找192.168.2.11/12对应的MAC地址。


这时,如果R2启用了ARP代理,那么R2将代替PC2和PC3应答此ARP请求,也就是说返回给R1:192.168.2.11和12对应的MAC地址是R2的F0/1接口MAC。这样,R1中将产生两条ARP缓存记录,分别为:

        192.168.2.11 R2的F0/1的MAC

        192.168.2.12 R2的F0/1的MAC

在PC1上分别PING 192.168.11和12,然后在R1上使用show arp命令查看到的结果如下图示:

c803.0f8c.0001正是R2的F0/1接口的MAC。

      
当R2中没有启用ARP代理时,PC1和PC2、PC3将不能正常通信。

【在接口模式下:no ip proxy-arp,关闭ARP代理】


从上述实验中我们知道,当R1中使用F0/1接口做为到达目标网络192.168.2.0/24的下一跳时,R1左侧网络中的PC,如果要和R2右侧的192.168.2.0/24网络中的所有PC通信,那么在R1上均会产生ARP缓存记录。可以想象:当双方通信的PC很多时,R1中势必会产生大量的ARP缓存,从而可能会导致R1的内存被耗尽。[Cisco 设备ARP的老化时间为4小时]


如果R1中到192.168.2.0/24网络的静态路由设置为 ip route 192.168.2.0 255.255.255.0 10.0.0.2,这样的话,R1中到192.168.2.0/24网络的数据包,都只会交付给10.0.0.2。R1通过ARP协议来获取 10.0.0.2对应的MAC地址,然后将数据包以第二层数据帧方式交付出去。也就是说,R1上只会保留一条ARP缓存信息,即:10.0.0.2    R2的F0/1的MAC。这样可以避免R1中产生大量ARP缓存而导致内存耗尽。

阅读(3871) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册