Subject: Re: SYN cookie firewall
To: suxm <suxm@gnuchina.org>
From: Jon Lindgren <jlindgren@slk.com>
List: tech-net
Date: 04/20/2001 10:10:03
On Thu, 19 Apr 2001, suxm wrote:

> hello, everyone.
> 
> Please think over the following figure.
> 
>             client           NetBSD Firewall           server
>             ------          ----------          ------
>    1.        SYN----------- - - - - - - - - - ->
>    2.           <------------SYN-ACK(cookie)
>    3.        ACK----------- - - - - - - - - - ->
>    4.           - - - - - - -SYN--------------->
>    5.           <- - - - - - - - - ------------SYN-ACK
>    6.           - - - - - - -ACK--------------->
> 
>    7.           -----------> relay the  ------->
>                 <----------- connection <-------
> 
>    1. A SYN is sent from C(client) to S(server)
>    2. The firewall acts as S to respond a SYN-ACK with SYN cookie.
>    3. C send the ACK. Then the connection should be established.

Again, what happens if the ACK packet sent in step 3 is dropped?  It is
the server's responsibility to resend the SYN-ACK (step 2) if it
doesn't receive an ACK from the client within a certain period of
time.  Since there is no state on the server, it cannot resend the
SYN-ACK packet.  Connections won't setup in this case, and the client will
hang, waiting for events which never occur.

Both sommerfeld@orchard.arlington.ma.us and thorpej@zembu.com,
along with many others on this list and other lists, have mentioned
this issue more than once.  If you have a solution to this problem, then
great - let's hear it!  I'm all for improvements!

-
Jon
 --------------------------------------------------------------------
 - The opinions expressed are not necesarily those of my employer.
   "I wonder how many people actually read my .sig?"