[FUG-BR] PF + ALTQ

Alessandro de Souza Rocha etherlinkii em gmail.com
Terça Agosto 28 10:22:47 BRT 2007


Em 28/08/07, Gilberto Villani Brito<linux em giboia.org> escreveu:
> E-mail comentado:
>
> On 21/08/07, Victor Loureiro Lima <victorloureirolima em gmail.com> wrote:
> > I had enough ;)
> >
> > Cansei de ter menos banda na minha maquina (gateway da rede wireless
> > la' de casa, rodando freebsd e meu desktop tambem ;)) toda vez que
> > algum familiar ou visita entra na internet para ver os seus
> > powerpoints sobre viagens no mundo, ou curiosidades no email, por
> > tanto resolvi usar o altq a meu favor e incluir um controle de banda
> > na rede la' de casa.
> >
> > A regra e' simples, quando eu estiver usando a internet (segundo eu li
> > no manual da pf existe essa possibilidade) eu quero ter 60% da
> > bandwidth apenas para mim, e os outros 40%, e quando nao houver nenhum
> > uso de internet no gateway (meu desktop), a banda pode ir 100% para
> > quem tiver usando. Nota: Nao quero que conexoes vindo da internet
> > caiam em nenhuma queue, ou seja, tenham processamento normal sem
> > limitacao de banda para eles. (considerando logicamente o limite
> > fisico da capacidade da banda, e o caso da duvida 2 abaixo ;))
> >
> > Tendo essas premissas, existem a seguintes dúvidas:
> > Como a minha rede e' disposta da seguinte forma:
> >
> > [ rede interna wireless de casa ] <---> [ath0]  [fxp0] <---> INTERNET
> >                                                        (^^^^^^^^^^^^^^ gateway)
> >
> > 1a. duvida: eu devo habilitar o altq na interface ath0 ou na fxp0? Meu
> > entendimento e' que
> > se habilitar para a ath0, faria mais sentido, pois apenas o trafico
> > wireless seria afetado.
> > Caso seja essa a solução, estou certo em achar que simplesmente habilitando o
> > altq na interface ath0 e passando um valor de 1600kb (meu link e' de
> > 4mb, 1600 seria algo em torno de 40%), eu ja' conseguiria o resultado
> > esperado? Depois seria apenas uma questao de habilitar no pass in on
> > ath0 queue minha_queue?
>
> Depende, se você for limitar SOMENTE o download usa a interface ath0,
> mas se for limitar o upload também, terá que usar a fxp0.
>
> >
> > 2a. duvida: como fica a questão de limitar o que entra na rede? Teria
> > como eu jogar os pacotes de resposta (vindos da internet) que foram
> > originados de conexoes vindo da ath0 (usuarios internos) para uma
> > queue que tenha menos banda, e deixar os outros que usam o fxp0 sem
> > limitações de entrada/saida?!
>
> Sim, tem como fazer isso.
>
> >
> >
> > Ai vai o meu pf.conf (muito simples, nao tem nada...):
> > #########################################################
> > # Macros: define common values, so they can be referenced and changed easily.
> > ext_if="fxp0"   # replace with actual external interface name i.e., dc0
> > int_if="ath0"   # replace with actual internal interface name i.e., dc1
> > internal_net="192.168.0.0/24"
> > external_addr="`ifconfig fxp0 | grep inet | cut -d ' ' -f2`"
> >
> >
> > # Options: tune the behavior of pf, default values are given.
> > set timeout { interval 10, frag 30 }
> > set timeout { tcp.first 120, tcp.opening 30, tcp.established 86400 }
> > set timeout { tcp.closing 900, tcp.finwait 45, tcp.closed 90 }
> > set timeout { udp.first 60, udp.single 30, udp.multiple 60 }
> > set timeout { icmp.first 20, icmp.error 10 }
> > set timeout { other.first 60, other.single 30, other.multiple 60 }
> > set timeout { adaptive.start 0, adaptive.end 0 }
> > set limit { states 10000, frags 5000 }
> > set loginterface none
> > set optimization normal
> > set block-policy drop
> > set require-order yes
> > set fingerprints "/etc/pf.os"
> >
> > # Normalization: reassemble fragments and resolve or reduce traffic ambiguities.
> > scrub in all
> >
> > nat on $ext_if from $internal_net to ! $internal_net -> ($ext_if)
> >
> > pass in log quick on $int_if keep state
> > pass out log quick on $int_if keep state
> > pass in log quick on $ext_if keep state
> > pass out log quick on $ext_if keep state
> > ################################################
> >
> > Abracos,
> > Victor F. Loureiro Lima
> > -------------------------
> > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> >
>
> Mais ajuda: http://www.fug.com.br/historico/html/freebsd/2007-03/msg00028.html
>
> Abraços
> --
> Gilberto Villani Brito
> System Administrator
> Londrina - PR
> Brazil
> gilbertovb(a)gmail.com
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
da uma olhada ai.
altq on vr0 hfsc bandwidth 128Kb queue  { dflt_out1, local1 }
queue dflt_out1 bandwidth 5% hfsc(default)
queue local1 bandwidth 95%

altq on tun0 hfsc bandwidth 128Kb queue  { dflt_out2, local2 }
queue dflt_out2 bandwidth 5% hfsc(default)
queue local2 bandwidth  95%



-- 
Alessandro de Souza Rocha
Administrador de Redes e Sistemas
Freebsd-BR User #117


Mais detalhes sobre a lista de discussão freebsd