网络工程师必须了解的ARP知识
副标题[/!--empirenews.page--]
动态ARP表项学习 大多数情况下,设备可以通过ARP协议动态学习和更新ARP表项。设备是如何进行动态学习的呢?其实动态ARP主要是通过广播ARP请求报文和单播ARP应答报文这两个过程完成地址解析的。 例如:小A和小C在一次聚会上互留了IP地址。如上图所示,小A需要与小C进行通信时,知道了小C的IP地址为10.1.1.3/24,判断后发现与自己在同一网段10.1.1.0/24,于是小A会广播发送一个ARP请求报文,请求小C的MAC地址。 小C收到ARP请求报文后,会单播发送一个ARP应答报文,告诉对方自己的MAC地址是3-3-3。(在同一网段的小B也会收到ARP请求报文,但是由于ARP请求报文中的目的IP地址不是小B的IP地址,因此小B不会进行应答。) 小A收到ARP应答报文后,就会在自己的ARP表中增加一条动态表项:IP地址10.1.1.3对应MAC地址3-3-3,这样小A就可以与小C进行通信啦。 说明:一方面由于ARP表的容量限制,另一方面也为了保证动态ARP表项的准确性,PC或交换机会对学习到的动态ARP表项进行老化。交换机上动态ARP表项有一定的老化时间,缺省值是20分钟,一般建议使用缺省值。 设备上动态ARP表项到达老化时间后,设备会发送老化探测报文(即ARP请求报文),如果能收到ARP应答报文,则更新该动态ARP表项,本次老化探测结束;如果超过设置的老化探测次数后仍没有收到ARP应答报文,则删除该动态ARP表项,本次老化探测结束。 静态ARP表项配置 对于网络中的重要设备,如服务器等,我们可以在交换机上配置静态ARP表项。这样可以避免交换机上重要设备IP地址对应的ARP表项被ARP攻击报文错误更新,从而保证用户与重要设备之间正常通信。 静态ARP表项不会老化,不会被动态ARP表项覆盖。用户可以通过手工方式配置静态ARP表项 例如,网络中有一台重要的服务器,服务器的IP地址为172.16.10.2,MAC地址为0023-0045-0067。如果交换机与这台服务器相连的接口GE1/0/1处于二层模式,并加入VLAN100。这时可以在交换机上为服务器配置一条对应的ARP表项,具体配置如下。
还是上面的那台服务器,如果交换机与服务器相连的接口处于三层模式,这时在交换机上配置静态ARP表项,可以参考如下配置。
ARP代理(即Proxy ARP) 前面我们提到,主机进行动态ARP学习时,如果发现目的IP地址与自己在同一网段,会发送广播ARP请求报文进行ARP学习。但是呢,有些情况下两台主机虽然在同一网段,但不在同一广播域,目的主机是无法收到ARP请求报文的,因而也就无法成功学习到ARP表项。 在连接两台主机的交换机上使能ARP代理后,交换机相当于一个中介,Host_1发送ARP请求报文请求Host_2的MAC地址的时候,交换机会将自己的MAC地址告诉Host_1。这样Host_1发给Host_2的数据报文会先发给交换机,再由交换机转发给Host_2。 例如下面的三种情况,我们就可以用到ARP代理。 情况一:需要互通的主机Host_1与Host_2(主机上没有配置缺省网关)处于相同的网段但不在同一物理网络(即不在同一广播域)。由于在不同的广播域,Host_1发送的ARP请求报文Host_2是收不到的,这时可以在交换机的VLANIF10和VLANIF20接口上使能路由式Proxy ARP功能(arp-proxy enable),实现Host_1与Host_2之间的互通。 情况二:需要互通的主机Host_1与Host_2处于相同网段,并且属于相同VLAN,但是VLAN内接口IF_1与IF_2配置了端口隔离。由于IF_1与IF_2之间端口隔离,Host_1发送的ARP请求报文Host_2是收不到的,这时可以在Switch上关联了VLAN10的VLANIF接口上使能VLAN内Proxy ARP功能(arp-proxy inner-sub-vlan-proxy enable),实现Host_1与Host_2之间的三层互通。 情况三:需要互通的主机Host_1与Host_2处于相同网段,但属于不同VLAN。由于不在同一VLAN,Host_1发送的ARP请求报文Host_2当然也是收不到的,这时可以在Switch上关联了VLAN10和VLAN20的VLANIF30接口上使能VLAN间Proxy ARP功能(arp-proxy inter-sub-vlan-proxy enable),实现Host_1与Host_2之间的三层互通。 如何保证ARP表安全? 1. 保证合法用户的ARP报文可以上送CPU处理 (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |