[Risolto]Limitare la banda per un host
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- Ansa89
- Iper Master
- Messaggi: 2703
- Iscritto il: mer 29 ago 2007, 17:57
- Nome Cognome: Stefano Ansaloni
- Slackware: 14.2 64bit
- Kernel: 4.9.61
- Desktop: XFCE 4.12
- Località: Modena
[Risolto]Limitare la banda per un host
Devo limitare la velocità di trasmissione (e ricezione) di un dato host della mia rete, verso internet; per farlo pensavo di aggiungere una regola di shaping al server che gestisce il traffico da/verso internet.
Ho già provato a guardare la bibbia del traffic shaping, ma non ci ho capito molto.
Inoltre su internet ho trovato un paio di siti che propongono qualche soluzione, ma usano sempre regole diverse e non capisco quale devo usare io .
Qualcuno può aiutarmi a capire come muovermi tra le varie tipologie di traffic shaping e consigliarmene una che faccia al caso mio?
Ho già provato a guardare la bibbia del traffic shaping, ma non ci ho capito molto.
Inoltre su internet ho trovato un paio di siti che propongono qualche soluzione, ma usano sempre regole diverse e non capisco quale devo usare io .
Qualcuno può aiutarmi a capire come muovermi tra le varie tipologie di traffic shaping e consigliarmene una che faccia al caso mio?
Ultima modifica di Ansa89 il ven 21 ott 2011, 9:22, modificato 1 volta in totale.
- shark1500
- Linux 3.x
- Messaggi: 785
- Iscritto il: gio 3 apr 2008, 14:33
- Slackware: current
- Kernel: 2.6.27.7-smp
- Desktop: kde
- Località: Modna
Re: Limitare la banda per un host
Ma non te l'hanno insegnato al laboratorio di reti?
- Ansa89
- Iper Master
- Messaggi: 2703
- Iscritto il: mer 29 ago 2007, 17:57
- Nome Cognome: Stefano Ansaloni
- Slackware: 14.2 64bit
- Kernel: 4.9.61
- Desktop: XFCE 4.12
- Località: Modena
Re: Limitare la banda per un host
A reti ci hanno detto che esiste il traffic shaping e ci hanno fatto un esempio con il tbf, ma in rete si trovano quasi esclusivamente esempi con il htb, quindi mi vengono dei dubbi (quelli scritti nel primo post).
Inoltre a reti si agiva direttamente sull'host, invece io devo agire sul server al quale si connette l'host.
In ogni caso mi restano delle perplessità su come funziona e come si configura per bene la limitazione della banda per uno specifico host.
Inoltre a reti si agiva direttamente sull'host, invece io devo agire sul server al quale si connette l'host.
In ogni caso mi restano delle perplessità su come funziona e come si configura per bene la limitazione della banda per uno specifico host.
- shark1500
- Linux 3.x
- Messaggi: 785
- Iscritto il: gio 3 apr 2008, 14:33
- Slackware: current
- Kernel: 2.6.27.7-smp
- Desktop: kde
- Località: Modna
Re: Limitare la banda per un host
Se non ricordo male sono semplicemente due classi di utilizzo diverse. Ti consiglio di mettere su al volo una lan di prova in virtuale e fare le prove li` sopra. Puoi mettere traquillamente il traffic shaping sul server che fa da routing.
-
- Linux 2.x
- Messaggi: 239
- Iscritto il: gio 31 lug 2008, 18:18
- Slackware: ArchLinux
- Desktop: xfce
- Distribuzione: OpenIndiana
Re: Limitare la banda per un host
scusate l'intromissione.
personalmente volevo segnalare che da tempo sto utilizzando per un caso simile il sistema operativo solaris (versione s10u9 in poi, incluso Sol11Exp o OpenIndiana)
con queste versioni infatti il traffic shaping è integrato nello stack di rete di ogni interfaccia reale o virtuale che sia ed è molto semplice da configurare.
non so se hai la possibilità di provarlo ma con questo riusciresti a assegnare limiti di bandwidth anche a livello subnet/protocollo/porta e non di generico host.
Dal manuale: http://download.oracle.com/docs/cd/E199 ... #scrolltoc
come funziona?
http://conferences.sigcomm.org/sigcomm/ ... rs/p45.pdf
personalmente volevo segnalare che da tempo sto utilizzando per un caso simile il sistema operativo solaris (versione s10u9 in poi, incluso Sol11Exp o OpenIndiana)
con queste versioni infatti il traffic shaping è integrato nello stack di rete di ogni interfaccia reale o virtuale che sia ed è molto semplice da configurare.
non so se hai la possibilità di provarlo ma con questo riusciresti a assegnare limiti di bandwidth anche a livello subnet/protocollo/porta e non di generico host.
Dal manuale: http://download.oracle.com/docs/cd/E199 ... #scrolltoc
Codice: Seleziona tutto
Create flows according to the attribute you have determined for each flow.
# flowadm add-flow -l link -a attribute=value[,attribute=value] flow
attribute
Refers to one of the following classifications by which you can organize network packets into a flow:
IP address
Transport protocol (UDP, TCP, or SCTP)
Port number for an application (for example port 21 for FTP)
DS field attribute, which is used for quality of service in IPv6 packets only. For more information about the DS field, refer to DS Codepoint in System Administration Guide: IP Services.
flow
Refers to the name that you assign to the particular flow.
For more details about flows and flow attributes, see the flowadm(1M) man page.
Implement resource controls on the flows by setting the appropriate flow properties.
# flowadm set-flowprop -p property=value[,property=value,...] flow
You can specify the following flow properties that control resources:
maxbw
The maximum amount of the link's bandwidth that packets identified with this flow can use. The value you set must be within the allowed range of values for the link's bandwidth. To display the possible range of values for a link's bandwidth, check the POSSIBLE field in the output that is generated by the following command:
# dladm show-linkprop -p maxbw link
priority
The priority given to packets in this flow. The possible values are high, medium, and low. The default value is medium.
http://conferences.sigcomm.org/sigcomm/ ... rs/p45.pdf
- shark1500
- Linux 3.x
- Messaggi: 785
- Iscritto il: gio 3 apr 2008, 14:33
- Slackware: current
- Kernel: 2.6.27.7-smp
- Desktop: kde
- Località: Modna
Re: Limitare la banda per un host
Ho sentito dire che e` anche facile fare traffic shaping con OpenBSD.
Ansa, se hai tempo puoi provare anche questa soluzione.
Ansa, se hai tempo puoi provare anche questa soluzione.
- Ansa89
- Iper Master
- Messaggi: 2703
- Iscritto il: mer 29 ago 2007, 17:57
- Nome Cognome: Stefano Ansaloni
- Slackware: 14.2 64bit
- Kernel: 4.9.61
- Desktop: XFCE 4.12
- Località: Modena
Re: Limitare la banda per un host
ocman ha scritto:scusate l'intromissione.
personalmente volevo segnalare che da tempo sto utilizzando per un caso simile il sistema operativo solaris (versione s10u9 in poi, incluso Sol11Exp o OpenIndiana)
con queste versioni infatti il traffic shaping è integrato nello stack di rete di ogni interfaccia reale o virtuale che sia ed è molto semplice da configurare.
non so se hai la possibilità di provarlo ma con questo riusciresti a assegnare limiti di bandwidth anche a livello subnet/protocollo/porta e non di generico host.
Dal manuale: http://download.oracle.com/docs/cd/E199 ... #scrolltoccome funziona?Codice: Seleziona tutto
Create flows according to the attribute you have determined for each flow. # flowadm add-flow -l link -a attribute=value[,attribute=value] flow attribute Refers to one of the following classifications by which you can organize network packets into a flow: IP address Transport protocol (UDP, TCP, or SCTP) Port number for an application (for example port 21 for FTP) DS field attribute, which is used for quality of service in IPv6 packets only. For more information about the DS field, refer to DS Codepoint in System Administration Guide: IP Services. flow Refers to the name that you assign to the particular flow. For more details about flows and flow attributes, see the flowadm(1M) man page. Implement resource controls on the flows by setting the appropriate flow properties. # flowadm set-flowprop -p property=value[,property=value,...] flow You can specify the following flow properties that control resources: maxbw The maximum amount of the link's bandwidth that packets identified with this flow can use. The value you set must be within the allowed range of values for the link's bandwidth. To display the possible range of values for a link's bandwidth, check the POSSIBLE field in the output that is generated by the following command: # dladm show-linkprop -p maxbw link priority The priority given to packets in this flow. The possible values are high, medium, and low. The default value is medium.
http://conferences.sigcomm.org/sigcomm/ ... rs/p45.pdf
Grazie per le segnalazioni, ma preferisco farlo da linux (solo per il motivo che ho già configurato tutto il serverino e mi scoccia dover ricominciare tutto da zero per mettere solaris o openBSD).shark1500 ha scritto:Ho sentito dire che e` anche facile fare traffic shaping con OpenBSD.
Ansa, se hai tempo puoi provare anche questa soluzione.
Ebtables purtroppo lavora solo con indirizzi mac (almeno mi è sembrato di capire così dalla guida che mi hai linkato), io invece ho bisogno di limitare il traffico per tutta una rete (di cui non conosco i mac a priori).ocman ha scritto:metodo carino su linux con tc e eptables
http://ebtables.sourceforge.net/examples/example5.html
Soluzione:
Codice: Seleziona tutto
# iptables -t mangle _PARAMETRI_DEL_CASO_ -j MARK --set-mark _NUMERO_
- shark1500
- Linux 3.x
- Messaggi: 785
- Iscritto il: gio 3 apr 2008, 14:33
- Slackware: current
- Kernel: 2.6.27.7-smp
- Desktop: kde
- Località: Modna
Re: Limitare la banda per un host
Se non ricordo male con tc puoi farlo senza problemi, senza nemmeno dover utilizzare iptables.
-
- Linux 2.x
- Messaggi: 239
- Iscritto il: gio 31 lug 2008, 18:18
- Slackware: ArchLinux
- Desktop: xfce
- Distribuzione: OpenIndiana
Re: Limitare la banda per un host
se sei dietro ad un router il mac è solo uno
- Ansa89
- Iper Master
- Messaggi: 2703
- Iscritto il: mer 29 ago 2007, 17:57
- Nome Cognome: Stefano Ansaloni
- Slackware: 14.2 64bit
- Kernel: 4.9.61
- Desktop: XFCE 4.12
- Località: Modena
Re: Limitare la banda per un host
Non sono dietro un router.ocman ha scritto:se sei dietro ad un router il mac è solo uno
Forse sì, ma continua a esserci il problema che qualcuno dovrebbe spiegarmi come.shark1500 ha scritto:Se non ricordo male con tc puoi farlo senza problemi, senza nemmeno dover utilizzare iptables.
Inoltre nella guida postata da ocman si usa il cbq e vorrei capire le differenze che ci sono con il tbf e il htb (e se queste differenze sono rilevanti per quello che devo fare io).
In parole povere: sono ancora in alto mare e devo fare un mucchio di prove (per il momento non sono ancora riuscito a limitare il traffico).
-
- Iper Master
- Messaggi: 2492
- Iscritto il: gio 10 mar 2011, 9:21
- Slackware: 15.0
- Kernel: 5.15.x-generic
- Desktop: Sway
- Distribuzione: Arch Linux
Re: Limitare la banda per un host
Forse shorewall potrebbe fare al caso tuo, se non ti disturba utilizzarlo come firewall:
http://www.shorewall.net/traffic_shaping.htm
http://www.shorewall.net/simple_traffic_shaping.html
Ti servono - credo - le libmnl e le xtables-addons che trovi su netfilter.org (se non ci sono nella distro che utilizzi).
Ciao
http://www.shorewall.net/traffic_shaping.htm
http://www.shorewall.net/simple_traffic_shaping.html
Ti servono - credo - le libmnl e le xtables-addons che trovi su netfilter.org (se non ci sono nella distro che utilizzi).
Ciao
- Ansa89
- Iper Master
- Messaggi: 2703
- Iscritto il: mer 29 ago 2007, 17:57
- Nome Cognome: Stefano Ansaloni
- Slackware: 14.2 64bit
- Kernel: 4.9.61
- Desktop: XFCE 4.12
- Località: Modena
Re: Limitare la banda per un host
Grazie per la segnalazione.rik70 ha scritto:Forse shorewall potrebbe fare al caso tuo, se non ti disturba utilizzarlo come firewall:
http://www.shorewall.net/traffic_shaping.htm
http://www.shorewall.net/simple_traffic_shaping.html
Per le impostazioni del firewall preferirei usare direttamente iptables, senza passare attraverso altri tool.
Magari faccio ancora qualche tentativo e se vedo che proprio non ci salto fuori, provo shorewall.
Uso debian: "xtables-addons" c'è tra i pacchetti di default; invece "libmnl" lo trovo solo per la versione testing e unstable.rik70 ha scritto:(se non ci sono nella distro che utilizzi)
Tuttavia, tra i pacchetti disponibili c'è già "shorewall", quindi non credo che dovrò preoccuparmi per "libmnl".
- Ansa89
- Iper Master
- Messaggi: 2703
- Iscritto il: mer 29 ago 2007, 17:57
- Nome Cognome: Stefano Ansaloni
- Slackware: 14.2 64bit
- Kernel: 4.9.61
- Desktop: XFCE 4.12
- Località: Modena
Re: Limitare la banda per un host
Risolto:
Codice: Seleziona tutto
#!/bin/bash
# IP di cui limitare il traffico
IP="x.x.x.x"
# Interfaccia del server verso la lan
# Serve per configurare la velocità di download
IN_IF="in"
# Interfaccia del server verso internet
# Serve per configurare la velocità di upload
OUT_IF="out"
# Massima velocità di download (kbps/kbit/mbps/mbit)
DOWN="max_d"
# Massima velocità di upload (kbps/kbit/mbps/mbit)
UP="max_u"
# Se la rete non è usata, l'host può arrivare a questa velocità di download (kbps/kbit/mbps/mbit)
CEIL_DW="ceil_d"
# Se la rete non è usata, l'host può arrivare a questa velocità di upload (kbps/kbit/mbps/mbit)
CEIL_UP="ceil_u"
# Uso htb per la root handle
tc qdisc add dev $IN_IF root handle 1:0 htb
tc qdisc add dev $OUT_IF root handle 1:0 htb
# Aggiungo le classi, impostando come rate massimo
# la velocità che l'host può raggiungere quando la rete
# non viene usata (uso sempre htb)
tc class add dev $IN_IF parent 1:0 classid 1:1 htb rate $CEIL_DW
tc class add dev $OUT_IF parent 1:0 classid 1:1 htb rate $CEIL_UP
# Aggiungo le classi per impostare il limite della banda
# e aggiungo il "ceil" per consentirne il prestito
tc class add dev $IN_IF parent 1:1 classid 1:10 htb rate DOWN ceil $CEIL_DW
tc class add dev $OUT_IF parent 1:1 classid 1:10 htb rate UP ceil $CEIL_UP
# Uso sfq per gestire la coda di pacchetti che arrivano alle classi
tc qdisc add dev $IN_IF parent 1:10 handle 30:0 sfq perturb 10
tc qdisc add dev $OUT_IF parent 1:10 handle 30:0 sfq perturb 10
# Aggiungo il filtraggio vero e proprio della banda
tc filter add dev $IN_IF parent 1:0 prio 1 protocol ip u32 match ip dst $IP flowid 1:10
tc filter add dev $OUT_IF parent 1:0 prio 1 protocol ip u32 match ip src $IP flowid 1:10