On Jun 16, 2008, at 5:55 AM, Darren Reed wrote:

Rene van Hoek wrote:
Hello,

I am using IPF v4.1.28 on FreeBSD7. The firewall is working stable and does what is is supposed to do. So no problems there.

The following however, I don't expect: In the ipfstat -t output I see the same connections (source-ip, port <--> destination-ip, port) twice.
For example (part of output ipfstat -t):

Source IP Destination IP ST PR #pkts #bytes ttl 80.60.81.93,1363 195.86.22.59,587 B/6 tcp 173 202746 0:13 80.57.132.26,60464 195.86.22.53,22 4/4 tcp 2393 147824 119:59:59 80.60.81.93,1363 195.86.22.59,587 B/6 tcp 88 101445 0:13 80.57.132.26,60477 195.86.22.59,22 4/4 tcp 1077 64400 119:59:47 (*) 77.162.155.20,49808 195.86.22.50,80 4/4 tcp 203 54140 119:59:17 77.162.155.20,49807 195.86.22.50,80 4/4 tcp 173 45966 119:59:16 80.57.132.26,56603 195.86.22.50,80 4/4 tcp 429 45716 96:09:25 78.171.174.130,1675 195.86.22.54,80 4/4 tcp 145 45292 90:04:42 85.147.196.239,54166 195.86.22.52,80 4/4 tcp 95 34286 119:57:45 83.82.139.218,51157 195.86.22.50,80 B/4 tcp 153 33210 0:12 80.57.132.26,60477 195.86.22.59,22 4/4 tcp 540 32296 119:59:47 (*)

Marked with * is twice.

The output of ipfstat is:

IP states added:
   1862533 TCP
   523994 UDP
   0 ICMP
   49403681 hits
   9612162 misses
   0 bucket full
   0 maximum rule references
   0 maximum
   0 no memory
   1231 bkts in use
   2496 active
   523940 expired
   1860091 closed
State logging enabled

State table bucket statistics:
   1231 in use       49% hash efficiency
   1.89% bucket usage
   0 minimal length
   4 maximal length
   2.028 average length

TCP Entries per state
0 1 2 3 4 5 6 7 8 9 10 11 0 0 24 0 1017 556 12 0 10 0 332 491

In this output I see that 1231 buckets are in use. Does that mean that there are 1231 connections for which state-informattion is kept in memory?

No.  It is hash table terminology.

I see that there are 2496 'active'. Does that mean that there are 2496 hashes which point too the 1231 connections? Is that the (1231/2496) = 49% hash efficiency?

No and yes.

So does ipfstat -t takes the hash-entries and shows the information found in the buckets? Does that explain why the output of ipfstat - t shows connections twice?
Is this behavior by design or should I worry about it?

hmmm... so it could be the mechanism used to get state entries out
of the kernel is walking through a very active list and that it changes
between the first and the n-th, displaying an entry twice.

Darren


Hi,

I took the output of ipfstat -sl, to see the current states. I see the same source-ip, port <--> destination-ip, port connections twice. For example:

82.35.175.131 -> 213.201.199.243 pass 0x40004502 pr 6 state 11/4
        tag 0 ttl 575536
        1201 -> 80 d422a986:43c21a31 65535<<0:65535<<0
        cmsk 0000 smsk 0000 s0 d422a8f2/43c14142
        FWD:ISN inc 0 sumd 0
        REV:ISN inc 0 sumd 0
        forward: pkts in 21 bytes in 1000 pkts out 22 bytes out 1048
        backward: pkts in 40 bytes in 57143 pkts out 40 bytes out 57143
        pass out quick keep state       IPv4
        pkt_flags & 0(10000) = 1000,                pkt_options & ffffffff = 0, 
ffffffff = 0
        pkt_security & ffff = 0, pkt_auth & ffff = 0
        is_flx 0x1 0x1 0x1 0x1
        interfaces: in X[em0],X[bge0] out X[bge0],X[bridge0]
        Sync status: not synchronized
82.35.175.131 -> 213.201.199.243 pass 0x40008502 pr 6 state 11/4
        tag 0 ttl 575536
        1201 -> 80 d422a986:43c21a31 65535<<0:65535<<0
        cmsk 0000 smsk 0000 s0 d422a8f2/43c14142
        FWD:ISN inc 0 sumd 0
        REV:ISN inc 0 sumd 0
        forward: pkts in 1 bytes in 48 pkts out 22 bytes out 1048
        backward: pkts in 40 bytes in 57143 pkts out 40 bytes out 57143
        pass in quick keep state        IPv4
        pkt_flags & 0(10000) = 1000,                pkt_options & ffffffff = 0, 
ffffffff = 0
        pkt_security & ffff = 0, pkt_auth & ffff = 0
        is_flx 0x1 0x1 0x1 0x1
        interfaces: in X[em0],X[bridge0] out X[bridge0],X[em0]
        Sync status: not synchronized

These are the same connection listed twice. What I notice is the different list of interfaces in the two states. My ifconfig output is as follows:

em0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=198<VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
        ether 00:15:17:75:ab:84
        inet 195.86.22.53 netmask 0xfffffff0 broadcast 195.86.22.63
        media: Ethernet autoselect (100baseTX <half-duplex>)
        status: active
em1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
        ether 00:15:17:75:ab:85
        media: Ethernet autoselect
        status: no carrier
bge0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=98<VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:1e:c9:bb:7f:fd
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active
bge1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:1e:c9:bb:7f:fe
        media: Ethernet autoselect (none)
        status: no carrier
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 32:39:9f:e0:10:a3
        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
        maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
        member: bge0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
        member: em0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>

Interface em0 is connected too the internet. bge0 is through a Cisco switch connected to our servers.

Reply via email to