前言
上一章介绍了ARP的技术原理,但是ARP报文只能在广播域中传播,如果同一网段的两台主机在不同的广播域是否可以通信呢?
答案是可以的,但是需要借助ARP代理。
正文
我们先来看个例子介绍下ARP代理的工作原理:
如图所示:
主机A需要与主机B通信时,目的IP地址与本机的IP地址处于同一网段,但是处于不同的广播域,所以主机A将会以广播形式发送ARP Request报文,请求主机B的MAC地址。但是,广播报文无法被路由器转发,所以主机B无法收到主机A的ARP请求报文,当然也就无法应答。
在路由器上启用代理ARP功能,就可以解决这个问题。
启用代理ARP后,路由器收到这样的请求,会查找路由表,如果存在主机B的路由表项,路由器将会使用自己的G0/0/0接口的MAC地址来回应该ARP request。
主机A收到ARP reply后,将以路由器的G0/0/0接口MAC地址作为目的MAC地址进行数据转发。
1 什么是ARP代理
proxy ARP就是通过使用一个主机(通常为router),来作为指定的设备对另一设备的ARP请求作出应答。
本例中就是使用R1来对主机A的请求作出应答。
2 ARP代理解决了什么问题?
ARP代理可以解决同一网段的主机在不同的广播域不能通信的问题。
这里需要注意下必须在同一网段,如果不是同一网段,主机A根本就不会发送ARP请求报文,不同网段之间的主机需要借助网关实现通信,ARP代理只能解决同一网段的但是跨广播域的两台主机通信。
** 3 实战**
如上图所示:
主机A的配置:
主机B的配置:
路由器R1的接口配置:
可以看到:
路由器R1没有配置ARP代理,由于主机A和主机B属于不同广播域,因此ping测试失败。
通过抓包可以看到主机A发送了ARP请求,但是没有应答。
下面我们在路由接口下配置ARP代理。
在主机A上ping 主机B,查看结果,可以ping通。
通过抓包:
可以看到主机A发送ARP广播报文,并收到了路由器ARP回应报文。
下面我们看下主机A发送的ARP请求报文:
下面看下主机A收到的ARP回应报文:可以看到回应报文的源MAC为54:89:98:33:33:00,为路由器g0/0/0的mac地址;
总结
今天主要介绍了ARP代理,ARP代理可以解决同一网段的主机在不同的广播域不能通信的问题。
大家有疑问可以后台留言交流呀,帮忙点个在看呀!