Desacelera conexões individuais passando por um roteador Linux?

8

Temos um servidor Linux atuando como um roteador / firewall para o nosso escritório. Ocasionalmente, alguém faz upload de um arquivo grande que ocupa toda a nossa largura de banda. Não quero implementar regras complexas ou modelagem de tráfego, mas estou pensando se existe uma maneira de desacelerar uma única conexão no local? Eu encontrei tcpnice , mas isso não atrasou as transferências nos meus testes.

    
por davr 26.03.2010 / 22:07

4 respostas

6

Se a modelagem de tráfego não moldar o tráfego corretamente para uploads em shell e ativos (eu acho que pode, mas não tenho certeza), você poderia:

a) executa ssh em duas portas - você pode priorizar uma para transferências de arquivos e outra para trabalhos interativos.

b) limite o total de taxas ssh - o único problema é se você preencher a capacidade de upload do link e o ssh funcionar bem interativamente se você limitar a taxa a algo como 50kbps (isso forçará os usuários a usarem outro protocolo para transferências de arquivos maiores)

c) priorize o tráfego no endereço de origem se você puder

Além disso, a modelagem de tráfego deve tornar o tráfego mais balanceado, de modo que a conexão única não monopolize o link inteiro.

EDITAR: Aqui está um exemplo que usa um script bash. Ele menciona que o ssh realmente define o TOS de interativo para interativo, então presumo que o Wondershaper aproveite isso.

Se você quiser outras opções além do Wondershaper , dê uma olhada em shorewall ou pyshape .

O Shorewall é um equilíbrio bastante maduro e agradável de flexibilidade, poder e simplicidade.

    
por 31.03.2010 / 12:19
4

O Wondershaper pode fazer maravilhas, e é muito fácil de configurar. Fora isso, você pode encontrar alguns programas de usuário para fazer isso. No Linux há Trickle , pode haver equivalentes para o Windows.

Mas, na verdade, você quer que as pessoas que modelam tráfego se esqueçam de executar o programa, etc. Apenas limitar os uploads a um pouco menos que sua capacidade total provavelmente fará muito bem.

    
por 26.03.2010 / 23:25
2

Dê uma olhada no connrate no iptables (8) manpage. Você pode igualar a taxa de conexão e diminuir a velocidade de uma conexão que tenha feito o upload muito rápido, colocando-a em uma classe tc apropriada ou descarte ou tarpit ou o que for melhor para você.

    
por 31.03.2010 / 08:39
1

Você já pensou em configurar um proxy reverso do Squid e configurar delay-pools ? Você também pode fazer isso com a diretiva de limite do iptables.

O único problema que tenho com o seu pedido é que parece que você quer começar a limitar a taxa de transferência de uma conexão já estabelecida, o que vai ser muito difícil de fazer, já que tudo o que posso pensar é que vai querer começar operando em uma nova conexão e deixará as conexões existentes em andamento.

Eu tenho que concordar com alex em que você provavelmente vai precisar de algum tipo de modelador de tráfego, o que você quer ver são pacotes por segundo, pois um shell interativo terá um valor significativamente menor que um arquivo modesto transferência.

    
por 30.03.2010 / 06:59