接入侧有环路或者攻击之类导致同一站点的PE设备IGP,LDP,BGP,VRRP协议震荡

发布时间:  2010-05-05 浏览次数:  80 下载次数:  1
问题描述
拓扑见附件,版本是:V3R3C02B608+SPH031
故障现象:某天的下午14:00--16:00期间,该站点的所有2/3G业务中断,核心网的设备也无法从远程管理;我们PE设备上的Logbuffer显示OSPF,LDP,VRRP频繁震荡。16:00后,业务全部自动恢复正常。

OSPF:
Apr 15 2010 14:01:17 WGL-NE40E-4-PE-A %%01OSPF/3/NBR_CHG_DOWN(l): Neighbor event:neighbor state changed to Down. (ProcessId=2, NeighborAddress=10.31.237.54, NeighborEvent=InactivityTimer, NeighborPreviousState=Full, NeighborCurrentState=Down)
Apr 15 2010 14:01:17 WGL-NE40E-4-PE-A %%01OSPF/6/NBR_DOWN_REASON(l): Neighbor state leaves full or changed to Down. (ProcessId=2, NeighborRouterId=10.31.237.54, NeighborAreaId=0, NeighborInterface=Eth-Trunk0.1,NeighborDownImmediate reason=Neighbor Down Due to Inactivity, NeighborDownPrimeReason=Hello Not Seen, NeighborChangeTime=[2010/04/15] 14:01:17)
Apr 15 2010 14:02:33 WGL-NE40E-4-PE-A %%01OSPF/3/NBR_CHG_DOWN(l): Neighbor event:neighbor state changed to Down. (ProcessId=1, NeighborAddress=10.31.238.17, NeighborEvent=InactivityTimer, NeighborPreviousState=Full, NeighborCurrentState=Down)
Apr 15 2010 14:02:33 WGL-NE40E-4-PE-A %%01OSPF/6/NBR_DOWN_REASON(l): Neighbor state leaves full or changed to Down. (ProcessId=1, NeighborRouterId=10.31.239.1, NeighborAreaId=0, NeighborInterface=Eth-Trunk5,NeighborDownImmediate reason=Neighbor Down Due to Inactivity, NeighborDownPrimeReason=Hello Not Seen, NeighborChangeTime=[2010/04/15] 14:02:33)
LDP
#Apr 15 14:00:55 2010 WGL-NE40E-4-PE-A LDP/4/SessionDown: Session(10.31.239.69:0. public Instance)'s state change to Down
#Apr 15 14:00:55 2010 WGL-NE40E-4-PE-A LDP/4/SessionDown:The session 1.3.6.1.2.1.10.166.4.0.4 went Down.
#Apr 15 14:00:55 2010 WGL-NE40E-4-PE-A LDP/4/SessionDownReason:The session 1.3.6.1.4.1.2011.5.25.143.2.1 went Down.
#Apr 15 14:00:55 2010 WGL-NE40E-4-PE-A LSPM/4/TRAP:1.3.6.1.2.1.10.166.2.0.2 LSP 73683 went Down.
Apr 15 2010 14:00:55 WGL-NE40E-4-PE-A %%01LDP/6/PRONOTI(l): The session was deleted and the notification sent by the peer was handled.(Notification=HOLD_TIMER_EXPIRED, PeerId=10.31.239.69 )
Apr 15 2010 14:00:55 WGL-NE40E-4-PE-A %%01RM/3/LDP_SESSION_STATE(l): RM received the status DOWN of the LDP session on the Eth-Trunk0.2.
Apr 15 2010 14:00:55 WGL-NE40E-4-PE-A %%01OSPF/6/LDP_SYNC_EVENT(l): Interface Eth-Trunk0.2 received LDP Session Down from RM, LDP synchronization state Sync-Achieved change to HoldMaxCost.
Apr 15 2010 14:00:55 WGL-NE40E-4-PE-A %%01RM/3/NOTIFY_OSPF_MSG(l): RM notified OSPF of the status DOWN of the LDP session on the Eth-Trunk0.2.
#Apr 15 14:00:59 2010 WGL-NE40E-4-PE-A LDP/4/SessionDown: Session(10.31.239.1:0. public Instance)'s state change to Down
#Apr 15 14:00:59 2010 WGL-NE40E-4-PE-A LDP/4/SessionDown:The session 1.3.6.1.2.1.10.166.4.0.4 went Down.
#Apr 15 14:00:59 2010 WGL-NE40E-4-PE-A LDP/4/SessionDownReason:The session 1.3.6.1.4.1.2011.5.25.143.2.1 went Down.
Apr 15 2010 14:00:59 WGL-NE40E-4-PE-A %%01LDP/4/HOLDTMREXP(l): Sessions were deleted because the hello hold timer expired. (PeerId=10.31.239.1)
Apr 15 2010 14:00:59 WGL-NE40E-4-PE-A %%01LDP/4/DELSSNSENDNOTI(l): The session was deleted and the notification HOLD_TIMER_EXPIRED was sent to the peer 10.31.239.1.
Apr 15 2010 14:00:59 WGL-NE40E-4-PE-A %%01LDP/6/PEERRESTART(l): The peer LSR 10.31.239.1 was restarting.
VRRP
Apr 15 14:07:10 2010 WGL-NE40E-4-PE-A VRRP/3/VRRPCHANGETOMASTER:OID 1.3.6.1.2.1.68.0.1 Became to be new master!
Apr 15 2010 14:07:10 WGL-NE40E-4-PE-A %%01VRRP/4/STATEWARNING(l): Virtual Router state BACKUP changed to MASTER, because of priority calculation. (Interface=Vlanif50, VrId=1)
#Apr 15 14:07:10 2010 WGL-NE40E-4-PE-A VRRP/3/VRRPCHANGETOMASTER:OID 1.3.6.1.2.1.68.0.1 Became to be new master!
Apr 15 2010 14:07:10 WGL-NE40E-4-PE-A %%01VRRP/4/STATEWARNING(l): Virtual Router state BACKUP changed to MASTER, because of priority calculation. (Interface=Vlanif60, VrId=11)
处理过程

1.协议报文上送时被改写
2.协议报文上送通道拥塞,导致协议报文被丢弃

1.按照以往的经验,此种现象一般是接入侧有环路,导致大量组播报文上送,从而使上送通道拥塞,正常的协议报文被丢弃。当问题发生时,和一线确认过接入侧是否有环路,一线的工程师和客户也确认过,客户的反馈是这段时间内没有什么操作,但是具体情况是怎么样我们就不清楚了。
2.后来根据研发要求搜集了一些底层信息,根据采集的IP,TCP,UDP统计信息来看,历史记录中没有checksum错误,同时在出现问题的时候,可以通过1号板telnet至出现问题的设备上,说明报文改写的可能性并不大(当然,也可能只改某种类型的报文或报文某bit).而且如果时器件报文改写,很少有在不操作的情况下能够自动恢复的.从而排除第一个原因.
3.继续怀疑是协议报文上送时被丢弃,根据后面搜集的结果看出:有大量的保留组播报文被丢弃,当然这些协议报文恰恰使用的是这些保留组播地址的,由于一线反馈故障的时候故障早已经恢复,没有办法去查询具体的发生这些组播报文的源地址,同时其他所有的底层信息都是正常的,而且这些丢弃计数只是一个累加值,没有办法确定是否是此段时间产生的,故只能怀疑是接入侧有环路或者病毒攻击之类.
[WGL-NE40E-4-PE-A]dis cpu-defend slot 1 car index 51
slot : 1
(51)Special IPV4 multicast packet:224.0.0.0-224.0.0.255 information:
  passed : 14199976 packets
  dropped : 1193577803 packets
  cir : 1500kbps
  cbs : 90000bytes
  priority : high
  min-packet-length : 128bytes
[WGL-NE40E-4-PE-B]dis cpu-defend slot 1 car index 51
slot : 1
(51)Special IPV4 multicast packet:224.0.0.0-224.0.0.255 information:
  passed : 25623880 packets
  dropped : 592814929 packets
  cir : 1500kbps
  cbs : 90000bytes
  priority : high
  min-packet-length : 128bytes

根因

收到攻击导致,组播上送通道拥塞,需要使用组播报文的协议都会出现振荡现象

解决方案

排查下游设备,是否存在攻击或者环路

建议与总结
由于故障的时候不能第一时间去搜集一些信息,加上所有的其他疑点都已经排除,定为接入侧有环路或者攻击。
若故障再次发生时,通过以下命令进行定位:
1.查看邻居中断的接口是否有大量的组播和广播报文计数的增长:用户视图使用display interface interface-num
2.查看cpu-define查看是否有大量的广播和保留组播报文被CAR掉:
     隐藏视图使用 dis cpu-defend slot slot-num car index 51  ---保留组播
     隐藏视图使用 dis cpu-defend slot slot-num car index 8  ---arp广播
3.查看接口板和主控板的CPU是否升高,同时查看任务的CPU占用情况
   用户视图使用 display health       ----查看CPU占用率
   用户视图使用 display  cpu-usage   ----查看主控板的任务状态
   用户视图使用 display  cpu-usage slot slot-num   ----查看主控板的任务状态
4.从底层抓包,从而定位出攻击源:
[PE-A-hidecmd]display  pe-probe  5 0 epe-dmadata 
改进建议:
将OSPF,LDP,VRRP,BGP等协议报文的上送优先级设为最高,这样一旦发生同样故障,保证协议报文优先上送,同时在接入层端口上配置组播和广播报文抑制功能,详细配置见附件。

END