On Tue, Mar 02, 2004 at 09:27:48AM -0800, Getchell, Adam wrote:

> I'm under the impression pf keeps the state table across reboots, but
> Googling for it just gives Darren Reed's response:
> http://monkey.org/openbsd/archive/misc/0201/msg01135.html
> 
> Does it?

No, the state table is not stored in a file and reloaded on reboot,
though that wouldn't be hard to do (the ioctl API is there already), I
guess it's just not generally useful enough.

If you filter TCP statefully and create state only on SYN packets (using
flags S/SA keep state), a reboot will stall or reset your existing
connections.

If you allow non-SYN packets to create state (without flags S/SA), the
next packet seen after reboot for an existing connection will create a
new state entry, and the connections continues to work (assuming the
next packet, which can be coming from either direction, on more than one
interface possibly, actually matches a pass keep state rule).

Some features like modulate state, syn-proxy or window scaling support
only work when pf creates state on the initial SYN and sees the TCP
handshake. So creating state from non-SYN will not work properly when
these features are used/needed.

Daniel

Reply via email to