[GTER] Priorização e Reserva de banda

Rafael Faria rafaelhfaria at cenadigital.com.br
Fri Aug 3 16:14:09 -03 2007


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



More information about the gter mailing list