Regulagem da largura de banda do FreeBSD por IP

1

Eu tenho um servidor HTTP público executando o FreeBSD.

O Nginx permite limitar o throughput por conexão, mas não quero limitar cada IP a apenas 1 conexão, portanto, preciso de uma solução para limitar por IP. O Nginx não pode fazer isso para mim e os módulos de terceiros para fazer isso não são mais mantidos.

Com o nginx não sendo uma opção, eu acho que algo no nível do sistema operacional deve ser capaz de lidar com isso, mas todas as outras perguntas e respostas parecem supor que eu conheço os IPs dos quais eu quero trafegar. Como o meu servidor é um servidor HTTP público, não quero trafegar de forma para um conjunto específico de IPs, mas sim para cada IP, e agrupado pelo IP.

Existe alguma maneira de o FreeBSD poder limitar a taxa de transferência por IP para todos os IPs?

Em uma nota secundária, minha solução de backup é o Verniz, que parece apoiar esse cenário, mas seria um software extra para oferecer suporte.

    
por Martin Fjordvald 17.10.2016 / 08:45

1 resposta

1

Na verdade, existe. É chamado de filas dinâmicas se você precisar de priorização, ou pipes dinâmicos você precisa modelar, ambos implementados em DUMMYNET . É possível combinar esses dois para fazer uma configuração real do CBQ.

Um breve exemplo sobre pipes dinâmicos de homem 8 ipfw :

A more sophisticated example is limiting the outbound traffic on a net with per-host limits, rather than per-network limits:

ipfw add pipe 1 ip from 192.168.2.0/24 to any out
ipfw add pipe 2 ip from any to 192.168.2.0/24 in
ipfw pipe 1 config mask src-ip 0x000000ff bw 200Kbit/s queue 20Kbytes
ipfw pipe 2 config mask dst-ip 0x000000ff bw 200Kbit/s queue 20Kbytes

Eu acho que você também poderia ativar o HTTP / 2 no nginx, diminuindo assim o número de conexões que é usado por cada cliente compatível com HTTP / 2.

    
por 17.10.2016 / 11:04

Tags