[GTER] Priorização e Reserva de banda

Gilberto Villani Brito linux at giboia.org
Fri Aug 3 19:14:29 -03 2007


On 03/08/07, Marconi Pereira <marconipp at hotmail.com> wrote:
> Rafael,
> vou socar isso agora no bicho e te aviso se rolou. A idéia é essa mesma,
> priorizar tudo o que for diferente de SMTP. Tenho alguns SMTP servers
> prioritários, mas eu me viro para colocá-los com prioridade maior. De
> repente, uma table ajuda.
> Muito obrigado pelo help!!
> []s
> Marconi
>
>
> >Bom dia Marconi,
> >
> >A principio percebi que algumas das regras de seu PF não são tão ideais.
> >Eu utilizo FreeBSD a 10 anos, e PF a apenas 3 anos, então não sei se
> >todas as regras dele valem para o PF do OpenBSD, mas acredigo que
> >sejem a mesma coisa.
> >Bom, vamos lá.
> >
> > > Possuo um link de 28Mb via Embratel que entra num Tellabs EdgeNode 6310.
> >
> >Essa notação é importantissima para se definir uma prioritização de
> >pacotes.
> >
> > > Nossa característica de tráfego é SMTP.
> >
> >Você quer deixar o SMTP em "background", é isso? Quando o trafego
> >total estiver ocioso usa 100%, caso contrario o resto tem prioridade?
> >
> > > Se houver algum outro
> > > uso diferente de SMTP, ultrapassa na frente, não importa o que seja nem
> >qual
> > > o tamanho. Era isso que o Cisco fazia.
> >
> >É o que eu etendi, então vamos definir bem as regras em relação a essa
> >caracteristica.
> >
> > > na interface WAN que é 100Mbps, mas o link tem 28Mbps. Esse troço não tá
> > > inundando o Tellabs?)
> >
> >Aqui você tocou em um ponto importante, a prioritização deve ser feita
> >em relação a capacidade de link, e não da interface, ou seja, deve ser
> >feito em torno dos 28Mbps.
> >
> >Vou montar um script para fazer essa prioritização sem utilizar a sua
> >prioritização para classes de IPs, isso levaria mais estudo sobre o
> >trafego destes IPs mas como isso não é o que vc está pedindo, eu vou
> >prioritizar todo o trafego que não for do SMTP.
> >
> >------
> ># Informacoes da Interface Wan
> >wan_if="fxp0"
> >
> ># Interface Lan
> >lan_if="xl0"
> >
> ># Opções
> >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 $wan_if
> >set optimization normal
> >set block-policy drop
> >set require-order yes
> >set fingerprints "/etc/pf.os"
> >set skip on lo
> >
> ># Normalização
> >scrub in on $wan_if all fragment reassemble min-ttl 15 max-mss 1400
> >
> ># Definicao do sistema de QoS (Altq)
> >altq on $wan_if priq bandwidth 25000Kb queue { qi_tcp_ack_out, qi_dns,
> >qi_default, qi_smtp }
> >queue qi_tcp_ack_out priority 15 priq(red)
> >queue qi_dns priority 12
> >queue qi_default priority 5 priq(default)
> >queue qi_smtp priority 1
> >
> ># Bloqueia tudo
> >block all
> >
> ># Libera consultas de DNS em servidores internos com prioridade
> >pass in on $wan_if proto udp from any to any port 53 keep state queue
> >(qi_dns, qi_tcp_ack_out)
> >pass in on $wan_if proto tcp from any to any port 53 synproxy state
> >queue (qi_dns, qi_tcp_ack_out)
> >
> ># Trafego Default
> >pass in on $wan_if proto tcp from any to any flags S/SA synproxy state
> >queue (qi_default, qi_tcp_ack_out)
> >
> ># SMTP
> >pass in on $wan_if proto tcp from any to any port 25 flags S/SA
> >synproxy state queue (qi_smtp, qi_tcp_ack_out)
> >
> ># Balanceamento de Carga
> >pass out on $wan_if proto tcp from any to any flags S/SA keep state
> >queue (qi_default, qi_tcp_ack_out)
> >pass out on $wan_if proto {udp, icmp} from any to any keep state
> >
> ># Libera Lan
> >pass in on $lan_if
> >pass out on $lan_if
> >
> >-----------
> >
> >Não sei se o arquivo está em ordem... eu digitei tudo agora aqui no
> >e-mail... mas em todo caso, a estrutura está OK... basta seguir para
> >criar o seu proprio.
> >
> >Espero ter ajudado.
> >
> >Qualquer duvida, posta aí que a gente ajuda.
> >
> >--
> >Rafael Henrique da Silva Faria
> ># Grupo Cena Digital
> ># (16) 9229-8928
> ># www.cenadigital.com.br
> >--
> >gter list    https://eng.registro.br/mailman/listinfo/gter
>
> _________________________________________________________________
> See what you're getting into…before you go there
> http://newlivehotmail.com/?ocid=TXT_TAGHM_migration_HM_viral_preview_0507
>
>
> --
> gter list    https://eng.registro.br/mailman/listinfo/gter
>

Trabalho com iptables, PF e ipfw a um bom tempo e te falo que o PF e
ipfw funcionam muito bem, mas teem algumas limitações que o iptables
não tem.
Isso é só a minha opnião.

Sobre o seu queue, vou passar o básico para o controle do smtp o resto
do firewall eu nem vi:
pf.conf:
...
altq on <wan> priq bandwidth 28Mb queue { smtp outros }
  queue smtp priority 1 priq
  queue outros priority 15 priq(default)
...
...
pass out on <wan> from any to any port 25 queue smtp
pass in on <wan> from any port 25 to any queue smtp
---> fim do arquivo pf.conf

Eu não uso o priq, uso o hfsc com prioridade e funciona muito bem. Por
isso aqui vai a mesma queue usando htsc:

altq on <wan> hfsc bandwidth 28Mb queue { smtp outros }
  queue smtp bandwidth 8Mb priority 1 hfsc(realtime 8Mb upperlimit 28Mb)
  queue smtp bandwidth 20Mb priority 7 hfsc(realtime 20Mb upperlimit 28Mb)


Testa aí e veja como ficou.

Abraços
-- 
Gilberto Villani Brito
System Administrator
Londrina - PR
Brazil
gilbertovb(a)gmail.com



More information about the gter mailing list