PF : gestion QoS HFSC avec ALTQ

Boris HUISGEN
|
Configuration noyau
# PF SUPPORT
device pf
device pfsync
device pflog
device carp
options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_PRIQ
Configuration ALTQ
altq on igb0 bandwidth 853Kb hfsc queue { net_ack, net_dns, net_ssh, net_web, net_bulk, net_p2p }
queue net_ack bandwidth 30% qlimit 50 hfsc (realtime 20%)
queue net_dns bandwidth 5% qlimit 50 hfsc (realtime 2%)
queue net_ssh bandwidth 20% qlimit 50 hfsc (realtime 20%) { net2_ssh_bulk, net2_ssh_login }
queue net_ssh_bulk bandwidth 50% qlimit 50 hfsc
queue net_ssh_login bandwidth 50% qlimit 50 hfsc
queue net_web bandwidth 20% qlimit 50 hfsc (realtime (20%, 10000, 5%))
queue net_bulk bandwidth 5% qlimit 50 hfsc (realtime 2% default, ecn)
queue net_p2p bandwidth 1% qlimit 50 hfsc (upperlimit 50%)
Régles de filtrage PF
pass out quick on igb0 inet proto tcp from any to any port 53 flags any queue net_dns
pass out quick on igb0 inet proto udp from any to any port 53 queue net_dns
pass out quick on igb0 inet proto tcp from any to any port 22 flags any queue (net_ssh_bulk, net_ssh_login)
pass out quick on igb0 inet proto tcp from any to any port { 80, 443 } flags any queue net_web
pass out quick on igb0 inet proto tcp from any to any flags any queue (net_bulk, net_ack)
pass out quick on igb0 inet proto udp from any to any port 10000 queue net2_p2p
Attention ! L’option queue, à l’inverse de l’option tag, n’est pas sticky. Le choix de la queue s’appuie donc sur la dernière règle validant le paquet. Si cette dernière ne précise aucune queue, la queue par défaut est donc utilisée. Dans le cas d’une QoS sur les flux FTP, il est nécessaire de spécifier la queue utilisée par ftp-proxy par le biais de son option -q.
Pour tester et valider toutes vos règles PF et ALTQ, pftop est d’un grand secours.