什么是代理ARP(proxy ARP)?
作者:佚名 来源:本站整理 发布时间:2012-01-23-19:30:42
Proxy ARP yUmi#sh start ! Written by yUmis(牛奶咖喱) a.k.a. 红头发 Description 欢迎转po,请保存作者信息 Homepage http://www.show-tym.com Jun.27th.2004 ! 什么是proxy ARP? proxy ARP就是通过利用一个主机(通常为router),来作为指定的设备对另一设备作出ARP恳求的应答 proxy ARP是如何工作的? 设备需求: Cisco 2500系列的rourer Cisco IOS Release 12.2(10b) ![]() ![]() 假设在如上图的一个环境中,位于子网A的主机A(172.16.10.100)需要发送packet到位于子网B的主机D(172.16.20.200)上去.于是主机A将发送ARP恳求给D.当然,为了能够达到主机D,就需要知道主机D的MAC地址.因此,主机A在它位于的那个子网A上广播ARP恳求,大致内容如下图: ![]() ![]() 当然router的e0口也吸收到该广播,但是router默认不会转发广播的,所以该ARP恳求仍然达到不了主机D.但是router却知道主机D位于另外一个子网B.于是router应答自己的MAC地址给主机A,如下图: 此主题相干图片如下: ![]() 注意如上图,源IP地址为主机D的IP地址,但是源MAC地址是router e0口的MAC地址.这就是发送给主机A的proxy ARP应答(代理人,中间人).这样的proxy ARP应答一般是作为unicast发送给恳求者(主机A) 主机A收到这个proxy ARP应答以后,开始更新自己的ARP table,如下图: 此主题相干图片如下: ![]() 于是从现在开始,主机A将不把要前往主机D的packet通过router e0口(00-00-0c-94-36-ab)转发,因为router知道如何达到主机D,它会把packet转发给主机D 另外,位于子网A的主机的ARP cache,如下图: 此主题相干图片如下: ![]() 注意上图,3个IP地址映射到1个MAC地址(router e0口的MAC地址)上,这就阐明正在利用proxy ARP Cisco的router的接口应当配置成能够吸收和应答proxy ARP,当然这个默认是启用的,不过可以利用一些命令来关闭这个功效,命令如下: Router# config t Enter configuration commands, one per line. End with CNTL/Z. Router(config)#int e 0 Router(config-if)#no ip proxy-arp Router(config-if)#^Z Router# 要再次启用的话,在接口配置模式下利用ip proxy-arp命令即可 proxy ARP有哪些优点? 最重要的一个优点就是能够在不影响其他router的路由表的情况下在网络上添加一个新的router,这样使得子网的变更对主机是透明的 proxy ARP应当利用在主机没有配置默认网关或没有任何路由策略的网络上 proxy ARP带来的哪些负面影响? 1.增长了某一网段上ARP流量 2.主机需要更大的ARP table来处理IP地址到MAC地址的映射 3.安全问题,比如ARP诱骗(spoofing) 4.不会为不利用ARP来解析地址的网络工作 5.不能够概括和推广网络拓扑 一些参考材料:RFC 925和RFC 1027 Fin |