[c-nsp] service policy + SYN flood vs. periodic high cpu load

Nemeth Laszlo csirek at cooler.hu
Thu Nov 6 11:24:38 EST 2008


Hi all,

I'm testing the control plane policy in my lab. Now i found a very 
interesting event.

I have a 6500/sup720 whit different IOS (SXF6, SXF10a, SXH3a). I send a 
very big SYN flood to this router.

I'm doing this test in clear config. (erase startup, reload :) )

I made a policy:

class-map match-all synfloodgeprol
   match access-group 199
!
policy-map synflood-in
   class synfloodgeprol
    police cir 128000 bc 4000 be 4000    conform-action transmit 
exceed-action drop     violate-action drop
!
access-list 199 remark DEFAULT
access-list 199 permit tcp any any
access-list 199 permit udp any any
access-list 199 permit icmp any any
access-list 199 permit ip any any
!
interface GigabitEthernet5/2
  ip address 10.0.0.1 255.255.255.0
  load-interval 30
  media-type rj45
  service-policy input synflood-in

I tried to put the service-policy to the control-plane but no difference:

The input interface traffic is:

   30 second input rate 155775000 bits/sec, 304249 packets/sec
   30 second output rate 128000 bits/sec, 250 packets/sec

The output rate is good, the cpu receive 128K SYN and answer 128K 
ACK/RST packets because my policy is working. That is the goal in this case.

Under this flood the CPU load:

Router#cpu
CPU utilization for five seconds: 0%/0%; one minute: 3%; five minutes:6%
  PID Runtime(ms)   Invoked      uSecs   5Sec   1Min   5Min TTY Process
    3        1368      1378        992  0.55%  0.07%  0.06%   0 Exec 

    5        3868       263      14707  0.00%  0.33%  0.25%   0 Check hea
   20        2624     34446         76  0.00%  0.09%  0.06%   0 IPC Seat
   43         652        27      24148  0.00%  0.02%  0.00%   0 Per-minu
  155       57572    310276        185  0.00%  1.57%  3.56%   0 IP Input 

  230         368      2206        166  0.00%  0.01%  0.00%   0 CEF: IPv4
  240         528       703        751  0.07%  0.03%  0.02%   0 HIDDEN VL

The policy is working great.

But. In every 4. minutes the cpu load goes up:

Router#cpu
CPU utilization for five seconds: 79%/68%; one minute: 8%; five minutes: 6%
  PID Runtime(ms)   Invoked      uSecs   5Sec   1Min   5Min TTY Process
    3        2012      1617       1244  0.31%  0.61%  0.22%   0 Exec 

    5        4072       278      14647  0.00%  0.20%  0.22%   0 Check hea
   20        2812     37348         75  0.00%  0.04%  0.05%   0 IPC Seat
   27          56       555        100  0.00%  0.02%  0.00%   0 EnvMon 

   43         708        29      24413  0.00%  0.03%  0.00%   0 Per-minut
  155       59732    336634        177 10.47%  1.13%  2.68%   0 IP Input 

  230         400      2373        168  0.00%  0.01%  0.00%   0 CEF: IPv4
  240         568       756        751  0.00%  0.03%  0.02%   0 HIDDEN VL

some second later:

Router#cpu
CPU utilization for five seconds: 99%/7%; one minute: 15%; five minutes: 7%
  PID Runtime(ms)   Invoked      uSecs   5Sec   1Min   5Min TTY Process
    3        2100      1637       1282  1.11%  0.65%  0.23%   0 Exec 

    5        4072       278      14647  0.00%  0.19%  0.22%   0 Check he
   20        2812     37348         75  0.00%  0.03%  0.05%   0 IPC Seat
   27          56       555        100  0.00%  0.02%  0.00%   0 EnvMon 

   43         708        29      24413  0.00%  0.03%  0.00%   0 Per-minu
   77         252      1539        163  0.07%  0.00%  0.00%   0 Heartbeat
  155       66192    338269        195 90.71%  8.30%  4.14%   0 IP Input 

  230         400      2382        167  0.07%  0.02%  0.00%   0 CEF: IPv4
  240         572       759        753  0.00%  0.03%  0.01%   0 HIDDEN VL

and again some second later:

Router#cpu
CPU utilization for five seconds: 0%/0%; one minute: 2%; five minutes: 6%
  PID Runtime(ms)   Invoked      uSecs   5Sec   1Min   5Min TTY Process
    3        2320      1730       1341  0.23%  0.08%  0.17%   0 Exec 

    5        4552       308      14779  0.00%  0.25%  0.24%   0 Check hea
   20        3008     40249         74  0.00%  0.04%  0.04%   0 IPC Seat 

   43         792        32      24750  0.00%  0.04%  0.00%   0 Per-minu
   77         316      1702        185  0.00%  0.01%  0.00%   0 Heartbeat
  155       68644    378964        181  0.00%  1.03%  3.26%   0 IP Input 

  230         444      2639        168  0.07%  0.02%  0.00%   0 CEF: IPv4
  240         636       841        756  0.00%  0.03%  0.02%   0 HIDDEN VL



This is the history of cpu:

             55555999999999944444
        333330000099999666667777711111          2222211111
100              **********
  90              **********
  80              **********
  70              **********
  60              **********
  50         ********************
  40         ********************
  30         ********************
  20         ********************
  10         ********************
    0....5....1....1....2....2....3....3....4....4....5....5....
              0    5    0    5    0    5    0    5    0    5
                CPU% per second (last 60 seconds)

       1
       0   9   9  12
     460444944394439
100   *   *   *
  90   *   *   *
  80   *   *   *
  70   *   *   *
  60   *   *   *
  50   *   *   *
  40   *   *   *
  30   *   *   *   *
  20   #   #   #   *
  10   #   #   #  **
    0....5....1....1....2....2....3....3....4....4....5....5....
              0    5    0    5    0    5    0    5    0    5
                CPU% per minute (last 60 minutes)
               * = maximum CPU%   # = average CPU%


If i increase the 128K to 256K in the policy, the big CPU load comes in 
every 2. minutes.

If i set it on 64K, the load is stay in every 4. minutes, but is ~40-50% 
instead 100%.

Any idea?

Thanks

Laszlo


More information about the cisco-nsp mailing list