Como configurar o QoS por base de IP?

4

Dissemos que 4 usuários em uma rede privada conectada à Internet por meio de um Linux router com um endereço public IP que está fazendo network address translation (NAT). Eu tenho que configurar QoS para dar acesso aos usuários para Internet , mas com largura de banda limitada para 2 usuários, enquanto para outros sem limitações.

eth0:121.51.26.35
eth1:10.239.107.1

eth0 de Linux Router é um link 10Mbps . eth1 está conectado a switch e 4 nós estão conectados ao switch . Desejo configurar tc para limitar a largura de banda de 2 nodes , ou seja, um grupo de usuários (XyZ in picture) para usar somente 3Mbps cumulativamente. (Quando um usuário estiver fazendo o download / upload, ele deve receber 3Mbps , mas quando 3 usuários estiverem baixando / carregando simultaneamente, eles devem receber 1MBps )

Primeiro, por favor, deixe-me saber é o requisito alcançável , se sim como devo proceder?

Abaixo está a topologia

    
por Neel 09.06.2015 / 13:34

1 resposta

3

Você precisa escolher uma classe ciente de qdisc como HFSC ou HTB.

Então você terá que construir uma árvore de classes como esta:

Root Class (10MBit)
|
\--- XyZ Class (rate 3Mbit ceil 3Mbit)
|    |
|    \--- Client 10 (rate 1.5Mbit ceil 3Mbit)
|    \--- Client 11 (rate 1.5Mbit ceil 3Mbit)
|
\--- Client 30 (rate 3.5Mbit ceil 10Mbit)
\--- Client 40 (rate 3.5Mbit ceil 10Mbit)

E isso em ambas as interfaces (para upload e formatação de download).

Com o HTB para obter resultados previsíveis, você deve certificar-se de que a soma dos filhos seja sempre igual à dos pais. Então o Root tem 10Mbit, e seus filhos diretos são iguais (Xyz 3Mbit + Client30 3.5Mbit + Client40 + 3.5Mbit == 10Mbit). Da mesma forma, o XyZ tem 3Mbit e seus filhos Client10 + Client11.

Anos e anos atrás eu escrevi um script que fazia algo semelhante:

link

Não é mantido hoje, mas talvez possa lhe dar algumas ideias de qualquer maneira.

A modelagem de tráfego no Linux era um pouco um campo negligenciado / esotérico, difícil encontrar uma boa documentação também. Não tenho certeza se isso já mudou ...

Existe link (ignore a parte do Wondershaper)

e o link (também o FAQ)

do Kernel Packet Traveling Diagram

Ou se tudo for complicado, talvez um qdisc sem estado como o ESFQ faça o truque para você. Ele tenta alcançar algum tipo de equilíbrio entre os clientes sem realmente aplicar nenhum limite de largura de banda.

Boa sorte.

    
por 09.06.2015 / 14:32