[c-nsp] 6509-IOS Firewalls causing RST storm that max CPU
Grant Moerschel
gm at wavegard.com
Sat Feb 12 19:26:53 EST 2005
Hello all,
I have an environment with two 6509 switches linked together via a trunk
passing one vlan. Both chassis run 12.2.18sxd3 IOS firewall code. We
use ip inspect inbound on both sides of the vlan providing the link. We
are seeing strange behavior (often with ftp) that when the client ends a
connection correctly using fins (fin, then fin, then ack, then ack), the
server will shortly thereafter send a rst to the client which will kick
off a rst storm ping pong match back and forth between the client and
server to the point that it makes one sup2 go to 99% cpu and the sup720
on the other side go to 80%.
Here's the strange thing. The hosts are not doing it but the firewall
function is. This was proven with sniffer traces showing zero traffic
actually hitting the vlans where the hosts were during a storm. We think
that the firewall thinks the host is under attack and is resetting the
connection on the hosts behalf. Bear in mind that this ios rev does
_not_ support IP audit which is part of the cbac functionality. IP audit
will allow you, on smaller platforms, to send rst packets in response to
attacks. So this 6509 shouldn't even be doing this unless I am
mistaken?? What am I missing?
I bumped the fin wait time to 15 seconds. Fin wait keeps the session in
the firewall for x seconds after a session is torn down so that any
other packets coming in won't ge bounced. Used with NFS I think which is
not what we are doing but it was worth a try.
Here's a snippet from a flood I sniffed - starting at the end of a
normal tcp session. Notice where the rst start going back and forth:
---
16:57:32.246355 IP 10.237.102.53.50270 > 10.232.188.200.80: S
4081749102:4081749102(0) win 5840 <mss 1460,sackOK,timestamp 105526533
0,nop,wscale 0>
16:57:32.286018 IP 10.232.188.200.80 > 10.237.102.53.50270: S
482684002:482684002(0) ack 4081749103 win 16464 <mss 1372,nop,wscale
0,nop,nop,timestamp 0 0,nop,nop,sackOK>
16:57:32.286185 IP 10.237.102.53.50270 > 10.232.188.200.80: . ack 1 win
5840 <nop,nop,timestamp 105526537 0>
16:57:32.288077 IP 10.237.102.53.50270 > 10.232.188.200.80: P 1:329(328)
ack 1 win 5840 <nop,nop,timestamp 105526537 0>
16:57:32.288157 IP 10.237.102.53.50270 > 10.232.188.200.80: P
329:635(306) ack 1 win 5840 <nop,nop,timestamp 105526537 0>
16:57:32.327566 IP 10.232.188.200.80 > 10.237.102.53.50270: . ack 635
win 15830 <nop,nop,timestamp 12111000 105526537>
16:57:32.476047 IP 10.232.188.200.80 > 10.237.102.53.50270: P 1:172(171)
ack 635 win 15830 <nop,nop,timestamp 12111002 105526537>
16:57:32.476249 IP 10.237.102.53.50270 > 10.232.188.200.80: . ack 172
win 6432 <nop,nop,timestamp 105526556 12111002>
16:57:32.478250 IP 10.232.188.200.80 > 10.237.102.53.50270: .
172:1532(1360) ack 635 win 15830 <nop,nop,timestamp 12111002 105526537>
16:57:32.478316 IP 10.237.102.53.50270 > 10.232.188.200.80: . ack 1532
win 9520 <nop,nop,timestamp 105526556 12111002>
16:57:32.518355 IP 10.232.188.200.80 > 10.237.102.53.50270: P
2892:3203(311) ack 635 win 15830 <nop,nop,timestamp 12111002 105526556>
16:57:32.518503 IP 10.237.102.53.50270 > 10.232.188.200.80: . ack 1532
win 9520 <nop,nop,timestamp 105526560 12111002,nop,nop,sack sack 1
{2892:3203} >
16:57:32.518889 IP 10.232.188.200.80 > 10.237.102.53.50270: .
1532:2892(1360) ack 635 win 15830 <nop,nop,timestamp 12111002 105526556>
16:57:32.518939 IP 10.237.102.53.50270 > 10.232.188.200.80: . ack 3203
win 12240 <nop,nop,timestamp 105526560 12111002>
16:57:32.519095 IP 10.237.102.53.50270 > 10.232.188.200.80: F 635:635(0)
ack 3203 win 12240 <nop,nop,timestamp 105526560 12111002>
16:57:32.560448 IP 10.232.188.200.80 > 10.237.102.53.50270: F
3203:3203(0) ack 635 win 15830 <nop,nop,timestamp 12111003 105526560>
16:57:32.560464 IP 10.232.188.200.80 > 10.237.102.53.50270: . ack 636
win 15830 <nop,nop,timestamp 12111003 105526560>
16:57:32.560629 IP 10.237.102.53.50270 > 10.232.188.200.80: . ack 3204
win 12240 <nop,nop,timestamp 105526564 12111003>
16:57:32.600087 IP 10.232.188.200.80 > 10.237.102.53.50270: R
482687205:482687205(0) win 0
16:57:32.600394 IP 10.237.102.53.50270 > 10.232.188.200.80: R
482687205:482687205(0) win 15830
16:57:32.600581 IP 10.232.188.200.80 > 10.237.102.53.50270: R 0:0(0) win
12240
16:57:32.600774 IP 10.237.102.53.50270 > 10.232.188.200.80: R 0:0(0) win
15830
16:57:32.600953 IP 10.232.188.200.80 > 10.237.102.53.50270: R 0:0(0) win
12240
16:57:32.601126 IP 10.237.102.53.50270 > 10.232.188.200.80: R 0:0(0) win
15830
16:57:32.601298 IP 10.232.188.200.80 > 10.237.102.53.50270: R 0:0(0) win
12240
16:57:32.601476 IP 10.237.102.53.50270 > 10.232.188.200.80: R 0:0(0) win
15830
16:57:32.601649 IP 10.232.188.200.80 > 10.237.102.53.50270: R 0:0(0) win
12240
16:57:32.601831 IP 10.237.102.53.50270 > 10.232.188.200.80: R 0:0(0) win
15830
16:57:32.602002 IP 10.232.188.200.80 > 10.237.102.53.50270: R 0:0(0) win
12240
16:57:32.602184 IP 10.237.102.53.50270 > 10.232.188.200.80: R 0:0(0) win
15830
... and it keeps going ...
Grant Moerschel
More information about the cisco-nsp
mailing list