+ Responder ao Tópico



  1. #1

    Padrão QoS - FairNAT Script by Andreas Klauer

    Pessoal,

    Eu participo de uma centena de listas de discussão sobre roteamento, NAT, QoS, broad band sharing e outras coisas do gênero e com uma pergunta infantil recebi uma enormidade de informações legais sobre QoS que até me espantei.

    A mais impressionante é o artigo escrito pelo Andreas que trata de fazer algo como uma divisão equalitária de banda em uma rede com NAT. Bem interessante mesmo, vale a penas ler para quem tem provedor e quer competir no mercado atual.

    http://www.metamorpher.de/fairnat/

    Att,

    Nataniel Klug

  2. #2
    xargs -n 1 kill -9 Avatar de sergio
    Ingresso
    Jan 2004
    Localização
    Capital do Triângulo
    Posts
    5.201
    Posts de Blog
    9

    Padrão QoS - FairNAT Script by Andreas Klauer

    isso muito me interessa...
    valeu Nataniel. :good: :good:

  3. #3

    Padrão QoS - FairNAT Script by Andreas Klauer

    Citação Postado originalmente por sergio
    isso muito me interessa...
    valeu Nataniel. :good: :good:
    sergio,

    Tu leu o script? Eu achei muito bom... Não havia encontrado nada nem parecido com isso...

    Meu próximo passo é conseguir fazer com que downloads maiores tenham menor prioridade que pequenos (em qualquer protocolo)... Mas isso eu ainda to longe de conseguir, fiz alguns testes mas não funcionou legal.

    To tentando uma solução usando o Squid, mas acho que não é inteligente porque preciso disso para qualquer porta/serviço e com Squid não consigo assim.

    Att,

    Nataniel Klug

  4. #4
    xargs -n 1 kill -9 Avatar de sergio
    Ingresso
    Jan 2004
    Localização
    Capital do Triângulo
    Posts
    5.201
    Posts de Blog
    9

    Padrão QoS - FairNAT Script by Andreas Klauer

    baixei o script e estou lendo a documentação e analisando o próprio script para entender (dá-lhe lartc, aff).
    Até o final da semana acho que já consegui fazer alguns testes aqui e depois te passo o resultado. :good:

  5. #5
    SysRq
    Visitante

    Padrão Re: QoS - FairNAT Script by Andreas Klauer

    Citação Postado originalmente por nataniel
    Pessoal,

    Eu participo de uma centena de listas de discussão sobre roteamento, NAT, QoS, broad band sharing e outras coisas do gênero e com uma pergunta infantil recebi uma enormidade de informações legais sobre QoS que até me espantei.

    A mais impressionante é o artigo escrito pelo Andreas que trata de fazer algo como uma divisão equalitária de banda em uma rede com NAT. Bem interessante mesmo, vale a penas ler para quem tem provedor e quer competir no mercado atual.

    http://www.metamorpher.de/fairnat/

    Att,

    Nataniel Klug


    Bem interessante este script. Acho que ele chega até onde é possível com o HTB, mas infelizmente para dividir banda dinamicamente por IP ou por MAC, que me parece seria o mais igualitário, o HTB+SFQ não dão conta do recado.
    Até onde sei apenas o WRR e o ESFQ fazem isto.

    Usando o SFQ (q divide a banda por conexão) como neste caso, mesmo com bandas específicas por tipo de tráfego um usuário que gera muitas conexões dentro desta sub-banda sempre vai prejudicar outros usuários (porém dentro do limite de banda que foi imposto a ele).

    Infelizmente o WRR tambem tem suas limitações. Ele gera suas classes internas automaticamente e divide a banda instantanea e perfeitamente pelo numero de usuários em atividade, seja por IP ou MAC, mas não pode limitar o teto de uso destas classes individuais.
    Ou seja, o HTB limita muito bem mas faz um trabalho ruim de distribuição dinamica de banda, enquanto o WRR é ótimo na distribuição e incapaz de limitação.

    Sobre diminuir a prioridade das conexões referentes a downloads pesados é simples: basta criar uma classe de baixa prioridade com o HTB ou CBQ e usar o patch CONNBYTES do iptables para redirecionar as conexões p/ esta classe após um certo limite trafegado.

  6. #6

    Padrão Re: QoS - FairNAT Script by Andreas Klauer

    Citação Postado originalmente por SysRq
    Sobre diminuir a prioridade das conexões referentes a downloads pesados é simples: basta criar uma classe de baixa prioridade com o HTB ou CBQ e usar o patch CONNBYTES do iptables para redirecionar as conexões p/ esta classe após um certo limite trafegado.
    SysRq,

    Explica isso melhor que esse patch eu ainda não conheço. Parece bem interessante essa situação.

    Como eu faço para direcionar uma regra de iptables para uma classe HTB/CBQ?

    Att,

    Nataniel Klug

  7. #7
    SysRq
    Visitante

    Padrão Re: QoS - FairNAT Script by Andreas Klauer

    Citação Postado originalmente por nataniel
    Citação Postado originalmente por SysRq
    Sobre diminuir a prioridade das conexões referentes a downloads pesados é simples: basta criar uma classe de baixa prioridade com o HTB ou CBQ e usar o patch CONNBYTES do iptables para redirecionar as conexões p/ esta classe após um certo limite trafegado.
    SysRq,

    Explica isso melhor que esse patch eu ainda não conheço. Parece bem interessante essa situação.

    Como eu faço para direcionar uma regra de iptables para uma classe HTB/CBQ?

    Att,

    Nataniel Klug
    Nataniel,

    O patch connbytes está no pacote patch-o-matic para o iptables: ftp://ftp.netfilter.org/pub/patch-o-matic-ng. O patch-o-matic é um pouco demorado de instalar pois tem dezenas de patchs diferentes. Comece aplicando apenas o que vc tem certeza absoluta que precisa pois algumas combinações de patches são incompativeis.

    Após aplicar estes patches vc vai ter de recompilar seu kernel e o iptables

    Fazendo uma pesquisa no google com as palavras connbytes shaping achei um exemplo rápido e simples logo no primeiro link:
    http://mailman.ds9a.nl/pipermail/lar...q4/010580.html

    Eu tentaria assim:
    iptables -t mangle -A PREROUTING -p tcp -j CONNMARK --restore-mark
    iptables -t mangle -A PREROUTING -p tcp -m mark ! --mark 0 -j ACCEPT
    iptables -t mangle -A PREROUTING -m connbytes --connbytes 1000000: -j MARK --set-mark 1

    iptables -t mangle -A POSTROUTING -o eth0 -m mark --mark 1 -j CLASSIFY --set-class 1:11

    tc qdisc add dev eth0 root handle 1:0 htb default 10
    tc class add dev eth0 parent 1:0 classid 1:1 htb rate 1000Kbit ceil 1000Kbit
    tc class add dev eth0 parent 1:1 classid 1:10 htb rate 750Kbit ceil 1000Kbit prio 1
    tc class add dev eth0 parent 1:1 classid 1:11 htb rate 250Kbit ceil 250Kbit prio 3

    Tou assumindo aqui que eth0 é minha interface de saida p/ o clientes e que estou dividindo um link de 1Mbps em uma classe de 750 kbps (elástica até 1Mbps) para tráfego "leve"e uma classe fixa de 250 kbps para onde é redirecionada qualquer conexão após passar de 1 megabyte de transferencia.

    Os patches CONNBYTES e CONNMARK do patch-o-matic são incompatíveis entre si, então para usar este exemplo vc teria de usar este patch modificado: http://www.spinics.net/lists/lartc/msg13278.html

    Alem disto tambem precisa do target CLASSIFY que esta no... patch-o-matic!

    Nada disto foi testado, e eu nunca usei nem o connbytes nem este patch modificado, assim fica por sua conta fazer o teste, se achar interessante.

  8. #8

    Padrão Re: QoS - FairNAT Script by Andreas Klauer

    Citação Postado originalmente por SysRq
    Nada disto foi testado, e eu nunca usei nem o connbytes nem este patch modificado, assim fica por sua conta fazer o teste, se achar interessante.
    Sys,

    Obrigado.

    Ja imprimi tudo e estou começando a montagem do meu servidor que fará os testes com isso... hehehehe... eu e minhas máquinas de teste. Tomara que dê certo!

    Obrigado mesmo.

    Att,

    Nataniel Klug