• APR学习失败问题定位排查


    一、ARP学习失败的定位思路

    常见原因

    ARP学习失败,有以下几种可能(假设设备发送ARP请求):

    故障诊断流程

    详细处理流程如下图所示:

    故障处理步骤

    1、检查设备和对端设备之间的链路是否正常。

    可以通过ping命令检查两端的路由连通性。如果ping不通,请先解决路由的故障。

    可以使用displayarp查看ARP表项中是否存在期望的ARP表项。

    可以使用命令displaymac查看对端MA地址是否学习正常所在端口是否为对应的端口。如果不正常,请先检查为何无法正常学习到对端MAC。

    可以通过流量统计查看设备是否有丢包,如果设备不支持流量统计,可以通过上下互ping来测试。如果有丢包,请先排除设备转发的故障。

    2、检查设备的ARP处理是否正常。

    用户视图下使用命令debugging arp packet interface interface-type interface-number打开ARP报文调试开关,查看设备是否发出ARP请求报文、是否收到ARP回应报文。

    调试信息的“operation”字段表示协议类型:1为ARP请求;2为ARP响应。

    如果没有发送过ARP请求报文,请参考IP扫描攻击的定位思路进行处理。

    如果没有收到ARP回应报文,检查是否由于CPCAR机制丢弃了ARP回应报文。请参考步骤3。

    如果收到了ARP回应报文,请执行步骤5。

    如果地址学习正常请转步骤步骤检查本端口和对端端口的配置信息,确定端口的VLANPVID等信息正确,端口没有启用DOT1等协议如果端口配置正确。

    3、检查ARP回应报文是否被丢弃。

    执行命令display cpu-defend statistics packet-type arp-reply查看ARP Reply报文的“Drop”计数是否增长。

    如果计数一直增长,执行命令packet-type适当放大针对ARP Reply报文的CPCAR的限制值。

    系统视图或接口视图下执行命令display this查看是否配置了ARP报文限速。

    如果配置了ARP报文限速功能“arp anti-attack rate-limit enable”,而ARP报文速率很大,则有可能被丢弃。使用命令arp anti-attack rate-limit可以修改速率抑制大小。

    4、检查对端设备的ARP处理是否正常。

    检查对端设备是否收到了ARP请求报文,如果收到是否响应了请求,是否发出ARP回应报文。

    如果对端设备是华为设备,可以参考步骤2的描述;如果是其他厂商设备,请参考相应的操作手册。

    5、如果故障依然存在,请收集如下信息,并联系技术支持人员。

    可以抓包看一下,arp报文所带的tag是否正确,封装是否正确。当前面步骤都是正确时说明设备收到arp消息,但是没有学习Mac,建议找相关设备售后解决。

    设备的配置文件、日志信息、告警信息。

    注意:

    交换机,如果不是三层的,如果是三层的没有设置虚接口地址是学不到arp的。

    arp是三层的东西交换机的交换功能其实是二层的东西。

    二、ARP常见问题定位思路

    ARP常见问题现象,有以下几种可能:

    故障处理步骤

    1、检查子接口下是否配置了的ARP广播功能。

    在子接口视图下执行命令display this命令检查子接口相关配置。

    如果没有arp broadcast enable字段,则执行命令arp broadcast enable使能子接口的ARP广播功能。

    2、检查设备的ARP表项数量是否正常。

    用户视图下执行命令display arp statistics all查看ARP表项的统计信息。

    如果静态ARP和动态ARP表项数量超过500条,请排查当前网络。

    如果现网用户较少,ARP表项数量超过500可能存在ARP攻击。
    如果现网用户较多,ARP表项数量超过500属于正常现象,用户可执行以下命令,提高ARP学习的速度。

    执行命令arp-miss speed-limit source-ip [ ip-address ] maximum maximum,配置ARP Miss消息的源抑制速率。
    执行命令cpu-defend-policy policy-name,创建防攻击策略,并进入防攻击策略视图;执行命令packet-type arp-miss rate-limit rate-value,配置上送CPU报文的限制速率。

    3、检查ARP表项中是否存在多个IP地址对应同一个MAC地址现象。

    执行命令display arp all查看设备上所有的ARP映射表项。

    如果存在多个IP地址对应同一个MAC地址的表项,说明网络中存在ARP攻击,可执行命令arp learning strict,配置ARP表项严格学习功能。

    4、检查STP功能是否已经关闭。

    系统视图下执行命令display stp,查看STP的状态和统计信息。

    如果显示Protocol Status :enabled字段,则执行命令stp disable,去使能STP功能。

    5、如果故障依然存在,请收集如下信息,并联系技术支持人员。

    上述步骤的执行结果。
    设备的配置文件、日志信息、告警信息。

    三、合法用户的ARP表项被修改的定位思路

    本类故障的常见原因主要包括:

    • 攻击者伪造合法用户的ARP报文修改合法用户的ARP表项

    故障诊断流程

    合法用户的网络服务突然中断,初步排查不是链路连接或路由问题。可能是攻击者通过伪造其他用户发出的ARP报文,篡改网关设备上的用户ARP表项,造成其他合法用户的网络服务中断。以下描述基于ARP表项被修改的处理流程。

    详细处理流程如下图所示:

    故障处理步骤

    1、在设备上执行命令display arp anti-attack configuration entry-check查看ARP防地址欺骗功能是否使能。

    如果显示如下信息,则表示没有使能防ARP防地址欺骗功能。

    ARP anti-attack entry-check mode: disabled

    执行arp anti-attack entry-check { fixed-mac | fixed-all | send-ack } enable命令,使能该功能。

    在使能该功能前需要执行reset arp interface interface-type interface-number命令清除用户所在接口下的已学到的攻击者ARP表项。

    • 如果配置的防欺骗模式为send-ack,请执行步骤2。
    • 如果配置的防欺骗模式为fixed-mac,请执行步骤3。
    • 如果配置的防欺骗模式是fixed-all,请直接执行步骤4。

    2、send-ack模式下,执行以下子步骤继续排查。

    通过端口镜像抓取接入用户的接口上的报文,查看是否有对应的ARP交互过程。如果设备没有发出ARP请求,请直接执行步骤4。

    如果设备发出了ARP请求,但没有收到用户的ARP应答,检查设备和用户之间网络连接是否正常。

    如果收到用户的ARP应答,执行display cpu-defend statistics packet-type arp-reply命令检查ARP Reply报文是否被丢弃。如果ARP Reply报文的“Drop”计数不断增加,可能是被CPCAR机制丢弃了。可以通过packet-type命令适当放大速率限制值。

    如果执行完以上步骤后故障仍未排除,请执行步骤4。

    3、执行命令display arp all | include ip-address查看用户的ARP表项中哪些信息被修改。

    如果是接口或VLAN信息被修改,在fixed-mac模式下认为是正常现象;如果是MAC被修改,则执行步骤4。

    4、请收集如下信息,并联系技术支持人员。

    上述步骤的执行结果。

    设备的配置文件、日志信息、告警信息。

    四、ARP报文攻击导致用户流量中断的定位思路

    本类故障的常见原因主要包括:

    • 攻击者发送大量ARP报文,导致目的网段的负担加重。这些ARP报文还会送到设备的CPU增加了CPU的负担,同时有可能导致合法用户流量中断,形成拒绝服务攻击。

    故障诊断流程

    进入设备的ARP报文在上送CPU时有CPCAR机制进行限速。如果攻击者发送大量伪ARP报文,与合法用户的ARP报文共享CPCAR限制的带宽,就会导致合法的ARP报文被丢弃,从而导致用户流量中断。

    详细处理流程如下图所示。

    故障处理步骤

    ARP攻击报文包括ARP Request报文和ARP Reply报文,以下步骤中以ARP Request报文为例。针对ARP Reply的处理方法为把以下命令中涉及到的arp-request参数改为arp-reply即可。

    1、执行命令display arp查看用户的ARP表项是否存在。

    如果ARP表项还在,表明学到了用户的ARP表项,用户流量中断可能是用户的连接闪断。检查并排除链路问题。

    如果没有用户表项,执行步骤2。

    2、执行命令display cpu-defend statistics packet-type arp-request查看ARP Request报文的“Drop”计数是否增长。

    如果计数为0,设备没有丢弃ARP Request报文。请执行步骤8。
    如果有计数,表示设备收到的ARP Request报文由于超过了CPCAR的速率限制而被丢弃。执行步骤3。

    3、执行命令display cpu-usage,查看主用主控板的CPU占用率信息。

    如果CPU占用率正常,而ARP Request报文被丢弃,可能是CPCAR限制值偏小。执行步骤4。
    如果CPU占用率较高,可能是ARP攻击报文被丢弃。请执行步骤5。

    4、执行命令packet-type适当放大针对ARP Request报文的CPCAR的限制值。

    packet-type命令应该在防攻击策略视图下执行,并应用该防攻击策略才能生效。

    5、在设备与用户连接的接口上抓取报文,分析ARP Request报文的源地址,找出攻击者。

    如果同一个源地址出现在很多ARP Request报文中,则设备认为该地址就是攻击源。可以通过配置黑名单或黑洞MAC对其报文进行丢弃处理。

    6、在设备系统视图下执行命令arp speed-limit source-ip,配置ARP报文源抑制速率。
    缺省情况下,ARP报文按源IP地址抑制功能使能,抑制速率为5pps。

    7、如果故障仍未排除,请收集如下信息,并联系技术支持人员。

    上述步骤的执行结果。

    设备的配置文件、日志信息、告警信息。

  • 相关阅读:
    多源BFS问题
    Java常见异常
    【VMware vCenter】连接和使用vCenter Server嵌入式vPostgres数据库。
    【D01】Django中实现带进度条的倒计时功能(简易版)
    STM8的C语言编程(13)--+蜂鸣器
    cmake中配置了工具链,命令行工具可以找到,但是clion中找不到
    行业追踪,2023-10-26
    两步搭建云成本管理指标中台
    手写深度学习之优化器(SGD、Momentum、Nesterov、AdaGrad、RMSProp、Adam)
    docker新手村教程
  • 原文地址:https://blog.csdn.net/qq_35029061/article/details/125893069