BSD
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
 
User Name:
Password:
Remember me
Go Back   Web Development Archives Mailing Lists BSD

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Display Modes
 
Unread Web Development Archives Sponsor:
  #1  
Old July 6th, 2008, 05:20 PM
Martian67
Guest
Dev Archives Newbie (0 - 499 posts)
 
Posts: n/a  
Time spent in forums:
Reputation Power:
Issues with pf and packet prioritization rules using the hfsc packet scheduler



Hello, and greetings

I am currently experiencing issues with BSD's hfsc packet
scheduler. When I attempt to
issue a "pass out" rule that places various packets in various
queues, it seems my rules are
being ignored by pf, (confirmed using pftop) and placed in the default
queue instead. I have
tried several resources, including manpages and google, but I cannot
seem to make any
progress on this issue.

An example:

pass out on $int_if from any to $pirate queue pirate

Rather than my expected behavior of placing all packets coming from
the internet to host
pirate in the pirate queue, they are instead placed in the default queue.

Another Example:

pass out on $ext_if proto { tcp udp } from $laptop port 3456 to any keep \
state queue bt_user1

(In this case, it is a port i have forwarded through BSD to the host)

Again, rather than expected behavior, everything coming from host
laptop on port 3456
is instead being placed in the default queue


I would greatly appreciate any light that could be shed on my issue

Thank
you for your time


My network Topology

Pirate Lilith
\ / |
Switch| vr1 BSD |
/ \ | gif0 vr0|
Laptop gemini |


my pf.conf follows:



#pf.conf
#martian67

# Interfaces
ext_if="vr0"
int_if="vr1"


#systems
gemini="192.168.1.102"
user2laptop="192.168.1.100"
laptop="192.168.1.101"
pirate="192.168.1.106"
lilith="192.168.1.104"

#local services
tcp_services="{ 2233 }"

#local network
localnets="{ 192.168.1.0/24, 2001:470:1f05:50a::/64 }"

##interactive tcp ports

tcpint="{ 26000 3988 3920 3212 3784 8594 1863 5190 5222 27020:27050 22 \
6667 9999 7000 }"

##interactive udp ports
# steam Teamspeak
# v
udpint="{ 1200 27000:27015 8820 }"


# options
set block-policy drop
set loginterface $ext_if
set skip on lo


# scrub
scrub in all no-df random-id fragment reassemble
scrub on $ext_if all reassemble tcp

##Queues

#upload Queues
#Shaw Upload = 512Kb/s (queue at 96%)
altq on $ext_if bandwidth 491Kb hfsc queue { acku, dnsu, /
intctvu, bulku, bt }
queue acku bandwidth 70% priority 7 qlimit 500 hfsc (realtime \
50%)
queue dnsu bandwidth 7% priority 6 qlimit 500 hfsc (realtime \
5%)
queue intctvu bandwidth 20% priority 5 qlimit 500 hfsc (realtime \
20%) {int_highu, int_lowu}
queue int_highu bandwidth 90% priority 5 qlimit 500 hfsc
queue int_lowu bandwidth 10% priority 4 qlimit 500 hfsc
queue bulku bandwidth 1% priority 4 qlimit 500 hfsc (realtime \
5% default)
queue bt bandwidth 1% priority 3 qlimit 500 hfsc (upperlimit \
99%) {bt_user1, bt_user2}
queue bt_user1 bandwidth 50% priority 3 qlimit 500 hfsc
queue bt_user2 bandwidth 50% priority 3 qlimit 500 hfsc


#Download Queues
#Shaw Download = 5Mb/s (queue at 98%)
altq on $int_if bandwidth 4.95Mb hfsc queue { ackd, user1, user2, bulkd,\
intctvd, dnsd }
queue ackd bandwidth 1% priority 7 qlimit 500 hfsc (realtime \
1%)
queue user1 bandwidth 39% priority 4 qlimit 500 hfsc {gemini, \
lilith, laptop}
queue gemini bandwidth 15% priority 1 qlimit 500 hfsc
queue lilith bandwidth 15% priority 2 qlimit 500 hfsc (realtime \
10%)
queue laptop bandwidth 70% priority 3 qlimit 500 hfsc (realtime \
10%)
queue user2 bandwidth 39% priority 4 qlimit 500 hfsc {pirate, \
user2lap}
queue pirate bandwidth 50% priority 3 qlimit 500 hfsc (realtime \
10%)
queue user2lap bandwidth 50% priority 3 qlimit 500 hfsc (realtime \
10%)
queue bulkd bandwidth 10% priority 2 qlimit 500 hfsc (default)
queue intctvd bandwidth 10% priority 5 qlimit 500 hfsc (realtime \
20%) {int_highd, int_lowd}
queue int_highd bandwidth 90% priority 5 qlimit 500 hfsc
queue int_lowd bandwidth 10% priority 4 qlimit 500 hfsc
queue dnsd bandwidth 1% priority 6 qlimit 500 hfsc (realtime \
5%)




# nat/rdr

nat on $ext_if from !($ext_if) -($ext_if:0)

nat-anchor "ftp-proxy/*"
rdr-anchor "ftp-proxy/*"
rdr on $int_if proto tcp from any to any port ftp -127.0.0.1 port 80

rdr on $ext_if proto tcp from any to any port {3000,21,49152:49256} \
-$gemini
rdr on $ext_if proto {tcp,udp} from any to any port 3456 -$laptop
rdr on $ext_if proto {tcp,udp} from any to any port 4532 -$pirate


## Filters ##

# block all incomming
block in

#no internal network access for users

block out quick on $int_if all user { 1000 }


#block non-routable ips
block in quick on $ext_if inet from { 127.0.0.0/8, 192.168.0.0/16, \
172.16.0.0/12, 10.0.0.0/8 } to any
block out quick on $ext_if inet from any to { 127.0.0.0/8, \
192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }

#no ip spoofing
antispoof quick log (all, to pflog0) for { lo $int_if }

#outgoing tcp modulation
pass out modulate state

anchor "ftp-proxy/*"

# Local ports
pass in on $ext_if inet proto tcp from any to ($ext_if) port $tcp_services


# NAT forwarded ports
pass in on $ext_if inet proto tcp from any to $gemini port {3000,21, \
49152:49256} synproxy state
pass in on $ext_if inet proto {tcp,udp} from any to $laptop port 3456
pass in on $ext_if inet proto {tcp,udp} from any to $pirate port 4532

#allow quick ipv6 tunnel passthrough
pass in quick on $ext_if proto 41 to gif0
pass out quick on gif0 proto 41 to $ext_if

#allow tunnel endpoint pings
pass in quick inet proto icmp from ipv6.he.net to any icmp-type echoreq


queueing rule

UTBND SECTIN

pass out on $ext_if proto tcp from { $localnets, $ext_if } to any flags \
S/SA modulate state queue (bulku, acku)
pass out on $ext_if proto tcp from { $localnets, $ext_if } to any port \
$tcpint flags S/SA modulate state queue (int_lowu, int_highu)
pass out on $ext_if proto udp from { $localnets, $ext_if } to any port \
$udpint keep state queue (int_lowu, int_highu)
pass out on $ext_if proto tcp from ($ext_if) port 2233 to any queue \
(int_lowu, int_highu)
pass out on $ext_if proto { tcp udp } from (ext_if) to any port domain \
keep state queue dnsu
pass out on $ext_if proto { tcp udp } from $laptop port 3456 to any keep \
state queue bt_user1
pass out on $ext_if proto { tcp udp } from $pirate port 4532 to any keep \
state queue bt_user2


INBUND SECTIN
pass out on $int_if proto tcp from any to { $localnets, $ext_if } flags \
S/SA modulate state queue (bulkd, ackd)
pass out on $int_if from any to $gemini queue gemini
pass out on $int_if from any to $user2laptop queue user2lap
pass out on $int_if from any to $laptop queue laptop
pass out on $int_if from any to $pirate queue pirate
pass out on $int_if from any to $lilith queue lilith
pass out on $int_if proto tcp from any to { $localnets, $ext_if } port \
$tcpint flags S/SA modulate state queue (int_lowd, int_highd)
pass out on $int_if proto udp from any to { $localnets, $ext_if } port \
$udpint keep state queue (int_lowd, int_highd)
pass out on $int_if proto { tcp udp } from any to $localnets port domain \
keep state queue dnsd

Reply With Quote
Reply

Viewing: Web Development Archives Mailing Lists BSD > Issues with pf and packet prioritization rules using the hfsc packet scheduler


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are Off
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest Threads | Shoutbox
Forum Jump


Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 





© 2003-2008 by Developer Shed. All rights reserved. DS Cluster 6 hosted by Hostway
Stay green...Green IT