01-ARP配置
本章节下载: 01-ARP配置 (451.84 KB)
目 录
1.6 将IRF主设备的ARP表项同步到其他所有IRF从设备
1.9 开启ARP表项出接口和MAC地址表项出接口一致性检查功能
1.11 开启未知源MAC地址的IP数据报文触发ARP探测的功能
2.6 开启设备收到非同一网段ARP请求时发送免费ARP报文功能
ARP(Address Resolution Protocol,地址解析协议)是将IP地址解析为以太网MAC地址(或称物理地址)的协议。在网络中,当主机或其它网络设备有数据要发送给另一个主机或设备时,它必须知道对方的网络层地址(即IP地址),由于IP数据报必须封装成帧才能通过物理网络发送,因此还需要知道对方的物理地址,所以设备上需要存在一个从IP地址到物理地址的映射关系。ARP就是实现这个功能的协议。
ARP报文分为ARP请求和ARP应答报文,报文格式如图1-1所示。
图1-1 ARP报文结构
· 硬件类型:表示硬件地址的类型。它的值为1表示以太网地址;
· 协议类型:表示要映射的协议地址类型。它的值为0x0800即表示IP地址;
· 硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4;
· 操作类型(OP):1表示ARP请求,2表示ARP应答;
· 发送端MAC地址:发送方设备的硬件地址;
· 发送端IP地址:发送方设备的IP地址;
· 目标MAC地址:接收方设备的硬件地址;
· 目标IP地址:接收方设备的IP地址。
假设主机A和B在同一个网段,主机A要向主机B发送信息。如图1-2所示,具体的地址解析过程如下:
(1) 主机A首先查看自己的ARP表,确定其中是否包含有主机B对应的ARP表项。如果找到了对应的MAC地址,则主机A直接利用ARP表中的MAC地址,对IP数据报进行帧封装,并将IP数据报发送给主机B。
(2) 如果主机A在ARP表中找不到对应的MAC地址,则将缓存该IP数据报,然后以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的IP地址和MAC地址,目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。
(3) 主机B比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。
(4) 主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据报进行封装后发送出去。
图1-2 ARP地址解析过程
当主机A和主机B不在同一网段时,主机A就会先向网关发出ARP请求,ARP请求报文中的目标IP地址为网关的IP地址。当主机A从收到的响应报文中获得网关的MAC地址后,将报文封装并发给网关。如果网关没有主机B的ARP表项,网关会广播ARP请求,目标IP地址为主机B的IP地址,当网关从收到的响应报文中获得主机B的MAC地址后,就可以将报文发给主机B;如果网关已经有主机B的ARP表项,网关直接把报文发给主机B。
设备通过ARP解析到目的MAC地址后,将会在自己的ARP表中增加IP地址和MAC地址映射关系的表项,以用于后续到同一目的地报文的转发。
ARP表项分为动态ARP表项、静态ARP表项、OpenFlow ARP表项和Rule ARP表项。
动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,可以被静态ARP表项覆盖。当到达老化时间、接口状态down时,系统会删除相应的动态ARP表项。
静态ARP表项通过手工配置和维护,不会被老化,不会被动态ARP表项覆盖。
配置静态ARP表项可以增加通信的安全性。静态ARP表项可以限制和指定IP地址的设备通信时只使用指定的MAC地址,此时攻击报文无法修改此表项的IP地址和MAC地址的映射关系,从而保护了本设备和指定设备间的正常通信。
静态ARP表项分为短静态ARP表项、长静态ARP表项和多端口ARP表项。
· 长静态ARP表项可以直接用于报文转发,除了包括IP地址和MAC地址外,还需要包括以下两种表项内容之一:
¡ 该ARP表项所在VLAN和出接口;
¡ 该ARP表项的入接口和出接口对应关系。
· 短静态ARP表项只包括IP地址和MAC地址。
如果出接口是三层以太网接口,短静态ARP表项可以直接用于报文转发。
如果出接口是VLAN接口,短静态ARP表项不能直接用于报文转发,需要对表项进行解析:当要发送IP数据报时,设备先发送ARP请求报文,如果收到的响应报文中的发送端IP地址和发送端MAC地址与所配置的IP地址和MAC地址相同,则将接收ARP响应报文的接口加入该静态ARP表项中,此时,该短静态ARP表项由未解析状态变为解析状态,之后就可以用于报文转发。
一般情况下,ARP动态执行并自动寻求IP地址到以太网MAC地址的解析,无需管理员的介入。当希望设备和指定用户只能使用某个固定的IP地址和MAC地址通信时,可以配置短静态ARP表项,当进一步希望限定这个用户只在某VLAN内的某个特定接口上连接时就可以配置长静态ARP表项。
OpenFlow ARP表项由OpenFlow添加,不会被老化,不能通过ARP报文更新。可以直接用于转发报文。关于OpenFlow的介绍,请参见“OpenFlow配置指导”中的“OpenFlow”。
Rule ARP表项不会被老化,不能通过ARP报文更新,可以被静态ARP表项覆盖,可以直接用于转发报文。Rule ARP表项可由如下特性添加:
· Portal,Portal的详细介绍请参见“安全配置指导”中的“Portal”。
本节中的所有配置均为可选,请根据实际情况选择配置。
· 配置ARP表项检查功能
¡ 开启ARP表项出接口和MAC地址表项出接口一致性检查功能
· ARP-Ping
静态ARP表项在设备正常工作期间一直有效。
对于已经解析的短静态ARP表项,会由于外部事件,比如解析到的出接口状态down或设备的ARP表项所对应的VLAN或VLAN接口被删除等原因,恢复到未解析状态。
(1) 进入系统视图。
system-view
(2) 手工添加短静态ARP表项。
arp static ip-address mac-address [ vpn-instance vpn-instance-name ] [ description text ]
长静态ARP表项根据设备的当前状态可能处于有效或无效两种状态。处于无效状态的原因可能是该ARP表项中的IP地址与本地IP地址冲突或设备上没有与该ARP表项中的IP地址在同一网段的接口地址等原因。处于无效状态的长静态ARP表项不能指导报文转发。当长静态ARP表项所对应的VLAN或VLAN接口被删除时,该ARP表项会被删除。
(1) 进入系统视图。
system-view
(2) 手工添加长静态ARP表项。
arp static ip-address mac-address [ vlan-id interface-type interface-number ] [ vpn-instance vpn-instance-name ] [ description text ]
设备可以通过ARP协议自动生成动态ARP表项。为了防止用户占用过多的ARP资源,可以通过设置设备学习动态ARP表项的最大数目来进行限制。当设备学习动态ARP表项的数目达到所设置的值时,该设备上将不再学习动态ARP表项。
当本命令配置的动态ARP表项的最大数目小于设备当前已经学到的动态ARP表项数目,已学到的动态ARP表项不会被直接删除,用户可以通过执行reset arp dynamic命令直接清除动态ARP表项。
(1) 进入系统视图。
system-view
(2) 配置设备允许学习动态ARP表项的最大数目。
(独立运行模式)
arp max-learning-number max-number slot slot-number
(IRF模式)
arp max-learning-number max-number chassis chassis-number slot slot-number
缺省情况下,设备允许学习动态ARP表项的最大个数为当前设备剩余资源的最大值。
当配置设备允许学习动态ARP表项的最大数目为0时,表示禁止本设备学习动态ARP表项。
设备可以通过ARP协议自动生成动态ARP表项。为了防止部分接口下的用户占用过多的ARP资源,可以通过设置接口学习动态ARP表项的最大数目来进行限制。当接口学习动态ARP表项的数目达到所设置的值时,该接口将不再学习动态ARP表项。
如果二层接口及其所属的VLAN接口都配置了允许学习动态ARP表项的最大数目,则只有二层接口及VLAN接口上的动态ARP表项数目都没有超过各自配置的最大值时,才会学习ARP表项。
设备各接口学习的动态ARP表项之和不会超过该设备学习动态ARP表项的最大数目。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口允许学习动态ARP表项的最大数目。
arp max-learning-num max-number [ alarm alarm-threshold ]
缺省情况下,接口允许学习动态ARP表项的最大数目为当前设备剩余资源的最大值。
当配置接口允许学习动态ARP表项的最大数目为0时,表示禁止接口学习动态ARP表项。
为适应网络的变化,ARP表需要不断更新。ARP表中的动态ARP表项并非永远有效,每一条记录都有一个生存周期,到达生存周期仍得不到刷新的记录将从ARP表中删除,这个生存周期被称作老化时间。如果在到达老化时间前记录被刷新,则重新计算老化时间。
系统视图和接口视图下都可以配置动态ARP表项的老化时间,接口视图下配置的动态ARP表项的老化时间优先级高于系统视图下配置的动态ARP表项的老化时间。
(1) 进入系统视图。
system-view
(2) 配置动态ARP表项的老化时间。
¡ 在系统视图下配置动态ARP表项的老化时间。
arp timer aging { aging-minutes | second aging-seconds }
缺省情况下,动态ARP表项的老化时间为20分钟。
¡ 请依次执行以下命令在接口视图下配置动态ARP表项的老化时间。
interface interface-type interface-number
arp timer aging { aging-minutes | second aging-seconds }
缺省情况下,动态ARP表项的老化时间以系统视图下配置的老化时间为准。
某条动态ARP表项老化前,设备会向该表项中的IP地址发送ARP请求报文进行老化探测,设备收到ARP应答报文后,动态ARP表项的老化时间会刷新,如果未收到应答,则删除此动态ARP表项。动态ARP表项老化刷新机制保证了合法的动态ARP表项不会被老化,流量转发时不需要重新发起ARP解析过程。
系统视图和接口视图下都可以配置动态ARP表项老化探测次数,接口视图下配置的动态ARP表项老化探测次数优先级高于系统视图下配置的动态ARP表项老化探测次数。
(1) 进入系统视图。
system-view
(2) 配置动态ARP表项的老化探测次数。
¡ 在系统视图下配置动态ARP表项的老化探测次数。
arp timer aging probe-count count
缺省情况下,动态ARP表项老化探测次数为3次。
¡ 请依次执行以下命令在接口视图下配置动态ARP表项的老化探测次数。
interface interface-type interface-number
arp timer aging probe-count count
缺省情况下,动态ARP表项老化探测次数以系统视图下配置的探测次数为准。
动态ARP表项老化刷新机制保证了合法的动态ARP表项不会被老化,流量转发时不需要重新发起ARP解析过程。动态ARP表项老化前,设备会按照配置的老化探测时间间隔向该表项中的IP地址发送ARP请求报文进行老化探测。
· 如果在老化探测时间间隔内,设备收到ARP应答报文后,动态ARP表项的老化时间会刷新;
· 如果在老化探测时间间隔内,设备未收到ARP应答报文,探测次数加1,开始下一次探测;
· 如果到达最大探测次数后,设备仍未收到ARP应答报文,则该动态ARP表项会被删除。
如果网络负载较大,请配置较大的老化探测时间间隔。
动态ARP表项老化探测过程中,老化时间超时的动态ARP表项不会被马上删除。在动态ARP表项老化探测过程结束前收到ARP应答报文后,动态ARP表项的老化时间还可以被刷新。
配置的动态ARP表项的老化时间需要大于配置的动态ARP表项的老化探测次数乘以配置的动态ARP表项的老化探测时间间隔。否则,ARP表项老化探测功能可能无法按照配置的探测时间间隔进行探测。
(1) 进入系统视图。
system-view
(2) 配置动态ARP表项的老化探测时间间隔。
¡ 在系统视图下配置动态ARP表项的老化探测时间间隔。
arp timer aging probe-interval interval
缺省情况下,动态ARP表项老化探测时间间隔为5秒。
¡ 请依次执行以下命令在接口视图下配置动态ARP表项的老化探测时间间隔。
interface interface-type interface-number
arp timer aging probe-interval interval
缺省情况下,动态ARP表项老化探测次数以系统视图下配置的探测次数为准。
动态ARP表项检查功能可以控制设备上是否可以学习ARP报文中的发送端MAC地址为组播MAC的动态ARP表项。
· 开启ARP表项的检查功能后,设备上不能学习ARP报文中发送端MAC地址为组播MAC的动态ARP表项,也不能手工添加MAC地址为组播MAC的静态ARP表项。
· 关闭ARP表项的检查功能后,设备可以学习以太网源MAC地址为单播MAC且ARP报文中发送端MAC地址为组播MAC的动态ARP表项,也可以手工添加MAC地址为组播MAC的静态ARP表项。
(1) 进入系统视图。
system-view
(2) 开启动态ARP表项的检查功能。
arp check enable
缺省情况下,动态ARP表项的检查功能处于开启状态。
当设备各板间出现了ARP表项不一致的异常情况时,可以执行本配置,保证设备各板上的ARP表项处于一致状态。
为了防止设备在长时间工作后,各板间的ARP表项出现差异的情况,可通过schedule机制控制arp smooth命令的起始时间及执行的时间间隔,关于schedule机制的介绍,请参见“基础配置指导”中的“设备管理”。
请在用户视图下执行本命令,将主用主控板的ARP表项同步到其他所有板。
arp smooth
当IRF主从设备间出现了ARP表项不一致的异常情况时,可以执行本配置,保证IRF主从设备上的ARP表项处于一致状态。
为了防止IRF设备在长时间工作后,各设备间的ARP表项出现差异的情况,可通过schedule机制控制arp smooth命令的起始时间及执行的时间间隔,关于schedule机制的介绍,请参见“基础配置指导”中的“设备管理”。
请在用户视图下执行本命令,将IRF主设备的ARP表项同步到其他所有IRF从设备。
arp smooth
当接口连接终端主机时,可以配置接口为用户侧接口。对于这种接口上学到的ARP表项,设备上不会生成到主机的路由。
当接口连接网络设备时,需要配置接口为网络侧接口。对于这种接口上学到的ARP表项,ARP表项中的信息可以用来生成对应的主机路由信息条目。
通过实际使用情况,正确配置接口的工作模式,可以适当的节省硬件资源。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口为用户侧接口或网络层接口。
¡ 配置接口为用户侧接口。
arp mode uni
¡ 配置接口为网络侧接口。
undo arp mode
缺省情况下,接口为网络侧接口。
开启本功能后,ARP模块收到ARP报文时,会将ARP报文中的发送端IP地址和已有ARP表项中的IP地址进行比较。如果发现发送端IP地址和某条ARP表项中的IP地址相同,但MAC地址不同,则认为网络中存在终端用户间的IP地址冲突。此时,ARP模块会生成终端用户间IP地址冲突表项,同时生成对应的IP地址冲突日志。生成的IP地址冲突日志将被发送给信息中心模块处理,信息中心模块的配置将决定日志信息的发送规则和发送方向。信息中心的详细描述请参见“网络管理和监控配置指导”中的“信息中心”。
(1) 进入系统视图。
system-view
(2) 开启ARP记录终端用户间IP地址冲突功能。
arp user-ip-conflict record enable
缺省情况下,ARP记录终端用户间IP地址冲突功能处于关闭状态。
当网络环境不稳定时,设备收到某个用户发送的报文的接口可能会发生变化。这时,设备会更新该用户的MAC地址表项中的接口信息。由于该用户对应的ARP表项的出接口信息无法及时更新,匹配该ARP表项的报文会从错误的接口转发出去。开启本功能后,ARP会定时检查某个用户的ARP表项的出接口和MAC地址表项的出接口是否一致。如果不一致,ARP会在该用户的ARP表项记录的VLAN内发送ARP请求报文进行探测,并将收到ARP应答报文的接口信息更新到ARP表项中,保证了ARP表项的出接口信息能够及时更新,解决了某个用户的ARP表项出接口和MAC地址表项出接口不一致的问题。
使用display mac-address命令可以查看MAC地址表信息。关于display mac-address命令的详细描述,请参见“二层技术-以太网交换命令参考”中的“MAC地址表”。
(1) 进入系统视图。
system-view
(2) 开启ARP表项出接口和MAC地址表项出接口一致性检查功能。
arp mac-interface-consistency check enable
缺省情况下,ARP表项出接口和MAC地址表项出接口一致性检查功能处于关闭状态。
开启本功能后,设备收到ARP报文时,会将收到ARP报文中的信息和已有ARP表项进行比较。如果发现ARP报文中的发送端IP地址和MAC地址与某条ARP表项中的IP地址和MAC地址相同,但端口不同,则认为该ARP表项对应的用户发生了端口迁移。此时,设备会生成终端用户的迁移表项,同时生成对应用户的迁移日志,并刷新ARP表项中的接口信息。生成的迁移日志将被发送给信息中心模块处理,信息中心模块的配置将决定日志信息的发送规则和发送方向。信息中心的详细描述请参见“网络管理和监控配置指导”中的“信息中心”。
如果发生大量用户迁移操作时,设备会输出大量日志信息,这可能会降低设备性能。为了避免该情况的发生,用户可以关闭ARP记录终端用户端口迁移功能。
(1) 进入系统视图。
system-view
(2) 开启ARP记录终端用户端口迁移功能。
arp user-move record enable
缺省情况下,ARP记录终端用户端口间迁移功能处于关闭状态。
通常,在移动组网环境下,设备可能收到未知源MAC地址的数据报文。例如,在同一个局域网中,Device A下连接了AP 1,Device B下连接了 AP 2。移动终端Mobile先通过AP 1接入网络,获取到IP地址,之后漫游到AP 2下,且IP地址不更改,继续使用已获取到的IP地址通信。此时Device B收到的移动终端Mobile发来的首个报文可能就是未知源MAC地址的数据报文。
缺省情况下,设备收到未知源MAC地址的数据报文,会学习MAC地址表项并转发此数据报文,不会根据此数据报文学习ARP表项。后续,发送给移动终端Mobile的报文,不能被正确地转发到Device B上。为了解决这个问题,用户可以执行本命令,开启未知源MAC地址的IP数据报文触发ARP探测的功能。
开启本功能后,设备收到未知源MAC地址的数据报文后,会使用数据报文的源IP地址作为ARP探测报文的目的IP地址,在接收到此数据报文的接口下发送ARP探测报文,如果收到了相应的ARP应答报文,则根据应答应报文生成对应的ARP表项。
请用户根据实际组网环境判断是否需要开启本功能。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启未知源MAC地址的IP数据报文触发ARP探测的功能。
arp unknown-source-mac-probing enable
缺省情况下,未知源MAC地址的IP数据报文触发ARP探测的功能处于关闭状态。
ARP日志可以方便管理员定位问题和解决问题,对处理ARP报文的信息进行的记录。例如,ARP日志可以记录如下事件:
· 设备未使能ARP代理功能时收到目的IP不是设备接口IP地址、VRRP备份组中的虚拟IP地址或NAT转换的外部网络地址;
· 收到的ARP报文中源地址和接收接口IP地址、VRRP备份组中的虚拟IP地址或NAT转换的外部网络地址冲突,且此报文不是ARP请求报文等。
设备生成的ARP日志信息会交给信息中心模块处理,信息中心模块的配置将决定日志信息的发送规则和发送方向。关于信息中心的详细描述请参见“网络管理和监控配置指导”中的“信息中心”。
(1) 进入系统视图。
system-view
(2) 开启ARP日志信息功能。
arp check log enable
缺省情况下,ARP日志信息功能处于关闭状态。
清除ARP表项,将取消IP地址和MAC地址的映射关系,可能导致无法正常通信。清除前请务必仔细确认。
在完成上述配置后,在任意视图下执行display命令可以显示配置后ARP的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,用户可以执行reset命令清除ARP表项。
表1-1 ARP显示和维护
操作 |
命令 |
显示ARP表项 |
(独立运行模式) display arp [ [ all | dynamic | static ] [ slot slot-number ] | vlan vlan-id | interface interface-type interface-number ] [ count | verbose ] (IRF模式) display arp [ [ all | dynamic | static ] [ chassis chassis-number slot slot-number ] | vlan vlan-id | interface interface-type interface-number ] [ count | verbose ] |
显示设备支持ARP表项的最大数目 |
display arp entry-limit |
显示指定IP地址的ARP表项 |
(独立运行模式) display arp ip-address [ slot slot-number ] [ verbose ] (IRF模式) display arp ip-address [ chassis chassis-number slot slot-number ] [ verbose ] |
显示OpenFlow类型ARP表项个数 |
(独立运行模式) display arp openflow count [ slot slot-number ] (IRF模式) display arp openflow count [ chassis chassis-number slot slot-number ] |
显示动态ARP表项的老化时间 |
display arp timer aging |
显示ARP表项数的使用率 |
display arp usage |
显示ARP记录的终端用户间IP地址冲突表项信息 |
(独立运行模式) display arp user-ip-conflict record [ slot slot-number ] (IRF模式) display arp user-ip-conflict record [ chassis chassis-number slot slot-number ] |
显示ARP记录的终端用户迁移表项信息 |
(独立运行模式) display arp user-move record [ slot slot-number ] (IRF模式) display arp user-move record [ chassis chassis-number slot slot-number ] |
显示指定VPN实例的ARP表项 |
display arp vpn-instance vpn-instance-name [ count | verbose ] |
清除ARP表项(IRF模式) |
(独立运行模式) reset arp { all | dynamic | interface interface-type interface-number | slot slot-number | static } (IRF模式) reset arp { all | chassis chassis-number slot slot-number | dynamic | interface interface-type interface-number | static } |
· Device B连接主机,通过接口Ten-GigabitEthernet3/0/1连接Device A。接口Ten-GigabitEthernet3/0/1属于VLAN 10。
· Device A的IP地址为192.168.1.1/24,MAC地址为00e0-fc01-0000。
为了增加Device B和Device A通信的安全性,可以在Device B上为Device A配置一条静态ARP表项,从而防止攻击报文修改此表项的IP地址和MAC地址的映射关系。
图1-3 长静态ARP表项配置组网图
在Device B上进行下列配置。
# 创建VLAN 10。
<DeviceB> system-view
[DeviceB] vlan 10
[DeviceB-vlan10] quit
# 将接口Ten-GigabitEthernet3/0/1加入到VLAN 10中。
[DeviceB] interface ten-gigabitethernet 3/0/1
[DeviceB-Ten-GigabitEthernet3/0/1] port access vlan 10
[DeviceB-Ten-GigabitEthernet3/0/1] quit
# 创建接口Vlan-interface10,并配置IP地址。
[DeviceB] interface vlan-interface 10
[DeviceB-vlan-interface10] ip address 192.168.1.2 8
[DeviceB-vlan-interface10] quit
# 配置一条长静态ARP表项,IP地址为192.168.1.1,对应的MAC地址为00e0-fc01-0000,此条ARP表项对应的出接口为属于VLAN 10的接口Ten-GigabitEthernet3/0/1。
[DeviceB] arp static 192.168.1.1 00e0-fc01-0000 10 ten-gigabitethernet 3/0/1
# 查看长静态ARP表项信息。
[DeviceB] display arp static
Type: S-Static D-Dynamic O-Openflow R-Rule M-Multiport I-Invalid
IP address MAC address VLAN/VSI name Interface Aging Type
192.168.1.1 00e0-fc01-0000 10 XGE3/0/1 -- S
· Device B通过接口Ten-GigabitEthernet3/0/1连接主机,通过接口Ten-GigabitEthernet3/0/2连接Device A。
· Device A的IP地址为192.168.1.1/24,MAC地址为00e0-fc01-001f。
网络管理员需要通过某种方法来防止恶意用户对Device B进行ARP攻击,增加Device B和Device A通信的安全性。如果Device A的IP地址和MAC地址是固定的,则可以通过在Device B上配置静态ARP表项的方法,防止恶意用户进行ARP攻击。
图1-4 短静态ARP表项配置组网图
在Device B上进行下列配置。
# 在接口Ten-GigabitEthernet3/0/2配置IP地址。
<DeviceB> system-view
[DeviceB] interface ten-gigabitethernet 3/0/2
[DeviceB-Ten-GigabitEthernet3/0/2] ip address 192.168.1.2 24
[DeviceB-Ten-GigabitEthernet3/0/2] quit
# 配置一条短静态ARP表项,IP地址是192.168.1.1,对应的MAC地址是00e0-fc01-001f。
[DeviceB] arp static 192.168.1.1 00e0-fc01-001f
# 查看短静态ARP表项信息。
[DeviceB] display arp static
Type: S-Static D-Dynamic O-Openflow R-Rule M-Multiport I-Invalid
IP address MAC address VLAN/VSI name Interface Aging Type
192.168.1.1 00e0-fc01-001f -- -- -- S
免费ARP报文是一种特殊的ARP报文,该报文中携带的发送端IP地址和目标IP地址都是本机的IP地址。设备通过对外发送免费ARP报文来确定其他设备的IP地址是否与本机的IP地址冲突,并实现在设备硬件地址改变时通知其它设备更新ARP表项。
设备接口获取到IP地址时可以在接口所在局域网内广播发送免费ARP报文。如果设备收到ARP应答报文,表示局域网中存在与该设备IP地址相同的设备,则设备不会使用此IP地址,并打印日志提示管理员修改该IP地址。如果设备未收到ARP应答报文,表示局域网中不存在与该设备IP地址相同的设备,则设备可以正常使用IP地址。
开启了免费ARP报文学习功能后,设备会根据收到的免费ARP报文中携带的信息(发送端IP地址、发送端MAC地址)对自身维护的ARP表进行修改。设备先判断ARP表中是否存在与此免费ARP报文中的发送端IP地址对应的ARP表项:
· 如果没有对应的ARP表项,设备会根据该免费ARP报文中携带的信息新建ARP表项;
· 如果存在对应的ARP表项,设备会根据该免费ARP报文中携带的信息更新对应的ARP表项。
关闭免费ARP报文学习功能后,设备不会根据收到的免费ARP报文来新建ARP表项,但是会更新已存在的对应ARP表项。如果用户不希望通过免费ARP报文来新建ARP表项,可以关闭免费ARP报文学习功能,以节省ARP表项资源。
定时发送免费ARP功能可以及时通知下行设备更新ARP表项或者MAC地址表项,主要应用场景如下:
· 防止仿冒网关的ARP攻击
如果攻击者仿冒网关发送免费ARP报文,就可以欺骗同网段内的其它主机,使得被欺骗的主机访问网关的流量被重定向到一个错误的MAC地址,导致其它主机用户无法正常访问网络。
为了降低这种仿冒网关的ARP攻击所带来的影响,可以在网关的接口上开启定时发送免费ARP功能。开启该功能后,网关接口上将按照配置的时间间隔周期性发送接口主IP地址和手工配置的从IP地址的免费ARP报文。这样,每台主机都可以学习到正确的网关,从而正常访问网络。
· 防止主机ARP表项老化
在实际环境中,当网络负载较大或接收端主机的CPU占用率较高时,可能存在ARP报文被丢弃或主机无法及时处理接收到的ARP报文等现象。这种情况下,接收端主机的动态ARP表项会因超时而老化,在其重新学习到发送设备的ARP表项之前,二者之间的流量就会发生中断。
为了解决上述问题,可以在网关的接口上开启定时发送免费ARP功能。启用该功能后,网关接口上将按照配置的时间间隔周期性发送接口主IP地址和手工配置的从IP地址的免费ARP报文。这样,接收端主机可以及时更新ARP映射表,从而防止了上述流量中断现象。
· 防止VRRP虚拟IP地址冲突
当网络中存在VRRP备份组时,需要由VRRP备份组的Master路由器周期性的向网络内的主机发送免费ARP报文,使主机更新本地ARP地址表,从而确保网络中不会存在IP地址与Master路由器VRRP虚拟IP地址相同的设备。免费ARP报文中的发送端MAC为VRRP虚拟路由器对应的虚拟MAC地址。关于VRRP的详细介绍,请参见“可靠性配置指导”中的“VRRP”。
本节中的所有配置均为可选,请根据实际情况选择配置。当以下功能均未开启时,免费ARP的冲突地址检测功能仍然生效。
· 开启设备收到非同一网段ARP请求时发送免费ARP报文功能
· 配置当接口MAC地址变化时,该接口重新发送免费ARP报文的次数和时间间隔
设备接收到其它设备发送的ARP报文后,如果发现报文中的源IP地址和自己的IP地址相同,该设备会根据当前源IP地址冲突提示功能的状态,进行如下处理:
· 如果源IP地址冲突提示功能处于关闭状态时,设备发送一个免费ARP报文确认是否冲突,只有收到对应的ARP应答后才提示存在IP地址冲突。
· 如果源IP地址冲突提示功能处于开启状态时,设备立刻提示存在IP地址冲突。
(1) 进入系统视图。
system-view
(2) 开启源IP地址冲突提示功能。
arp ip-conflict log prompt
缺省情况下,源IP地址冲突提示功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 开启免费ARP报文学习功能。
gratuitous-arp-learning enable
缺省情况下,免费ARP报文的学习功能处于开启状态。
· 设备最多允许同时在1024个接口上开启定时发送免费ARP功能。
· 开启定时发送免费ARP功能后,只有当接口链路状态up并且配置IP地址后,此功能才真正生效。
· 如果修改了免费ARP报文的发送时间间隔,则在下一个发送时间间隔才能生效。
· 如果同时在很多接口下开启定时发送免费ARP功能,或者每个接口有大量的从IP地址,又或者是两种情况共存的同时又配置很小的发送时间间隔,那么免费ARP报文的实际发送时间间隔可能会远远高于用户设定的时间间隔。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启定时发送免费ARP功能。
arp send-gratuitous-arp [ interval interval ]
缺省情况下,定时发送免费ARP功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 开启设备收到非同一网段ARP请求时发送免费ARP报文功能。
gratuitous-arp-sending enable
缺省情况下,设备收到非同一网段的ARP请求时发送免费ARP报文功能处于关闭状态。
当设备的MAC地址发生变化后,设备会通过免费ARP报文将修改后的MAC地址通告给其他设备。由于目前免费ARP报文没有重传机制,其他设备可能无法收到免费ARP报文。为了解决这个问题,用户可以配置当接口MAC地址变化时,该接口重新发送免费ARP报文的次数和时间间隔,保证其他设备可以收到该免费ARP报文。
(1) 进入系统视图。
system-view
(2) 配置当接口MAC地址变化时,重新发送免费ARP报文的次数和时间间隔
gratuitous-arp mac-change retransmit times interval seconds
缺省情况下,当设备的接口MAC地址变化时,该接口只会发送一次免费ARP报文。
如果ARP请求是从一个网络的主机发往同一网段却不在同一物理网络上的另一台主机,那么连接它们的具有代理ARP功能的设备就可以回答该请求,这个过程称作代理ARP(Proxy ARP)。
代理ARP功能屏蔽了分离的物理网络这一事实,使用户使用起来,好像在同一个物理网络上。
代理ARP分为普通代理ARP和本地代理ARP,二者的应用场景有所区别:
· 普通代理ARP的应用场景为:想要互通的主机分别连接到设备的不同三层接口上,且这些主机不在同一个广播域中。
· 本地代理ARP的应用场景为:想要互通的主机连接到设备的同一个三层接口上,且这些主机不在同一个广播域中。
代理ARP和本地代理ARP功能均可在VLAN接口视图/三层以太网接口视图/三层以太网子接口视图/三层聚合接口视图/三层聚合子接口视图下进行配置。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
普通代理ARP功能可在VLAN接口视图/三层以太网接口视图/三层以太网子接口视图/三层聚合接口视图/三层聚合子接口视图下进行配置。
(3) 开启普通代理ARP功能。
proxy-arp enable
缺省情况下,普通代理ARP功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
本地代理ARP功能可在VLAN接口视图/三层以太网接口视图/三层以太网子接口视图/三层聚合接口视图/三层聚合子接口视图下进行配置。
(3) 开启本地代理ARP功能。
local-proxy-arp enable [ ip-range start-ip-address to end-ip-address ]
缺省情况下,本地代理ARP功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置后代理ARP的运行情况,查看显示信息验证配置的效果。
表3-1 代理ARP显示和维护
操作 |
命令 |
显示本地代理ARP的状态 |
display local-proxy-arp [ interface interface-type interface-number ] |
显示普通代理ARP的状态 |
display proxy-arp [ interface interface-type interface-number ] |
显示代理ARP应答报文数的统计信息 |
display proxy-arp statistics |
· Host A和Host D配置为同一网段的主机(Host A的IP地址是192.168.10.100/16,Host D的IP地址是192.168.20.200/16),但却被设备Switch分在两个不同的子网(Host A属于VLAN 1,Host D属于VLAN 2)。
· Host A和Host D没有配置缺省网关,要求在设备Switch上开启代理ARP功能,使处在两个子网的Host A和Host D能互通。
图3-1 配置普通代理ARP组网图
# 创建VLAN 2。
<Switch> system-view
[Switch] vlan 2
[Switch-vlan2] quit
# 配置接口Vlan-interface1的IP地址。
[Switch] interface vlan-interface 1
[Switch-Vlan-interface1] ip address 192.168.10.99 255.255.255.0
# 开启接口Vlan-interface1的普通代理ARP功能。
[Switch-Vlan-interface1] proxy-arp enable
[Switch-Vlan-interface1] quit
# 配置接口Vlan-interface2的IP地址。
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] ip address 192.168.20.99 255.255.255.0
# 开启接口Vlan-interface2的普通代理ARP功能。
[Switch-Vlan-interface2] proxy-arp enable
配置完成后,Host A和Host D可以互相ping通。
ARP Snooping功能是一个用于二层交换网络环境的特性,通过侦听ARP报文建立ARP Snooping表项,从而提供给ARP快速应答和MFF(MAC-Forced Forwarding,MAC强制转发)等使用。关于MFF的详细介绍,请参见“安全配置指导”中的“MFF”。
设备上在一个VLAN内开启ARP Snooping后,该VLAN内接收的ARP报文都会被上送到CPU。CPU对上送的ARP报文进行分析,获取ARP报文的发送端IP地址、发送端MAC地址、VLAN和入端口信息,建立记录用户信息的ARP Snooping表项。
ARP Snooping表项的老化时间为25分钟,有效时间为15分钟。
如果一个ARP Snooping表项自最后一次更新后12分钟内没有收到ARP更新报文,设备会向外主动发送一个ARP请求进行探测;若ARP Snooping表项自最后一次更新后15分钟时,还没有收到ARP更新报文,则此表项开始进入失效状态,不再对外提供服务,其他特性查找此表项将会失败。当收到发送端IP地址和发送端MAC与已存在的ARP Snooping表项IP地址和MAC均相同的ARP报文时,此ARP Snooping表项进行更新,重新开始生效,并重新老化计时。
当ARP Snooping表项达到老化时间后,则将此ARP Snooping表项删除。
如果ARP Snooping收到ARP报文时检查到相同IP的ARP Snooping表项已经存在,但是MAC地址发生了变化,则认为发生了攻击,此时ARP Snooping表项处于冲突状态,表项失效,不再对外提供服务,并在1分钟后删除此表项。
(1) 进入系统视图。
system-view
(2) 进入VLAN视图。
vlan vlan-id
(3) 开启ARP Snooping功能。
arp snooping enable
缺省情况下,ARP Snooping功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置后ARP Snooping的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,用户可以执行reset命令清除ARP Snooping表中的表项。
表4-1 ARP Snooping显示和维护
操作 |
命令 |
显示ARP Snooping表项 |
(独立运行模式) display arp snooping vlan [ vlan-id ] [ slot slot-number ] [ count ] display arp snooping vlan ip ip-address [ slot slot-number ] (IRF模式) display arp snooping vlan [ vlan-id ] [ chassis chassis-number slot slot-number ] [ count ] display arp snooping vlan ip ip-address [ chassis chassis-number slot slot-number ] |
清除ARP Snooping表项 |
reset arp snooping vlan [ vlan-id ] reset arp snooping vlan ip ip-address |
ARP快速应答功能根据设备上生成的IP Source Guard表项或者ARP Snooping表项包含的信息,在指定的VLAN内,对ARP请求进行应答,从而减少ARP广播报文。关于IP Source Guard的详细介绍,请参见“安全配置指导”中的“IP Source Guard”。
(1) 设备接收到ARP请求报文时,如果请求报文的目的IP地址是设备的VLAN接口的IP地址,则由ARP特性进行处理。
(2) 如果ARP请求报文的目的IP地址不是VLAN接口的IP地址,则根据报文中的目的IP地址查找IP Source Guard表项:
¡ 如果查找成功,当接口是无线网接口时,不管查找到的表项的接口和收到请求报文的接口是否一致,都直接进行应答;当接口是以太网接口时,当查找到的表项的接口和收到请求报文的接口一致,不进行应答,否则立即进行应答。
¡ 如果查找失败且设备开启了ARP Snooping,则继续查找ARP Snooping表项,如果查找成功,当接口是无线网接口时,不管查找到的表项的接口和收到请求报文的接口是否一致,都直接进行应答;当接口是以太网接口时,当查找到的表项的接口和收到请求报文的接口一致,不进行应答,否则立即进行应答。
¡ 如果两个表均查找失败,则向指定VLAN内除收到请求报文的接口外的其他接口转发该请求报文或将报文交于其他特性处理。
为了提高ARP快速应答的应答几率,可以在应用ARP快速应答功能的场合同时开启ARP Snooping功能。
(1) 进入系统视图。
system-view
(2) 进入VLAN视图。
vlan vlan-id
(3) 开启ARP快速应答功能。
arp fast-reply enable
缺省情况下,ARP快速应答功能处于关闭状态。
Client 1~Client 32通过Switch接入网络,所有客户端接入VLAN为VLAN 2。
当Client 1需要访问Client 32时,Client 1发送ARP请求报文,ARP请求报文在Switch上被复制其他所有接口上发送(除了与Client 1直连的接口),在设备上具有多个接口的情况下,这种复制的广播会占用接口资源。
为减少对接口资源的占用,可以在VLAN 2上开启ARP快速应答。启用ARP快速应答,当Client 32通过DHCP服务器获得IP地址后,Client 1需要访问Client 32时,ARP请求报文可以在Switch上得到应答,而Switch不会再对报文进行广播,从而减少了对接口资源的占用。
图5-1 开启ARP快速应答组网图
(1) 开启Switch上VLAN2开启ARP Snooping功能。
<Switch> system-view
[Switch] vlan 2
[Switch-vlan2] arp snooping enable
(2) 开启Switch上VLAN 2开启ARP快速应答功能。
[Switch-vlan2] arp fast-reply enable
[Switch-vlan2] quit
ARP直连路由通告功能用于使设备从ARP表中学到对应的直连路由信息,以便其他路由协议发布该直连路由或指导报文转发。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启ARP直连路由通告功能。
arp route-direct advertise [ preference preference-value | tag tag-value ] *
缺省情况下,ARP直连路由通告功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置后ARP的运行情况,通过查看显示信息验证配置的效果。
表6-1 ARP直连路由通告功能显示和维护
操作 |
命令 |
显示通过ARP模块通告生成的直连路由的相关信息 |
display arp route-direct advertise interface interface-type interface-number |
缺省情况下,当接口收到ARP请求报文时,无论IP地址是否在转发表中,接口都会返回ARP应答报文。开启此功能后,如果ARP请求报文的目的IP地址在转发表中,则接口直接丢弃ARP请求报文,不会返回ARP应答报文。开启此功能可减少网络内的ARP报文,从而起到抑制ARP泛洪的作用。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启对与转发表匹配的ARP请求报文的丢弃功能。
arp fib-miss drop
缺省情况下,与转发表匹配的ARP请求报文的丢弃功能处于关闭状态。
针对IPv4地址的ARP-Ping功能是利用ARP报文在局域网内探测IPv4地址是否被其他设备使用的一种方法。
设备向目的IPv4地址发送一个ARP请求报文后,如果在指定的时间内未收到对应的ARP应答报文,且未达到指定的发送次数,则继续发送下一个ARP请求报文;如果已达到指定的发送次数,则认为此IPv4地址未被其他设备使用,将停止发送探测用途的ARP请求报文。
通过ping命令也可以探测IPv4地址是否被网络上的其他设备使用。但是如果目的端设备带有防火墙功能且配置为对ICMP报文不进行回复时,就不会响应ICMP报文,造成探测结果不准确。由于ARP报文是二层协议,大多数情况下报文不会被防火墙拦下,从而避免了此类情况的发生。另外,ARP请求报文长度小于ICMP报文长度,占用的网络资源更少。
如果要使用目的端的主机名使用针对IPv4地址的ARP-Ping功能,请事先在设备上配置DNS功能。关于DNS的详细介绍,请参见“三层技术-IP业务”中的“域名解析”。
当局域网内有多台设备时,使用本功能可能会消耗较多时间。可以在执行命令过程中,输入<Ctrl+C>终止ping arp ip命令。
可在任意视图下,利用ARP报文在局域网内探测IPv4地址是否被其他设备使用。
ping arp ip host [ interface interface-type interface-number [ vlan vlan-id ] ] [ timeout timeout ] [ count count ]
当已知某网段一个特定的MAC地址而不知道其对应的IPv4地址时,通过针对MAC地址的ARP-Ping功能发送广播的三层ICMP报文可以得到该MAC所对应的IPv4地址。
设备发送ICMP回显请求报文后,如果在指定的时间内未收到ICMP回显应答报文,且未达到指定的发送次数,则继续发送ICMP回显请求报文;如果已达到指定的发送次数,则认为此MAC地址不存在,不再发送ICMP回显请求报文。
当指定网段内有多台设备时,使用本功能可能会消耗较多时间。可以在执行命令过程中,输入<Ctrl+C>可终止ping arp mac命令。
可在任意视图下,利用三层ICMP报文查询MAC所对应的IPv4地址。
ping arp mac mac-address { ip ipv4-address [ vpn-instance vpn-instance-name ] | interface interface-type interface-number } [ timeout timeout ] [ count count ]
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!