+ Responder ao Tópico



  1. #1

    Padrão 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

  2. #2

    Padrão 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)