Configuração de QoS para um ISP médio

3

Qual é a melhor plataforma de QoS baseada em Linux para implementar uma configuração em que todos os clientes DSL de 256 Kbps (todos pertencem ao mesmo intervalo de IPs) obtêm uma velocidade garantida de 200 Kbps com regra de QoS única?

    
por MZK 28.05.2011 / 10:27

5 respostas

1

O sistema de controle de tráfego / QoS padrão do linux é chamado [tc][1] (controle de tráfego).

Você precisará inicializar uma cadeia, definir suas propriedades e adicionar seus IPs a ela, algo assim:

#!/bin/bash
DEV=eth0
PATH=$PATH:/sbin
tc qdisc del dev $DEV root
tc qdisc add dev $DEV root handle 1: htb default 20
tc class add dev $DEV parent 1:1 classid 1:10 htb rate 2000kbps ceil 2000kbps burst 500kb quantum 1500
tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
tc filter add dev $DEV parent 1:0 protocol ip prio 1 u32 match ip dst 10.10.10.1/24 flowid 1:10
tc filter add dev $DEV parent 1:0 protocol ip prio 1 u32 match ip src 10.10.10.1/24 flowid 1:10
    
por 28.05.2011 / 10:45
1

And will the mentioned configuration assign each IP in the range the required speed without having to have a separate rule for each individual IP?

Não, não vai. A maneira como o HTB funciona , você só pode atribuir taxas para o intervalo inteiro, não individuais IPs. O que o Caleb tentou fazer foi distribuir uniformemente a largura de banda disponível de 2000 Kbps através do qdisc SFQ entre seus 10 clientes. No entanto, isso não funcionará como esperado - o SFQ calcula o agendamento por conexão, não por IP - se algum de seus clientes tiver mais conexões com muita largura de banda abertas que os outros, ele terá mais largura de banda no total.

Existe outro agendador chamado ESFQ que estende o SFQ para agendar por ip, mas mesmo assim você só agendaria o tráfego ativo sem limitar um determinado usuário a 200 kbps. Eu não sei se existe algum qdisc prontamente disponível que permita que você faça isso, mas dada a grande quantidade de projetos qdisc diferentes, eu presumo que sim.

Outro problema é que tc só programa o tráfego de saída em uma interface, o tráfego de entrada nunca é levado em consideração. O Dispositivo de enfileiramento intermediário (IMQ) ajuda a contornar essa limitação.

    
por 28.05.2011 / 16:06
1

Para garantias e divisão justa, o escalonador HFSC (portado do altq do BSD para o linux) é uma ótima coisa. (pelo menos não é tão desajeitado e desleixado quanto o HTB.) Lamentavelmente, configurar qualquer forma de tráfego no Linux é um processo doloroso com uma curva de aprendizado brutal, e como a interface tc é simplesmente hostil, sugiro usar o MasterShaper ou algo semelhante. frontend.

(PS. se você decidir gerenciar o tc sozinho, use o recurso de kernel IFB para fazer o upload - é como o IMQ sugerido aqui anteriormente, mas funciona em novos kernels e se encaixa no framework inteiro um pouco melhor)

    
por 13.11.2011 / 21:51
0

Mikrotik RouterBoards;) Melhor plataforma que você pode ter. Seu OS (RouterOS) é baseado em Linux, mas sendo um aplicativo você não tem acesso a um shell real ou ao sistema de arquivos.

Eles são uma pequena plataforma ISP, mas você realmente gosta deles.

    
por 28.05.2011 / 11:53
0

Tags