Como configuro um servidor proxy para casa com controle de largura de banda, opções de limite de download?

16

3 companheiros de quarto compartilham uma conexão única de 2 Mbps. Tenha um limite de download de 40 GB por mês além do qual a velocidade cai para 256 Kbps, o que é irritante.

Um dos colegas de quarto abusa da conexão fazendo o download além do limite de cota. Eu tenho um roteador sem fio Netgear WNR1000v2 + ADSL Modem para se conectar à internet. Todos nós acessamos a Internet via roteador sem fio que se conecta ao modem ADSL.

Eu preciso de uma solução de proxy gratuita que me ajude a definir

  1. Limite de 40 GB / 3 (13 GB) para cada pessoa (cada pessoa tem dois dispositivos - um PC e um telefone com Wi-Fi)
  2. Controle uniforme de largura de banda - quando 2 pessoas navegam na Internet, elas devem obter 1 Mbps cada e, quando 3 pessoas acessam, elas devem obter 2 Mbps dividido por 3.
  3. Depois que cada pessoa ultrapassar seu limite de download mensal, ele poderá acessar a internet com velocidade de 256 Kbps, apenas ou menos.
  4. Posso ter um firmware personalizado no meu roteador sem fio (ou) Preciso de um servidor proxy?

Por favor, aponte-me para quaisquer tutoriais relevantes (por exemplo, com o Squid).

Atualização: não estou procurando soluções somente de roteador / firmware, estou aberto para executar um servidor proxy em um dos PCs na rede ou qualquer outro tipo de solução semelhante.

    
por Rajavanya Subramaniyan 02.11.2011 / 22:47

4 respostas

13

Não faça isso com o Squid: você precisa de controle para tudo, não apenas para HTTP na porta 80.

A resposta requer o iptables com a opção '--quota', que implementa cotas de rede diminuindo um contador de bytes com cada pacote. O argumento de "--quota" é um valor em bytes.

Deve haver uma cadeia para cada usuário. Primeira regra da cadeia conta uma cota de 13 GB para pacotes de 192.168.0.2 e aceita o pacote se estiver abaixo da cota:

iptables -A INPUT -p tcp -s 192.168.0.2 -m quota --quota 13958643712 -j ACCEPT

Segunda regra da cadeia classifica os pacotes com mais de uma cota em uma classe tc de sua escolha:

iptables -A INPUT -p tcp -j CLASSIFY --set-class 1:12

Em seguida, é a forma clássica de tráfego: link

É claro que você precisa usar a alocação de IP estático ou garantir que o DHCP aloque endereços fixados pelo endereço MAC do dispositivo - e você precisa bloquear todos os endereços, exceto os identificados dos dispositivos pertencentes a um dos três usuários.

A propósito, você menciona que "quando 2 pessoas navegam na Internet, devem obter 1 Mbps cada, e quando 3 pessoas acessam, elas devem obter 2Mbps divididas por 3", mas você pode fazer melhor do que isso quando configura seu hierarquia de classes de tráfego: sua exigência deve ser "quando duas pessoas navegam na internet não devem ter menos de 1 Mbps cada, e quando três pessoas acessam, elas não devem ter menos que 2 Mbps dividido por 3" para que cada uma possa obter mais se as outras pessoas usarem menos do que o rendimento garantido ... E tc deixa você fazer isso!

Como o seu roteador é suportado pelo openwrt e pelo dd-wrt, você tem todas as ferramentas que precisa!

    
por 17.11.2011 / 15:59
4

Não me lembro de imediato se ele oferece suporte a todos os recursos que você mencionou, mas posso recomendar o pfSense como uma solução de roteador. É pequeno o suficiente para rodar um disco USB e fornece uma série de soluções de compartilhamento. Eu tinha o add-on do squid instalado, por exemplo, para fornecer um proxy transparente para todos os servidores internos, e até mesmo em um pacote instalado para obter relatórios detalhados do uso da rede.

Eu também ofereço recursos do tipo "internet café", por exemplo, uma página de logon para os convidados usarem o sistema. É fácil de configurar em uma VM, e há muita documentação sobre como instalá-lo com várias configurações diferentes.

Eu usei isso em casa com 8 outras máquinas. Você pode achar que, com a configuração correta, talvez não seja necessário introduzir os limites tão strongmente quanto você.

    
por 14.11.2011 / 13:11
0

O seu Netgear WNR1000v2 parece ser um dispositivo semi-estúpido. Tudo que eu descobri é que você pode habilitar o QoS baseado em porta ou MAC. Você pode definir o QoS como "baixo" para o seu companheiro de raiz que se comporta mal.

Qualquer outra coisa requer mais "cérebro" - ou seja, um proxy adequado (inteligente).

    
por 13.11.2011 / 21:43
0

Aparentemente, você pode instalar no seu roteador, por sua conta e risco, o link do firmware do DD-WRT que possui recursos extensivos de QoS - link

    
por 14.11.2011 / 01:03