[FUG-BR] Dúvida cruel: QoS com PF
Alessandro de Souza Rocha
etherlinkii em gmail.com
Sexta Setembro 14 18:50:18 BRT 2007
Em 14/09/07, Welkson Renny de Medeiros<welkson em focusautomacao.com.br> escreveu:
> Pessoal,
>
>
> Conversando com o amigo Giba (Gilberto Vilani) pelo MSN, ele me deu algumas
> sugestões, segue:
>
> altq on rl0 hfsc bandwidth 100% queue net_root
> queue net_root bandwidth 100% hfsc { replicacao internet}
> queue replicacao bandwidth 50% priority 1 hfsc(realtime 40Kb linkshare
> 128Kb upperlimit 128Kb)
> queue internet bandwidth 50% priority 7 hfsc(upperlimit 128Kb default)
>
> Tudo bem, ainda falta fazer as regras, que vão receber o queue... mas para
> testar se os comandos acima estavam corretos mandei ativar (pfctl -f
> pf.conf), e minha rede inteira ficou uma lentidão só... (até o ssh... quase
> parando.. isso na mesma rede, 100mbit... Giba por isso não respondi no msn,
> a internet foi para o espaço... quando tentei falar com você já estava OFF
> rsrsrs)... pergunta: vou ter que colocar uma placa de rede somente para a
> interligação das filiais para poder fazer o QoS?
>
> Não sei se soube explicar bem... mas Giba que participou dos testes deve
> ajudar... desculpa pelo TOP POSTING.. mas tô pelo Windows, e ele não coloca
> esses > antes da mensagem anterior, aí mistura tudo... :-)
>
> Abraço!
>
>
> --
> Welkson Renny de Medeiros
> Focus Automação Comercial
> Desenvolvimento / Gerência de Redes
> welkson em focusautomacao.com.br
>
>
>
> Powered by ....
>
> (__)
> \\\'',)
> \/ \ ^
> .\._/_)
>
> www.FreeBSD.org
>
>
> ----- Original Message -----
> From: "Alessandro de Souza Rocha" <etherlinkii em gmail.com>
> To: "Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)"
> <freebsd em fug.com.br>
> Sent: Friday, September 14, 2007 4:29 PM
> Subject: Re: [FUG-BR] Dúvida cruel: QoS com PF
>
>
> Em 14/09/07, Welkson Renny de Medeiros<welkson em focusautomacao.com.br>
> escreveu:
> > Alessandro,
> >
> >
> > Vou fazer o seguinte, vou ler com bem calma o man, e sites sobre pf, e
> > tentar fazer novamente a regra... posto aqui na lista e vocês me dizem se
> > tá
> > faltando alguma coisa, blz?
> >
> > Só uma pergunta, recomenda hsfc ou cbq? ou outro? qual diferença?
> >
> >
> >
> > --
> > Welkson Renny de Medeiros
> > Focus Automação Comercial
> > Desenvolvimento / Gerência de Redes
> > welkson em focusautomacao.com.br
> >
> >
> >
> > Powered by ....
> >
> > (__)
> > \\\'',)
> > \/ \ ^
> > .\._/_)
> >
> > www.FreeBSD.org
> >
> >
> > ----- Original Message -----
> > From: "Alessandro de Souza Rocha" <etherlinkii em gmail.com>
> > To: "Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)"
> > <freebsd em fug.com.br>
> > Sent: Friday, September 14, 2007 3:49 PM
> > Subject: Re: [FUG-BR] Dúvida cruel: QoS com PF
> >
> >
> > Em 14/09/07, Welkson Renny de Medeiros<welkson em focusautomacao.com.br>
> > escreveu:
> > > Estava respondendo ao Antunes... que preferia mesmo o PF.
> > >
> > > Sempre que acho uma página legal sobre alguma coisa, eu mando imprimir
> > > em
> > > PDF e guardo organizado em pastas... estava revendo alguns que peguei
> > > recente, achei esse: (acho que é do Chris Giese)
> > >
> > > # Filas de QOS
> > > altq on rl0 hfsc bandwidth 512Kb queue { qpaiin }
> > > queue qpaiin bandwidth 512Kb hfsc (upperlimit 512Kb, linkshare
> > > 512Kb) {qicmp1, qrestoin, qrussinholi}
> > > queue qicmp1 bandwidth 128Kb hfsc(red, realtime 128Kb)
> > > queue qrestoin bandwidth 512Kb hfsc (red, linkshare 512Kb,
> > > default)
> > >
> > > altq on vr0 hfsc bandwidth 512Kb queue { qpaiout }
> > > queue qpaiout bandwidth 512Kb hfsc (upperlimit 512Kb, linkshare
> > > 512Kb) {qicmp2, qrestoout, qrussinholi2}
> > > queue qicmp2 bandwidth 128Kb hfsc (red, realtime 128Kb)
> > > queue qrestoout bandwidth 512Kb hfsc(red, default)
> > >
> > > # Filtros com filas
> > > pass out quick on rl0 proto icmp from any to 192.168.188.0/24 queue
> > > qicmp1
> > > pass out quick on rl0 proto tcp from any port 22 to 192.168.188.0/24
> > > queue
> > > qicmp1
> > > pass out quick on rl0 proto tcp from any port 23 to 192.168.188.0/24
> > > queue
> > > qicmp1
> > >
> > > ###
> > > pass in quick on rl0 proto icmp from 192.168.188.0/24 to any queue
> > > qicmp2
> > > pass in quick on rl0 proto tcp from 192.168.188.0/24 to any port 22
> > > queue
> > > qicmp2
> > > pass in quick on rl0 proto tcp from 192.168.188.0/24 to any port 23
> > > queue
> > > qicmp2
> > >
> > > ###
> > >
> > > Em um tópico anterior a esse (Definição de BANDWIDTH, REALTIME,
> > > LINKSHARE,
> > > UPPERLIMIT) Giese falou sobre o que significava esses termos... mais no
> > > script acima, alguém poderia me dizer porque tem interface RL0 e VR0,
> > > entrada e saída? é isso? no meu caso que é apenas uma interface para
> > > entrada
> > > e saída, como fica?
> > >
> > > Abraço,
> > >
> > >
> > >
> > > --
> > > Welkson Renny de Medeiros
> > > Focus Automação Comercial
> > > Desenvolvimento / Gerência de Redes
> > > welkson em focusautomacao.com.br
> > >
> > >
> > >
> > > Powered by ....
> > >
> > > (__)
> > > \\\'',)
> > > \/ \ ^
> > > .\._/_)
> > >
> > > www.FreeBSD.org
> > >
> > >
> > >
> > > ----- Original Message -----
> > > From: "Alessandro de Souza Rocha" <etherlinkii em gmail.com>
> > > To: "Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)"
> > > <freebsd em fug.com.br>
> > > Sent: Friday, September 14, 2007 9:38 AM
> > > Subject: Re: [FUG-BR] Dúvida cruel: QoS com PF
> > >
> > >
> > > Em 14/09/07, Welkson Renny de Medeiros<welkson em focusautomacao.com.br>
> > > escreveu:
> > > > Ops achei... realmente, quero fazer em PF... só quero saber qual o
> > > > melhor
> > > > método (hsfc, cbq, altq, outros, etc)... e se possível exemplos do
> > > > pf.conf
> > > >
> > > > --
> > > > Welkson Renny de Medeiros
> > > > Focus Automação Comercial
> > > > Desenvolvimento / Gerência de Redes
> > > > welkson em focusautomacao.com.br
> > > >
> > > >
> > > >
> > > >
> > > > Fri, 14 Sep 2007 08:13:37 -0300, "Welkson Renny de Medeiros"
> > > > <welkson em focusautomacao.com.br> escreveu:
> > > >
> > > > > Bom dia Márcio!
> > > > >
> > > > > Acho que a resposta está em branco.. :/
> > > > >
> > > > > Abraço,
> > > > >
> > > > > --
> > > > > Welkson Renny de Medeiros
> > > > > Focus Automação Comercial
> > > > > Desenvolvimento / Gerência de Redes
> > > > > welkson em focusautomacao.com.br
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Thu, 13 Sep 2007 21:00:50 -0300, "Marcio Antunes"
> > > > > <mantunes.listas em gmail.com> escreveu:
> > > > >
> > > > > > Welkson esta querendo fazer usando o PF.
> > > > > >
> > > > > > Em 13/09/07, Alessandro de Souza Rocha<etherlinkii em gmail.com>
> > > > > > escreveu:
> > > > > > > Em 13/09/07, Alexandre Biancalana<biancalana em gmail.com>
> > > > > > > escreveu:
> > > > > > > > On 9/13/07, Welkson Renny de Medeiros
> > > > > > > > <welkson em focusautomacao.com.br> wrote:
> > > > > > > > >
> > > > > > > > > Boa tarde amigos!
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Tenho 4 cidades interligada com um link (TELEMAR 128kbps),
> > > > > > > > > por
> > > > > > > > > esse link
> > > > > > > > > passa internet (pouco uso), e replicação de dados via
> > > > > > > > > SQL-SERVER.
> > > > > > > > >
> > > > > > > > > A bronca é o seguinte, o SQL-SERVER a cada 10 min comunica
> > > > > > > > > com
> > > > > > > > > o
> > > > > > > > > distribuidor e envia suas alterações e pega as alterações
> > > > > > > > > das
> > > > > > > > > outras
> > > > > > > > > filiais, a bronca que o
> > > > > > > > > SQL consome toda a banda que tiver disponível... e apesar do
> > > > > > > > > uso
> > > > > > > > > da
> > > > > > > > > internet ser pouco, as vezes o pessoal tá no skype e a
> > > > > > > > > ligação
> > > > > > > > > fica uma
> > > > > > > > > "bomba"...
> > > > > > > > >
> > > > > > > > > Estrutura da Rede:
> > > > > > > > >
> > > > > > > > > ### Matriz ###
> > > > > > > > > 192.168.0.254 FreeBSD 6.2 STABLE :)
> > > > > > > > > 192.168.0.253 Router (Cyclades PR2000)
> > > > > > > > > 192.168.0.100 Windows 2003 Server (SQL SERVER 2005 -
> > > > > > > > > Distribuidor)
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > ### Filial 1 ###
> > > > > > > > > 192.168.1.254 Router (Cyclades PR1000)
> > > > > > > > > 192.168.1.100 Windows 2003 Server (SQL SERVER 2005 -
> > > > > > > > > Assinante)
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > ### Filial 2 ###
> > > > > > > > > 192.168.2.254 Router (Cyclades PR1000)
> > > > > > > > > 192.168.2.100 Windows 2003 Server (SQL SERVER 2005 -
> > > > > > > > > Assinante)
> > > > > > > > >
> > > > > > > > > ### Filial 3 ###
> > > > > > > > > 192.168.3.254 Router (Cyclades PR1000)
> > > > > > > > > 192.168.3.100 Windows 2003 Server (SQL SERVER 2005 -
> > > > > > > > > Assinante)
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Fiz o seguinte, limitei todos os servidores das filiais
> > > > > > > > > (1.100,
> > > > > > > > > 2.100,
> > > > > > > > > 3.100) a 50kbps para comunicação com o distribuidor (matriz
> > > > > > > > > 192.168.0.100)
> > > > > > > > > usando ipfw, veja:
> > > > > > > > >
> > > > > > > > > ##### Limitando Replicacao #####
> > > > > > > > > # A contagem eh feita na recepcao da placa e na saida, entao
> > > > > > > > > # limitar a 120kbps significa limitar a 60kbps
> > > > > > > > >
> > > > > > > > > ### CANGUARETAMA ###
> > > > > > > > > ipfw add pipe 10 ip from 192.168.0.100 to 192.168.1.100
> > > > > > > > > ipfw add pipe 10 ip from 192.168.1.100 to 192.168.0.100
> > > > > > > > > ipfw pipe 10 config bw 100Kbit/s
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > # GOIANINHA
> > > > > > > > > ipfw add pipe 20 ip from 192.168.0.100 to 192.168.2.100
> > > > > > > > > ipfw add pipe 20 ip from 192.168.2.100 to 192.168.0.100
> > > > > > > > > ipfw pipe 20 config bw 100Kbit/s
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > # SAO JOSE DE MIPIBU
> > > > > > > > > ipfw add pipe 30 ip from 192.168.0.100 to 192.168.3.100
> > > > > > > > > ipfw add pipe 30 ip from 192.168.3.100 to 192.168.0.100
> > > > > > > > > ipfw pipe 30 config bw 100Kbit/s
> > > > > > > > >
> > > > > > > > > ###########
> > > > > > > > >
> > > > > > > > > Como viram no comentário, quando quero limitar a 50kbps
> > > > > > > > > passo
> > > > > > > > > 100kbps para
> > > > > > > > > o IPFW, porque percebi que ele contabiliza os pacotes na
> > > > > > > > > recepção e no
> > > > > > > > > envio, no caso dobrando... (vi isso em um fórum também, acho
> > > > > > > > > que
> > > > > > > > > GTER.. já
> > > > > > > > > analisei via IFTOP e realmente é assim que funciona).
> > > > > > > > >
> > > > > > > > > Isso até que tem funcionado bem, mas como falei, a internet
> > > > > > > > > é
> > > > > > > > > pouco
> > > > > > > > > utilizada, e limitar o SQL somente a 50kbps às vezes é muito
> > > > > > > > > pouco...
> > > > > > > > > dependo da quantidade de registros alteradas nos bancos de
> > > > > > > > > dados
> > > > > > > > > o volume de informação aumenta, e o SQL não consegue
> > > > > > > > > replicar
> > > > > > > > > as
> > > > > > > > > informações... reclamando que o link tá muito lento...
> > > > > > > > >
> > > > > > > > > Nesse caso, acho que a única solução seria um QoS... algo
> > > > > > > > > como,
> > > > > > > > > 70% da
> > > > > > > > > banda para OUTROS, e 30% para SQL... se não tem ninguém
> > > > > > > > > usando
> > > > > > > > > nada na
> > > > > > > > > internet a banda fica liberada para o SQL, se tem alguém
> > > > > > > > > usando
> > > > > > > > > internet, a
> > > > > > > > > internet terá prioridade e a replicação ficará limitada...
> > > > > > > > >
> > > > > > > > > Tenho muito material sobre PF, ALTQ, CBQ, etc... mas estou
> > > > > > > > > bem
> > > > > > > > > confuso,
> > > > > > > > > gostaria de sugestões dos especialistas... qual devo usar?
> > > > > > > > > CBQ?
> > > > > > > > > HSFC?
> > > > > > > > > outros? como ficaria +- o PF.CONF?
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > Se é o SQLServer que toma o link eu faria o seguinte:
> > > > > > > >
> > > > > > > > Utilizaria uma limitação de banda simples apenas para o SQL
> > > > > > > > não
> > > > > > > > tomar o
> > > > > > > > link todo e implementaria compressão na comunicação do SQL
> > > > > > > > também,
> > > > > > > > utilizando vtun ou zebedee. Esse lance de compressão é MUITO
> > > > > > > > legal, para
> > > > > > > > casos em que impor um pouco de delay não atrabalha (como creio
> > > > > > > > eu
> > > > > > > > que seja
> > > > > > > > este caso) você tem um ganho violento (dependendo do tipo de
> > > > > > > > tráfego) como
> > > > > > > > creio que você terá nesse caso.
> > > > > > > >
> > > > > > > > Dá uma lida ai: http://vtun.sourceforge.net
> > > > > > > >
> > > > > > > >
> > > > > > > > Att,
> > > > > > > > Alexandre
> > > > > > > > -------------------------
> > > > > > > > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > > > > > > > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> > > > > > > >
> > > > > > >
> > > > > > > ou questao tambem limitar o trafego na porta do SQL
> > > > > > > usando controle de banda para porta ou um delay como falow nosso
> > > > > > > amigo acima
> > > > > > > hehehe
> > > > > > > $ipfw pipe 1 config bw 128Kbit/s
> > > > > > > $ipfw pipe 2 config bw 128Kbit/s
> > > > > > > $ipfw queue 100 config pipe 2 weight 90
> > > > > > > $ipfw queue 101 config pipe 2 weight 60
> > > > > > > $ipfw add pipe 1 all from any to 192.168.1.1 in
> > > > > > > $ipfw add queue 100 tcp from 192.168.1.1 to any 22 out
> > > > > > > $ipfw add queue 100 tcp from 192.168.1.1 to any 80 out
> > > > > > > $ipfw add queue 100 udp from 192.168.1.1 to any 53 out
> > > > > > > $ipfw add queue 101 all from 192.168.1.1 to any out
> > > > > > >
> > > > > > > ipfw add 5000 prob 0.6 drop tcp from any to any 1433
> > > > > > > ipfw add 5000 prob 0.6 drop tcp from any to any 1434
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Alessandro de Souza Rocha
> > > > > > > Administrador de Redes e Sistemas
> > > > > > > Freebsd-BR User #117
> > > > > > > -------------------------
> > > > > > > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > > > > > > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> > > > > > >
> > > > > > -------------------------
> > > > > > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > > > > > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> > > > > >
> > > > > >
> > > > > >
> > > > > -------------------------
> > > > > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > > > > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> > > > >
> > > > >
> > > > >
> > > > -------------------------
> > > > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > > > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> > > >
> > >
> > > passe o link para mim da uma espiada.
> > > --
> > > Alessandro de Souza Rocha
> > > Administrador de Redes e Sistemas
> > > Freebsd-BR User #117
> > > -------------------------
> > > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> > >
> > > -------------------------
> > > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> > >
> >
> > se nao me falhe a memoria a rl0 e o link principal dele onde recebe
> > internet e a vr0 e a interface da rede local tipo parecido
> >
> > firewall# 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
> > -------------------------
> > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> >
> > -------------------------
> > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> >
>
> prefiro usa hfsc pelo menos nas paginas que li e mais confiavel que cbq.
>
> --
> Alessandro de Souza Rocha
> Administrador de Redes e Sistemas
> Freebsd-BR User #117
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
Sua regras acima na tabela de controle de banda ficaram assim no servidor
FreeBSD# pfctl -s queue
queue root_sis0 bandwidth 100Mb priority 0 {net_root}
queue net_root bandwidth 100Mb {replicacao, internet}
queue replicacao bandwidth 50Mb hfsc( realtime 40Kb linkshare 128Kb
upperlimit 128Kb )
queue internet bandwidth 50Mb priority 7 hfsc( default upperlimit 128Kb )
--
Alessandro de Souza Rocha
Administrador de Redes e Sistemas
Freebsd-BR User #117
Mais detalhes sobre a lista de discussão freebsd