+ Responder ao Tópico



  1. #1

    Padrão Limitando Saída

    bom dia galera do UL!

    preciso de uma ajuda q pra vcs devem ser basica.. mais pra mim ta dificil


    tenho clientes atraz de um servidor Slackware.. mais to com um problema.. fiz o cqb por cliente em http esta tudo normal.. mais no emule e saida de alguns clientes chegam eh 1mb.. existe algum meio de eu controlar a banda de saida do emule?

    desde jah agradeço.. obrigado e tchau

  2. #2
    Waclawiak
    Visitante

    Padrão Re: Limitando Saída

    Boa tarde. seguinte, uma maneira que eu utilizo para limitar a saida, em especial do e-mule é um controle de mascaramento juntamente com htb, que no seu caso vc utiliza cbq.
    Como proceder?
    Simples, o seu servidor provavelmente tem no minimo duas placas de rede, uma que vai pra net e uma pra local, todas os pedidos que vem da local com ips do tipo 192.168.x.x são mascarados e saem do serdidor com outro ip, vamos dizer que com 10.1.1.2, vão até o modem e de lah são mascarados mais uma vez e recebem o ip real 200.x.x.x
    A dificuldade de se implementar o controle de saida é exatamente porque como o mascaramento está habilitado a origem passa a ser o proprio servidor, então se vc fizer o controle de saida assim ele vai afetar o trafego de todos os clientes inclusive o trafego realmente originado do servidor.
    Então a solução eh vc criar regras em seu masq dizendo que tudo que vier da interface local com as portas de destido de 1 a 1024 serão mascarados para o ip 10.1.1.2, crie algumas regras para privilegiar portas acima de 1024, como a 1862(msn) 5190(icq) 5900 a 5009(vnc), fazendo-as sair também pelo 10.1.1.2, todo o resto do trafego vc mascara para um outro ip, ou seja, as portas de 1024 a 65535 serão mascarados para o ip 10.1.1.3.
    Agora temos todo o trafego mormal a sair pelo ip 10.1.1.2 e todo o trafego não registrado, normalmente os p2p saindo pelo 10.1.1.3, agora eh só vc aplicar o seu cbq dizendo que tudo que sair pela interface eth0 pelo ip 10.1.1.3 sera limitado a 128Kbs, assim os downloads continuarão bons e o uploads serão limitados.
    Infelismente não saberei lhe passar a sintaxe de como criar essa regras de mascaramento com o iptables, pois eu utilizo um programa exelente chamado shorewall www.shorewall.net que simplifica e organiza a administração o iptables. vou colar aki em baixo o meu arquivo masq do shorewall para vc entender oque eu estou a fazer, lembro-lhe que possuo 3 interfaces, duas locais(eth2 eth1) e uma net(eth0)
    Ah sim, não se esqueça de direcionar tanto as portas de tcp quanto de udp e o segundo ip 10.1.1.3 vc precisará criar em sua interface net.

    int de saida int de origem ip de saida protocolo porta de destino
    #######################################################
    ## PORTAS ---> 10.1.1.5 ##
    #######################################################


    eth0 eth2 10.1.1.5 tcp 5190,1863
    eth0 eth2 10.1.1.5 udp 5190,1863

    eth0 eth1 10.1.1.5 tcp 5190,1863
    eth0 eth1 10.1.1.5 udp 5190,1863


    #######################################################
    ## RANGES ---> 10.1.1.5 ##
    #######################################################

    eth0 eth2 10.1.1.5 tcp 1:1024
    eth0 eth2 10.1.1.5 udp 1:1024
    eth0 eth2 10.1.1.5 tcp 5900:5910
    eth0 eth2 10.1.1.5 udp 5900:5910

    eth0 eth1 10.1.1.5 tcp 1:1024
    eth0 eth1 10.1.1.5 udp 1:1024
    eth0 eth1 10.1.1.5 tcp 5900:5910
    eth0 eth1 10.1.1.5 udp 5900:5910

    ########################################################################################
    ## RANGES ---> 10.1.1.4 ##
    #########################################################################################


    eth0 eth2 10.1.1.4 tcp 1024:65535
    eth0 eth2 10.1.1.4 udp 1024:65535

    eth0 eth1 10.1.1.4 tcp 1024:65535
    eth0 eth1 10.1.1.4 udp 1024:65535




    O ip ao qual eu vou reduzir o trafego de saida será o 10.1.1.4.

    Bom, é isso ai, espero ter ajudado.
    Qulquer coisa [email protected]

  3. #3
    MASTERGTx
    Visitante

    Padrão Re: Limitando Saída

    Eu resolvi isso sem viagem alguma simplesmente criando uma regra para cada ip.
    Eu tenho os ips num numa tabela mysql, o que propicia criar todas as regras automaticamente., Usei a tabela mangle do iptables criando uma MARK com numero que é o ID do cliente que no meu caso está na tabela cadastro também do mysql.

    arquivo regrasipt
    ##Cliente Paulo Henrique ###
    iptables -t mangle -A FORWARD -s 10.1.1.100/32 -j MARK --set-mark 49
    iptables -t mangle -A POSTROUTING -s 10.1.1.100/32 -j MARK --set-mark 49

    Meu cbq é controlado por um programa que criei chamado cbq-web ele cria os arquivos do cbq usando dados provindos de tabelas do mysql, com ip, cadastro.
    dentro do arquivo cbq do cliente eu cito a mark 49 por exemplo dessa maneira.
    MARK=49

    essa MARK tem que estar no arquivo do cbq que contém virgula após os ips:

    tipo assim:

    /etc/sysconfig/cbq-0002.paulo-IN
    DEVICE=eth0,100Mbit,10Mbit
    RATE=128Kbit
    WEIGHT=13Kbit
    PRIO=5
    RULE=10.1.1.100/32,
    RULE=10.1.1.101/32,
    MARK=49
    BOUNDED=yes
    ISOLATED=no


    Ou seja, resumindo.
    Você faz uma regra no iptables igual a dai de cima
    e cita a mark no arquivo de saída do iptables.

    Funciona perfeitamente.







  4. #4
    Waclawiak
    Visitante

    Padrão Re: Limitando Saída

    Tudo bem MASTERGTx, mas assim vc limita o trafego de saida e não apenas a saida dos p2p e similares, além de que vc vai precisar cadastrar novas regras a cada cliente novo que vc tiver.
    Para a pergunta que ele fez de como limitar o trafego dos donkeys e afins essa regra não vai ser muito boa, pois o upload do cliente vai ficar colado nos 128Kbs apenas com o trafego do p2p e quando ele precisar enviar um ack a responta será demorada, isso sem falr se ele quiser enviar uma foto para um fotolog, ou orkut da vida.
    Da maneira que eu implementei o upload do cliente só está sendo limitado para os p2p e afins, todo o resto do upload sai em velocidade full.

    Ah sim, e obrigado por dizer que eu viajei, acho que aki deveriamos crescer a ajudar um ao outro e não mandar essas indiretas querendo chamar os outros de burros.

    Não sou o dono da verdade, mas quero respeito.

  5. #5
    piratadocaribe
    Visitante

    Padrão Re: Limitando Saída

    muito bom Waclawiak gostei !!!!!!!! :-o
    tem que mostrar p esse tec. de resvistas como é que se faz, eles axão que sabem de tudo!!!
    flo velho !! :mrgreen:

  6. #6
    MASTERGTx
    Visitante

    Padrão Re: Limitando Saída

    Opa, vcs entenderam mal, nviagem pra mim é uma solução complexa, isso logo quer dizer que vc não é burro, com essas regras todo o upload do cliente estará limitado na velocidade predefinida ué, pra que deixar upload full?
    o cara tem por exemplo 128kb de upload, se ele usar isso tudo fornecendo up em p2p ou não é problema do cliente.

    Já pensou se o cliente faz um servidor de ftp na máquina dele? já pensou no cliente enviando arquivos a 2mb e saturando meu pu por exemplo?
    Jé pensou se ele monta um servidor de páginas ma náquina dele e server arquivos usando isso?
    Por isso que eu faço como no adsl, vc tem uma velocidadee vc usa como quiser.

    Por isso minha solução pareçe a mais razoável. e não se ofenda é meu ponto de vista, e não acho que sei tudo ok olha, eu osu iniciante.

    Gratos..

  7. #7
    MASTERGTx
    Visitante

    Padrão Re: Limitando Saída

    Só mais uma, pra controle do p2p existe o pacote iptablesp2p pra fazer esse tipo de controle, ele marka pacotes usando MARK também e vc independentede usar cbq ou htb vai ter que apontar uma mark nas conf do arquivo.
    tipo no cbq depois de implantar o iptables-p2p, eu crio um arquivo de nome
    cbq-FFFF.p2p e dentro dele espeficico quanto de banda total pode ser estabelicidade pra toda a rede p2p dentro da minha banda dei esse nome pq é o último nome em hexadecimal e sua regra será a última a ser lida. Usando a imaginação vc pode fazer uma regra pra cada cliente e especificar dentro de cada arquivo de cliente, agora como fazer isso é preciso pesquisar, tem vários tutoriais em www.google.com.br/linux procure "iptables-p2p".

    Espero realmente ter ajudado.