OpenBSD PF problemas com opcao borrow
Olá todos,
Estou realizando alguns testes com PF (Packet Filter) do OpenBSD para realizar controle de banda nos clientes. Estou querendo liberar uma banda X para cada cliente, mas caso os outros não estejam utilizando, esse cliente possa "emprestar" banda dos outros.
Para isso criei as seguintes regras no meu pf.conf
Código :
######## Normaliza Pacotes ######
scrub in all
######## VARIAVEIS ##############
PASSOUT="pass out quick on"
PASSIN="pass in quick on"
IPLocalHost = "127.0.0.1"
IF_NET="rl1"
IF_EXT="rl0"
######## Regras Controle de Banda ###########
altq on $IF_EXT cbq bandwidth 1000Kb queue { Clientes_01, Resto }
queue Clientes_01 bandwidth 500Kb { Leandro, Patrick, Jose }
queue Leandro bandwidth 150Kb cbq(borrow)
queue Patrick bandwidth 150Kb cbq(borrow)
queue Jose bandwidth 200Kb cbq(borrow)
queue Resto bandwidth 500Kb cbq(default)
### Redirecionamento ftp-proxy ######
rdr on $IF_EXT inet proto tcp from any to any port 21 -> $IPLocalHost port 8081
#### Nat Clientes ####
nat on $IF_NET from 192.168.1.2/32 to any -> 192.168.0.124 # Patrick
nat on $IF_NET from 192.168.2.64/32 to any -> 192.168.0.124 # Leandro
### Aplica Regras Controle de Banda ###
$PASSOUT $IF_EXT inet proto tcp from any to any port 22 keep state
$PASSOUT $IF_EXT from any to 192.168.1.0/24 queue Patrick
$PASSOUT $IF_EXT from any to 192.168.2.0/24 queue Leandro
Bom, as regras acima estão rodando, a banda está sendo limitada para cada cliente, o que não está acontecendo é o emprestimo de banda, a banda fica limitada ao que foi definido na classe de cada cliente mesmo que ninguem mais esteja utilizando. Parece que a opcao borrow não adianta de nada.
Alguém saberia me dizer se tem alguma coisa errada, ou teria um exemplo funcional.
Att,
Leandro
OpenBSD PF problemas com opcao borrow
Tem esse exemplo aqui, mas usado em cima de portas.
# $FreeBSD: src/share/examples/pf/queue1,v 1.1.2.1 2004/09/17 18:27:15 mlaier Exp $
# $OpenBSD: queue1,v 1.3 2003/01/20 16:14:23 henning Exp $
ext_if = "dc0"
altq on $ext_if cbq bandwidth 10Mb \
queue { deflt, http, ssh, mail, rsets }
queue deflt bandwidth 10% priority 0 cbq(default ecn)
queue http bandwidth 1.5Mb priority 3 { http_vhosts, http_cust1 }
queue http_vhosts bandwidth 40% cbq(borrow red)
queue http_cust1 bandwidth 0.5Mb
queue mail bandwidth 10% priority 1
queue ssh bandwidth 100Kb priority 7 cbq(borrow)
queue rsets bandwidth 7500b priority 0 cbq(red)
block return in on $ext_if inet all queue rsets
pass in on $ext_if inet proto tcp from any to any port 80 keep state queue http
pass out on $ext_if inet proto tcp from any to any port 22 keep state queue ssh
pass in on $ext_if inet proto tcp from any to any port 22 keep state queue ssh
pass out on $ext_if inet proto tcp from any to any port 25 keep state queue mail
pass out on $ext_if inet all keep state
Arranjando um tempinho aqui, eu vejo um pouco mais de perto esse seu problema
boa sorte,
:(6) :(6) :(6)