¿Cómo configuro un servidor proxy para el hogar con control de ancho de banda, opciones de límite de descarga?

17

3 compañeros de habitación comparten una única conexión de 2 Mbps. Tener un límite de descarga de 40 GB por mes más allá del cual la velocidad cae a 256 Kbps, lo cual es molesto.

Uno de los compañeros de cuarto abusa de la conexión al descargar más allá de su límite de cuota. Tengo un enrutador inalámbrico Netgear WNR1000v2 + módem ADSL para conectarme a Internet. Todos accedemos a Internet a través de un enrutador inalámbrico que se conecta al módem ADSL.

Necesito una solución proxy gratuita que me pueda ayudar a configurar

  1. Límite de 40 GB / 3 (13 GB) para cada persona (cada persona tiene 2 dispositivos: una PC y un teléfono con Wifi)
  2. Control uniforme del ancho de banda: cuando 2 personas navegan por Internet, deberían obtener 1 Mbps cada una, y cuando 3 personas acceden, deberían obtener 2 Mbps divididos por 3.
  3. Después de que cada persona cruza su límite de descarga mensual, debería poder acceder a Internet con una velocidad de 256 Kbps solamente o menor.
  4. ¿Puedo tener un firmware personalizado en mi enrutador inalámbrico para hacer esto (o) ¿Necesito un servidor proxy?

Indíqueme los tutoriales relevantes (por ejemplo, con Squid).

Actualización: no busco soluciones de firmware / enrutador solo, estoy abierto a ejecutar un servidor proxy en una de las PC de la red o cualquier otro tipo de solución similar.

Rajavanya Subramaniyan
fuente

Respuestas:

14

No lo hagas con Squid: necesitas control para todo, no solo para HTTP en el puerto 80.

La respuesta requiere iptables con la opción '--quota', que implementa cuotas de red decrementando un contador de bytes con cada paquete. El argumento de "--quota" es un valor en bytes.

Habrá una cadena para cada usuario. La primera regla de la cadena cuenta una cuota de 13 GB para los paquetes de 192.168.0.2 y acepta el paquete si está por debajo de la cuota:

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

La segunda regla de la cadena clasifica los paquetes de exceso de cuota en una clase tc de su elección:

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

Entonces todo es una configuración de tráfico clásica: http://tldp.org/HOWTO/Traffic-Control-HOWTO/

Por supuesto, debe usar la asignación de IP estática o asegurarse de que DHCP asigne direcciones fijadas por la dirección MAC del dispositivo, y debe bloquear todas las direcciones excepto las identificadas de los dispositivos que pertenecen a uno de los tres usuarios.

Por cierto, mencionas que "cuando 2 personas navegan en Internet deberían obtener 1 Mbps cada una, y cuando 3 personas acceden, deberían obtener 2 Mbps divididos por 3", pero puedes hacerlo mejor cuando configuras tu jerarquía de clases de tráfico : su requisito debería ser "cuando dos personas navegan por Internet no deberían obtener menos de 1 Mbps cada una, y cuando tres personas acceden, no deberían obtener menos de 2 Mbps dividido por 3" para que cada uno pueda obtener más si otras personas usan menos de su rendimiento garantizado ... ¡Y tc te permite hacer eso!

Como su enrutador es compatible con openwrt y dd-wrt, ¡tiene todas las herramientas que necesita!

Jean-Marc Liotier
fuente
Impresionante mejor respuesta! muchas gracias ... pero mi enrutador no es compatible con openwrt o dd-wrt, solo v1 y v3 de la misma serie, el mío es v2. Así que buscaré usar una máquina vieja en el mismo lugar.
Rajavanya Subramaniyan
4

No recuerdo si es compatible con todas las funciones que menciona, pero puedo recomendar pfSense como solución de enrutador. Es lo suficientemente pequeño como para ejecutar un disco USB y proporciona una gran cantidad de soluciones para compartir. Tenía instalado el complemento squid, por ejemplo, para proporcionar un proxy transparente a todos los servidores internos, e incluso en un paquete instalado para obtener informes detallados del uso de la red.

También ofrezco funciones de tipo cibercafé, por ejemplo, una página de inicio de sesión para que los huéspedes utilicen el sistema. Es fácil de configurar en una máquina virtual, y hay mucha documentación sobre cómo instalarlo con varias configuraciones diferentes.

Usé esto en casa con otras 8 máquinas. Es posible que, con la configuración correcta, no necesite introducir los límites tanto como lo ha hecho.

BinaryMisfit
fuente
pfSense es ideal para una configuración rápida y fácil con una interfaz web. Si desea obtener más información, simplemente instale OpenBSD y configure pf usted mismo, es muy divertido aprenderlo.
SleighBoy
0

Su Netgear WNR1000v2 parece ser un dispositivo semi-tonto. Todo lo que encontré es que puedes habilitar QoS basado en puerto o MAC. Puede establecer la QoS en "baja" para que su compañero de raíz se porte mal.

Cualquier otra cosa requiere más "cerebro", es decir, un proxy adecuado (inteligente).

Nils
fuente
No veo opciones de QoS en ninguna parte del panel de control WNR1000v2, también me referí al manual de usuario completo. ¿Podría explicar dónde exactamente encontrar esto y configurar esto por favor?
Rajavanya Subramaniyan
Hay un PDF que describe QoS en la página
Nils