[FUG-BR] PF + ALTQ

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


Em 28/08/07, Alessandro de Souza Rocha<etherlinkii em gmail.com> escreveu:
> 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
>
irewall# pfctl -s queue
queue root_vr0 bandwidth 128Kb priority 0 {dflt_out1, local1}
queue  dflt_out1 bandwidth 6.40Kb hfsc( default )
queue  local1 bandwidth 121.60Kb
queue root_tun0 bandwidth 128Kb priority 0 {dflt_out2, local2}
queue  dflt_out2 bandwidth 6.40Kb hfsc( default )
queue  local2 bandwidth 121.60Kb


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


Mais detalhes sobre a lista de discussão freebsd