最近终于把Proxy ARP搞懂了,记录下来,免得以后又忘记了:
Q:什么是代理ARP?
A:Proxy ARP就是通过一个主机(通常是Router)来作为指定得设备对另一个设备作出ARP请求得应答。
 
Q:代理ARP的应用环境?
A:Proxy ARP应该使用主机 没有配置默认网关或没有任何路由策略的网络上。
举个例子:主机A,IP地址是192.168.0.11/24。主机B,IP地址是192.168.1.22/24。主机A和主机B通过路由器R相连接,并且路由器R启用了Proxy ARP,并配置有路由。网络拓扑如下:
 
     eth0           eth0       eth1          eth0
    A------------------Router R------------------B
192.168.0.11/24      192.168.0.0/24 eth0      192.168.1.22/24
                     192.168.1.0/24 eth1  
                    
在主机A上执行:ping 192.168.1.22,主机A不知道主机B的MAC地址是多少,首先要发送ARP查询报文,路由器R接收到主机A发出的ARP查询报文,并代替主机B作出应答,应答ARP报文中填入的就是路由器R的MAC地址。这样,主机A就会认为路由器R的地址是192.168.1.22。以后所有发往192.168.1.22的报文都发到路由器R,路由器R再根据已配置好的路由表将报文转发给主机B。
  这样做的好处就是,主机A上不需要设置任何默认网关或路由策略,不管路由器R的IP地址怎么变化,主机A都能通过路由器B到达主机B,也就是实现了所谓的透明代理。相反,若主机A上设置有默认网关或路由策略时,当主机A向192.168.1.22发送报文,首先要查找路由表,而主机A所在的网段是192.168.0.0/24,主机B所在网段是192.168.1.0/24,主机A只能通过默认网关将报文发送出去,这样代理ARP也就失去了作用。
 
Q:代理ARP的优点?
A:能够在不影响其他路由器路由表的情况下在网络上添加一个新的路由器,这样使得网络拓扑的变化对主机是透明的,用户的路由器和客户端不用做任何修改,用户甚至感觉不到透明接入的路由器的存在。