Qual è la migliore soluzione per il controllo del traffico in un sistema di grandi dimensioni (circa 2000 utenti)?


11

situazione seguente: Siamo un gruppo di studenti che gestiscono la connessione Internet per le sale locali residenti, con un totale di circa 2000 utenti finali.

Abbiamo un sistema di punti di traffico, ogni MB riduce o carica i punti di costo, i nuovi punti vengono aggiunti ogni ora. Al momento, blocciamo l'accesso a Internet di un utente quando ha speso tutti i suoi punti (inserendolo in una politica REJECT in iptables sul nostro router gateway Debian).

Vorremmo solo limitare la larghezza di banda di un utente. Qual è il modo migliore per farlo?

La semplice risposta sarebbe quella di impostare un limite di velocità sulla porta dello switch dell'utente (principalmente Cisco Catalyst 3550s). Tuttavia, ciò è indesiderabile, poiché il traffico all'interno della nostra rete e verso la rete universitaria dovrebbe rimanere illimitato. Esiste un modo per limitare la larghezza di banda solo per i pacchetti con una determinata destinazione o intervallo IP di origine (quindi sia in uscita che in ingresso) in Cisco IOS? Non sono riuscito a trovare nulla.

L'altro modo sarebbe controllare il traffico sul nostro router gateway. Mi vengono in mente diverse soluzioni:

  • tc o tcng - sembra che entrambi abbiano una sintassi piuttosto arcana e non offrano buone funzionalità per eseguire il controllo del traffico per IP. Un QDisc dedicato per così tante persone probabilmente rallenterebbe parecchio il router. Inoltre, la documentazione su entrambi è piuttosto obsoleta.

  • shorewall - sembra avere una sintassi piuttosto ordinata per le configurazioni, tuttavia, non sono sicuro che sia in grado di gestire questa quantità di traffico e utenti e se sia adatto alla limitazione del traffico per IP

  • pfSense: sembra un sistema operativo destinato a scopi come il nostro. Tuttavia, richiederebbe la reinstallazione completa del nostro router gateway. Non abbiamo altri sistemi BSD e pfSense dovrebbe avere ottime capacità di contabilità del traffico (al momento stiamo utilizzando fprobe-ulog e ulog-acctd).

Qual è la tua esperienza? Quale soluzione soddisfa le nostre esigenze e può essere facilmente mantenuta? Hai altre idee?

Se hai bisogno di ulteriori informazioni sul nostro sistema, non esitare a chiedere.

Grazie in anticipo.


EDIT : ho implementato il sistema con iptablese tc.

Ogni utente ha una sottorete / 28, un IP VPN (entrambi da 10.0.0.0/8) e un IP esterno, tutti gestiti attraverso una catena iptables. Questa catena ha solo una regola, una semplice RETURN.

Ogni cinque minuti, uno script Python legge i contatori di byte di queste regole. Reimposta i contatori e aggiorna l'account del punto di traffico dell'utente nel nostro database PostgreSQL.

Se il bilanciamento dei punti di un utente diminuisce al di sotto di una determinata soglia, vengono create due classi tc per questo utente (una per quella in entrata, una per l'interfaccia in uscita sul nostro router gateway), gli IP vengono inseriti in filtri tc appartenenti a queste classi. Le classi sono limitate dalla velocità da un HTB.

Rispetto al sistema precedente fprobe-uloge ulog-acctdquesto è molto più veloce in quanto il conteggio dei byte viene eseguito da iptables.

La velocità della rete è notevolmente migliorata per i nostri utenti.

Risposte:


2

Non sono sicuro di quanto tu sia interessato a riconfigurare tutta la tua configurazione (es. Sostituire Debian), o quanto sia possibile posizionare qualcosa di simile dietro il tuo gateway, ma FreeBSD ha una funzione in ipfw nota come dummynet . Dal momento che sembra che tu non abbia voglia di ottenere uno shaper del traffico hardware dedicato, questa potrebbe essere un'opzione per te. Attualmente lo utilizziamo per soffocare il traffico SMTP in entrata e in uscita attraverso uno dei nostri gateway proxy per evitare che un vecchio sistema back-end NFS venga sopraffatto e successivamente non risponda.

Con alcuni script e una configurazione intelligente dei tuoi set di regole, sarebbe possibile essere in grado di controllare il traffico di migliaia di singoli indirizzi IP.


0

Dovrò chiedere cosa stiamo usando, ma i nostri dipendenti ResTek hanno un dispositivo al confine con Internet che svolge funzioni di qualità del servizio. Ha una priorità predefinita per i flussi non classificati e dà priorità ad altro traffico in base alle regole. È la caratteristica prioritaria che lo vende davvero, poiché gestiscono anche un cluster di cache basato su Squid elencato come priorità più alta nell'appliance di frontiera. Le persone sulla loro rete hanno quindi la possibilità di navigare sul Web con priorità standard (e un po 'schifosa), oppure utilizzare il proxy e ottenere una risposta molto scattante. Accettano anche le richieste prioritarie del server di gioco, dal momento che sono sensibili alla latenza ma a bassa larghezza di banda, ovviamente.

C'è una buona dose di lavoro nella gestione delle richieste dei server di gioco, ma quelle stanno lentamente prendendo piede mentre sempre più giochi si allontanano dai server privati. Nel complesso ho sentito che funziona abbastanza bene per loro. Possono impedire a cose come bittorrent di assorbire tutto il resto del traffico e mantenere i tempi di caricamento su YouTube delle persone velocemente.


0

Con questo molti utenti la maggior parte delle semplici cose basate sul software inizierà a guastarsi.

Prendi in considerazione l'idea di vedere il packeteer e dispositivi simili In questi giorni sono quasi più costosi di quelli che acquistano solo una maggiore larghezza di banda (negli Stati Uniti e in Europa, noi poveri in Australia siamo ancora a tassi molto alti).


Sfortunatamente, non possiamo permetterci di investire molto denaro in questo, né per uno shaper di pacchetti dedicato né per una maggiore larghezza di banda. Il nostro sistema al momento funziona, la domanda è come, invece di bloccare gli utenti che hanno superato il traffico assegnato, possiamo solo ridurre la larghezza di banda disponibile per loro.
Christoph Wurm,

0

dummynet è un ottimo suggerimento secondo me. Ma sono sicuro che anche iptables è in grado di modellare il traffico , quindi puoi farlo sulla tua casella debian.


0

tc dovrebbe funzionare bene .. Credo che quello che vuoi fare sia cambiare le tue attuali regole iptables per contrassegnare piuttosto che REJECT traffic, quindi puoi usare un piccolo numero di regole tc per applicare lo shaping del traffico a quei flussi contrassegnati.

inoltre, guarda ipset per la gestione dell'elenco degli utenti limitati http://ipset.netfilter.org/


0

Trafficpanel sembra essere una soluzione. Tra le altre caratteristiche:

  • Limitazione della velocità HTTP massima per connessione
  • Limitazione della quantità totale di traffico di risorse Web per host di rete locale
  • Registra il traffico Internet per host di rete locale
  • Limitazione della velocità massima del traffico per host di rete locale
  • Limitazione della quantità totale di traffico Internet per host di rete locale

In realtà, non ho mai provato questa cosa, ma sembra ok.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.