Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Mar 2006 17:29:02 +0100
From:      Andrew Seguin <asegu_fbsdnet@borgtech.ca>
To:        freebsd-ipfw@freebsd.org
Subject:   IPFW/Dummynet situation
Message-ID:  <4416EF4E.5020903@borgtech.ca>

next in thread | raw e-mail | index | archive | help
I have a problem nagging at me for a while now...

If I create a pipe with a dst-ip mask (I haven't tried with a src-ip 
mask) and a bandwith limit, the limit isn't respected properly. I know 
it's not in the firewall rules themselves, the traffic goes into the 
pipe, just when I use ipfw pipe show, I see more traffic then should 
have been allowed, which is starting to be problematic considering the 
slow internet pipe here.

For example:
10 second averages show 5 users receiving closer to (and above) 300kbps. 
I thought maybe it was just my mental conversion from bytes to kbit that 
was wrong, but I calculated: 250kbit / 8 = 31.25KByte, so I shouldn't 
see more then 31000bytes in a dump (310 000 bytes for a 10s dump, 3.1M 
for a 100s dump, etc), yet it isn't so per the dumps below:

firewall# ipfw pipe 20 delete && ipfw pipe 20 config bw 250kbps mask 
dst-ip 0x000000ff && sleep 10 && ipfw -s 4 pipe 20 show

00020: 250.000 Kbit/s    0 ms   50 sl. 13 queues (64 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x000000ff/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes 
Pkt/Byte Drp
 23 ip           0.0.0.0/0           0.0.0.215/0      541   393993 48 
38867 113
 49 ip           0.0.0.0/0           0.0.0.177/0      568   392311 50 
50243  82
 23 ip           0.0.0.0/0           0.0.0.151/0      419   359542 40 
34010  26
 25 ip           0.0.0.0/0           0.0.0.217/0      396   356667 44 
41133  17
 19 ip           0.0.0.0/0           0.0.0.147/0      589   338828 47 
24481  34
 59 ip           0.0.0.0/0           0.0.0.251/0      299    97693  0    
0   0
 14 ip           0.0.0.0/0           0.0.0.206/0       39     5878  0    
0   0
 33 ip           0.0.0.0/0           0.0.0.225/0       34     5039  0    
0   0


100 second averages:
A014# ipfw pipe 20 delete && ipfw pipe 20 config bw 250kbps mask dst-ip 
0x000000ff && sleep 100 && ipfw -s 4 pipe 20 show
00020: 250.000 Kbit/s    0 ms   50 sl. 28 queues (64 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x000000ff/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes 
Pkt/Byte Drp
 23 ip           0.0.0.0/0           0.0.0.215/0     4820  3561827 47 
55472 1758
 19 ip           0.0.0.0/0           0.0.0.147/0     3604  3171878  0    
0 126
 25 ip           0.0.0.0/0           0.0.0.217/0     3876  2915746 45 
11570  71
 49 ip           0.0.0.0/0           0.0.0.177/0     4845  2764112  5 
2482 138
 23 ip           0.0.0.0/0           0.0.0.151/0     2828  2344594 41 
30362 212
 59 ip           0.0.0.0/0           0.0.0.251/0     4670  1777891  0    
0  21
...

Even with a 1000 second average I still see/have one computer fairly 
high above the limit:

A014# ipfw pipe 20 delete && ipfw pipe 20 config bw 250kbps mask dst-ip 
0x000000ff && sleep 1000 && ipfw -s 4 pipe 20 show
00020: 250.000 Kbit/s    0 ms   50 sl. 43 queues (64 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x000000ff/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes 
Pkt/Byte Drp
 23 ip           0.0.0.0/0           0.0.0.215/0     48823 34909898 49 
39751 14002
 25 ip           0.0.0.0/0           0.0.0.217/0     40294 30358282 23 
19611 1301
...


So is this normal or is it caused by something I'm doing or maybe not?

Thank you for any info!
Andrew




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4416EF4E.5020903>