[Bug 217997] [pf] orphaned entries in src-track

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed Mar 22 10:12:58 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=217997

            Bug ID: 217997
           Summary: [pf] orphaned entries in src-track
           Product: Base System
           Version: 10.3-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: rs at bytecamp.net

There seems to be a flaw in the src-track cleanup code. This has been
discovered since 10.3.

pf.conf is (stripped down to the relevant parts):

-- 8< ------------------------

rdr proto tcp from any to $public-ip port http -> <www-pool> port http \
        round-robin sticky-address

table <www-pool> persist  { $www-addr, $www-addr2, $www-addr3 }

block in all
block out all

pass quick proto tcp from any to <www-pool> port 80 \
        keep state \
        ( source-track rule, max 8192, max-src-states 96, \
          tcp.closing 20, tcp.finwait 15 )

-- 8< ------------------------

The problem is, that src-track table grows until no more entries can be
inserted. Although there are no states from a sample ip-address in the state
table, there are still references in the src-track table:

# pfctl -vsS | grep -A1 $example-address
$example-address -> $www-addr ( states 4, connections 0, rate 0.0/0s )
   age 01:47:25, 4808 pkts, 1713437 bytes, rdr rule 0

# pfctl -sS | grep $example-address
(nothing shown)

To circumvent this problem, we have to parse pfctl output and kill over-aged
source tracking entries manually.

Maybe someone can track this down.

Regards,
Robert Schulze

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list