On Thu, Nov 17, 2005 at 03:21:01PM +0000, Karl O. Pinc wrote:
> Let me apologize in advance: when all you've got is a hammer,
> everything looks like a nail.  I keep harping on the 2MSL TCP
> rule -- reuse of source IP/port dest IP/port quad.  So,
> could be a TCP(ish) issue, although I don't feel entirely
> qualified to claim this.
> 
> Seems to me like you could be burning through all the possible
> source ports the client wants to use.  After that the firewall
> sees the TCP violation and does not let the traffic through,
> seeing the reuse as a spoof attempt.  When the FIN-WAITs expire
> then you've got another bunch of "quads" to use and things rip
> again for a while until you again run out.

This definitely looks to be happening:

$  tcpdump -nr 12345.pcap dst port 12345 and \
   '(tcp[tcpflags] & tcp-syn != 0)' \
   | awk '{print $3}' |awk -F. '{print $5}' | \
   sort |uniq -c |sort -n | tail

      1 60234
      1 60319
      1 60402
      1 60460
      1 60783
      1 60798
      1 60965
      1 60981
      1 60998
      4 40856

And, sure enough, source port 40856 is where things go wrong.  You can
see in the packet capture that when things get to this point, the client
sends 3 syns in rapid succession from this source port and the firewall
doesn't allow them through.  I've seen a case or two where the last of
the 3 got through, likely because timers had started to expire.  Source
port 40856 was used at time X and a second or two later, it gets reused.

Now my problem is figuring out how to deal with this situation.
I believe the firewall is doing what it should but others may argue it
is being too strict.  I could also just widen the defaut port range on
the clients, but that doesn't strike me as the best solution.

Thanks very much for your input! 

-jon


Reply via email to